diff options
| author | Albert Lee <albertcc@tw.ibm.com> | 2004-12-27 05:24:53 -0500 |
|---|---|---|
| committer | Jeff Garzik <jgarzik@pobox.com> | 2004-12-27 05:24:53 -0500 |
| commit | 623b57b30106cbc5755aa1e622f1806b3c8dd7a9 (patch) | |
| tree | 596e501f1b956e64d96c53d7be0bb04990e3d606 /include/linux/mod_devicetable.h | |
| parent | 652f8d65e5a9a6acb345aff592afaad03c5dd839 (diff) | |
[libata] PIO error handling improvement
Tested burning CD-RW with libata-dev-2.6 and cdrecord:
1. ATAPI DMA mode - tested OK
2. ATAPI PIO mode - test failed when cdrecord finishes burning and issues MODE_SELECT to the device.
After checking the log, it showed that MODE_SELECT caused ata_pio_complete() to return error.
However, the error is not handled by ata_pio_task().
Attached please find the patch for ata_pio_task() error handling for your review.
(The patch is against the libata-dev-2.6 tree. )
Changes in the patch:
1. End the PIO task when PIO_ST_IDLE state is entered
2. End the PIO task after PIO_ST_TMOUT and PIO_ST_ERR state handled by ata_pio_error()
3. Remove the first "if" statement to handle the error condition returned from
ata_pio_block(), ata_pio_complete() and ata_pio_poll().
Change #2 is not so necessary since ata_pio_error() will put the cmd to PIO_ST_IDLE state
after the error condition is handled. The change just saves a function call to queue_work().
Tested OK on on my machine with pdc20275 and ASUS CD-RW drive.
Signed-off-by: Albert Lee <albertcc@tw.ibm.com>
Diffstat (limited to 'include/linux/mod_devicetable.h')
0 files changed, 0 insertions, 0 deletions
