Tejun Heo wrote:
For misc ATAPI commands which transfer variable length data to the host, overflow can occur due to application or hardware bug. Such overflows can be ignored safely as long as overflow data is properly drained. libata HSM implementation has this implemented in __atapi_pio_bytes() and recently updated for 2.6.24-rc but it requires further improvements. Improve drain logic such that... * Report overflow errors using ehi desc mechanism instead of printing directly. * Properly calculate the number of bytes to be drained considering actual number of consumed bytes for partial draining. * Add and use ata_drain_page for draining. This change fixes the problem where LLDs which do 32bit IOs consumes 4 bytes on each 2 byte draining resulting in draining twice more data than requested. Signed-off-by: Tejun Heo <htejun@xxxxxxxxx> Acked-by: Albert Lee <albertcc@xxxxxxxxxx> --- drivers/ata/libata-core.c | 104 +++++++++++++++++++++++---------------------- 1 files changed, 53 insertions(+), 51 deletions(-)
(updating status on an old patch) dropped, due to your current work - 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