Hi,
Your devices crashes or detach after receiving this 6-byte SCSI command:
12 01 00 00 FF 00 00 00 00 10 00 00 00 00 00 00
Which is an INQUIRY command.
#define SC_INQUIRY 0x12
mav @ CC'ed.
I see there is a dirty byte there. Does the attached patch make any
difference to you?
--HPS
00:28:29.351797 usbus6.3 SUBM-BULK-EP=0000000a,SPD=HIGH,NFR=1,SLEN=32,IVAL=0
frame[0] WRITE 31 bytes
0000 55 53 42 43 ED 01 00 00 FF 00 00 00 80 00 06 12 |USBC............|
0010 01 00 00 FF 00 00 00 00 10 00 00 00 00 00 00 -- |............... |
flags 0 <0>
status 0xea023
<OPEN|TRANSFERRING|STARTED|BDMA_ENABLE|BDMA_SETUP|CURR_DMA_SET|CAN_CANCEL_IMMED|DOING_CALLBACK|0>
00:28:29.351885 usbus6.3
DONE-BULK-EP=0000000a,SPD=HIGH,NFR=1,SLEN=0,IVAL=0,ERR=0
frame[0] WRITE 31 bytes
flags 0 <0>
status 0xca021
<OPEN|STARTED|BDMA_ENABLE|BDMA_SETUP|CAN_CANCEL_IMMED|DOING_CALLBACK|0>
00:28:29.351892 usbus6.3 SUBM-BULK-EP=0000008b,SPD=HIGH,NFR=1,SLEN=0,IVAL=0
frame[0] READ 255 bytes
flags 0x32 <SHORT_XFER_OK|PROXY_BUFFER|EXT_BUFFER|0>
status 0xeb023
<OPEN|TRANSFERRING|STARTED|SHORT_XFER_OK|BDMA_ENABLE|BDMA_SETUP|CURR_DMA_SET|CAN_CANCEL_IMMED|DOING_CALLBACK|0>
00:28:29.452035 usbus6.3
DONE-BULK-EP=0000008b,SPD=HIGH,NFR=1,SLEN=0,IVAL=0,ERR=STALLED
frame[0] READ 0 bytes
flags 0x32 <SHORT_XFER_OK|PROXY_BUFFER|EXT_BUFFER|0>
status 0xcb021
<OPEN|STARTED|SHORT_XFER_OK|BDMA_ENABLE|BDMA_SETUP|CAN_CANCEL_IMMED|DOING_CALLBACK|0>
00:28:29.452055 usbus6.3 SUBM-CTRL-EP=00000000,SPD=HIGH,NFR=1,SLEN=8,IVAL=0
frame[0] WRITE 8 bytes
0000 02 01 00 00 8B 00 00 00 -- -- -- -- -- -- -- -- |........ |
flags 0 <0>
status 0xea1a3
<OPEN|TRANSFERRING|STARTED|CONTROL_XFR|CONTROL_HDR|BDMA_ENABLE|BDMA_SETUP|CURR_DMA_SET|CAN_CANCEL_IMMED|DOING_CALLBACK|0>
00:28:29.452128 usbus6.3
DONE-CTRL-EP=00000000,SPD=HIGH,NFR=1,SLEN=0,IVAL=0,ERR=STALLED
frame[0] WRITE 0 bytes
flags 0 <0>
status 0xca1a1
<OPEN|STARTED|CONTROL_XFR|CONTROL_HDR|BDMA_ENABLE|BDMA_SETUP|CAN_CANCEL_IMMED|DOING_CALLBACK|0>
=== sys/dev/usb/storage/umass.c
==================================================================
--- sys/dev/usb/storage/umass.c (revision 255360)
+++ sys/dev/usb/storage/umass.c (local)
@@ -1321,10 +1321,12 @@
}
sc->cbw.bCDBLength = sc->sc_transfer.cmd_len;
+ /* copy SCSI command data */
memcpy(sc->cbw.CBWCDB, sc->sc_transfer.cmd_data,
sc->sc_transfer.cmd_len);
- memset(sc->sc_transfer.cmd_data +
+ /* clear remaining command area */
+ memset(sc->cbw.CBWCDB +
sc->sc_transfer.cmd_len, 0,
sizeof(sc->cbw.CBWCDB) -
sc->sc_transfer.cmd_len);
_______________________________________________
freebsd-usb@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"