Jeff Garzik wrote:
akpm@xxxxxxxxxxxxxxxxxxxx wrote:
From: Robert Hancock <hancockr@xxxxxxx>
Reading from the ATA shadow registers while we are in ADMA mode may cause
undefined behavior. Don't read the ATA status register when completing
commands for this reason, it shouldn't be needed as the controller will
notify us if the command failed. Also, don't allow commands with result
taskfile requested to execute in ADMA mode, since that requires accessing
the shadow registers. We also still need to override tf_read since
libata
will read the result taskfile on a command failure, and we need to go
into
port register mode before allowing this.
Signed-off-by: Robert Hancock <hancockr@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
---
drivers/ata/sata_nv.c | 33 ++++++++++++++++++++-------------
1 file changed, 20 insertions(+), 13 deletions(-)
Robert, do you think this should be pushed into #upstream-fixes
(2.6.21-rc)?
I lean towards "yes", since it is a needed-by-hardware fix, but I also
am interested in testing feedback since it is so late in the 2.6.21-rc
game.
I would lean toward that as well, but it would be good to get some
testing from some sata_nv ADMA users to make sure it doesn't do anything
funny for them..
--
Robert Hancock Saskatoon, SK, Canada
To email, remove "nospam" from hancockr@xxxxxxxxxxxxx
Home Page: http://www.roberthancock.com/
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html