diff options
author | Albert Lee <albertcc@tw.ibm.com> | 2005-04-29 17:34:59 +0800 |
---|---|---|
committer | Jeff Garzik <jgarzik@pobox.com> | 2005-05-15 18:46:59 -0400 |
commit | 21b1ed74ee3667dcabcba92e486988ea9119a085 (patch) | |
tree | f4cf281ecf24a3352aebd1231cac6002fd44d82d /include/linux | |
parent | f85bdb9ce9e130ce00f7a91523931fdd8f96f102 (diff) | |
download | op-kernel-dev-21b1ed74ee3667dcabcba92e486988ea9119a085.zip op-kernel-dev-21b1ed74ee3667dcabcba92e486988ea9119a085.tar.gz |
[PATCH] libata: Prevent the interrupt handler from completing a command twice
Problem:
During the libata CD-ROM stress test, sometimes the "BUG: timeout
without command" error is seen.
Root cause:
Unexpected interrupt occurs after the ata_qc_complete() is called,
but before the SCSI error handler. The interrupt handler is invoked
before the SCSI error handler, and it clears the command by calling
ata_qc_complete() again. Later when the SCSI error handler is run,
the ata_queued_cmd is already gone, causing the "BUG: timeout without
command" error.
Changes:
- Use the ATA_QCFLAG_ACTIVE flag to prevent the interrupt handler
from completing the command twice, before the scsi_error_handler.
Signed-off-by: Albert Lee <albertcc@tw.ibm.com>
Diffstat (limited to 'include/linux')
0 files changed, 0 insertions, 0 deletions