Re: [patch 29/30] sata_nv: don't read shadow registers when in ADMAmode

From: Robert Hancock
Date: Fri Mar 09 2007 - 09:28:07 EST


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-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/