sata_mv: workaround for multi_count errata sata24
authorMark Lord <liml@rtr.ca>
Mon, 13 Apr 2009 15:29:34 +0000 (11:29 -0400)
committerJeff Garzik <jgarzik@redhat.com>
Fri, 17 Apr 2009 23:04:28 +0000 (19:04 -0400)
commit299b3f8df90a3f7416d8df121d8a42b1a2aeced4
tree600bd461c66e9980c3dc3554148fb594e5805f5f
parent8d2b450d0f9233f221d545f26720eebbc468e857
sata_mv: workaround for multi_count errata sata24

Workaround for errata SATA#24 in sata_mv.
This errata affects WRITE_MULTI* commands when
the device multi_count produces a DRQ block size >= 4Kbytes.

We work around it here by converting such operations
into ordinary PIO_WRITEs instead.

Note that this might result in a PIO FUA write unavoidably being converted
into a non-FUA write.  In practice, any system using FUA is also going to be
using DMA rather than PIO, so this shouldn't affect anyone in the real world.

Signed-off-by: Mark Lord <mlord@pobox.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
drivers/ata/sata_mv.c