8068d9eeb2
- controller calls scsi_done() with error XS_TIMEOUT - scsi_done() calls sddone() - sddone() calls disk_unbusy() - scsi_done() calls controller to retry command (missing the call to disk_busy()) - controller calls scsi_done() - scsi_done() calls sddone() - sddone() calls disk_busy(), which panics because of the imbalance. Bug noticed by Leo Weppleman, who also suggested this fix; pass an additional boolean argument ("complete") to the device's "done" routine, with a value of `0' passed from the previous call to "done", and add an additional call to "done" when the xfer resources are freed. |
||
---|---|---|
.. | ||
cd.c | ||
ch.c | ||
files.scsipi | ||
scsi_all.h | ||
scsi_base.c | ||
scsi_cd.h | ||
scsi_changer.h | ||
scsi_disk.h | ||
scsi_message.h | ||
scsi_tape.h | ||
scsiconf.c | ||
scsiconf.h | ||
scsipi_debug.h | ||
scsipi_ioctl.c | ||
sd.c | ||
st.c | ||
su.c | ||
uk.c |