[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <200901131038.36593.borntraeger@de.ibm.com>
Date: Tue, 13 Jan 2009 10:38:36 +0100
From: Christian Borntraeger <borntraeger@...ibm.com>
To: Alan Cox <alan@...rguk.ukuu.org.uk>, Jeff Garzik <jeff@...zik.org>
Cc: Sergei Shtylyov <sshtylyov@...mvista.com>,
Ingo Molnar <mingo@...e.hu>, linux-ide@...r.kernel.org,
lkml <linux-kernel@...r.kernel.org>
Subject: [PATCH] ata: fix wrong WARN_ON_ONCE
Jeff, Alan,
this is still not fixed upstream. What about:
[PATCH] 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 <borntraeger@...ibm.com>
---
drivers/ata/libata-sff.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
Index: linux-2.6/drivers/ata/libata-sff.c
===================================================================
--- linux-2.6.orig/drivers/ata/libata-sff.c
+++ linux-2.6/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;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists