The reason seems to be slightly different timing at bootup -
maybe because I connected a wheelmouse this time -
and now this device comes with Unit Attention
(code 70, key 6, ASC 28, ASCQ 0: not ready to ready transit)
and this is regarded as an error return and the initial INQUIRY fails.
Thus, since this code actually occurs in real life, we should
probably add
case 0x2800: what="not ready to ready transtion (media change?)";
break;
in debug.c:usb_stor_show_sense().
I have not really thought about the proper treatment of this Unit Attention.
However, if one decides that really nothing at all is wrong when a device
tells us that it is ready now, then
if ((srb->sense_buffer[2] & 0xf) == 0x6 /* unit attention */
&& srb->sense_buffer[12] == 0x28
&& srb->sense_buffer[13] == 0 /* not ready -> ready */)
srb->result = GOOD << 1;
is perhaps not too unreasonable. (This is in usb/storage/transport.c,
usb_stor_invoke_transport(), at the end of the need autosense part.)
Anyway, with this addition (to 2.4.3) all works for me again.
Andries
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/