Date: Tue, 6 Jul 1999 01:21:54 +0200 (CEST) From: Nick Hibma <hibma@skylink.it> To: FreeBSD Hackers mailing list <hackers@freebsd.org> Subject: CAM: delaying new commands during reset Message-ID: <Pine.BSF.3.96.990706010514.13864B-100000@heidi.plazza.it>
next in thread | raw e-mail | index | archive | help
The Iomega USB Zip drive is a bit slow when resetting (reset of the USB part of the drive). It takes 1s or more to reset. The reset is initiated because for example an illegal command was received (sync cache for example). umass0: XPT_SCSI_IO 0:1:0 command: 0x25 (10b command/8b data) umass0: CBW 45: cmd = 10b (0x250000000000...), data = 8 bytes, dir = in umass0: Handling state 2, Bulk Data, TIMEOUT umass0: data-in 8b failed, TIMEOUT umass0: Bulk Reset (reset is now in progress and previous SCSI has been cancelled) umass0: XPT_SCSI_IO 0:1:0 command: 0x25 (10b command/8b data) (CAM retries command) umass0: Busy, state 5, Bulk Reset (but gets told that the SCSI bus is busy) umass0: XPT_SCSI_IO 0:1:0 command: 0x25 (10b command/8b data) (tries again) umass0: Busy, state 5, Bulk Reset (and is again told to go away, etc.) umass0: XPT_SCSI_IO 0:1:0 command: 0x25 (10b command/8b data) umass0: Busy, state 5, Bulk Reset umass0: XPT_SCSI_IO 0:1:0 command: 0x25 (10b command/8b data) umass0: Busy, state 5, Bulk Reset (da0:umass0:0:1:0): got CAM status 0x3f (da0:umass0:0:1:0): fatal error, failed to attach to device (da0:umass0:0:1:0): lost device (da0:umass0:0:1:0): removing device entry The problem is that the reset is initiated and the command that failed xpt_done()-d with an error. scsi_da then retries the command, but it is returned instantly with a CAM_SCSI_BUSY error because the reset is still in progress. What would be the proper approach to make the ccb delay until the reset has finished? return a CAM_REQUEUE_REQ instead of CAM_SCSI_BUSY? Or store the ccb and process it when the reset is done? Thanks for any advice. Nick umass.c: http://www.etla.net/~n_hibma/usb/umass.c.new -- e-Mail: hibma@skylink.it To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.96.990706010514.13864B-100000>