From: Christian Borntraeger Date: Tue, 13 Jan 2009 09:38:36 +0000 (+0100) Subject: ata: fix wrong WARN_ON_ONCE X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=a0f79f7ad3e52b908786462cf5446ebe20fe14fa;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git ata: fix wrong WARN_ON_ONCE This patch fixes a wrong WARN_ON that was triggered by 32bit PIO support: WARNING: at drivers/ata/libata-sff.c:1017 ata_sff_hsm_move+0x45e/0x750() __atapi_pio_bytes simply doesnt know enough to decide if there is a bug. Signed-off-by: Christian Borntraeger Signed-off-by: Jeff Garzik --- diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c index 0eae9b453556..5a4aad123c42 100644 --- a/drivers/ata/libata-sff.c +++ b/drivers/ata/libata-sff.c @@ -1013,9 +1013,12 @@ next_sg: qc->cursg_ofs = 0; } - /* consumed can be larger than count only for the last transfer */ - WARN_ON_ONCE(qc->cursg && count != consumed); - + /* + * There used to be a WARN_ON_ONCE(qc->cursg && count != consumed); + * Unfortunately __atapi_pio_bytes doesn't know enough to do the WARN + * check correctly as it doesn't know if it is the last request being + * made. Somebody should implement a proper sanity check. + */ if (bytes) goto next_sg; return 0;