On Sun, 2 May 2004, Gustaf Gunnarsson wrote: > Hi, I was a bit unsure what if you meant I should add patch 2 on patch 1 > and patch 3 on patch 2 after each try. However after patch 1 alone worked > I just tried them one by one and they all showed the same working result. > > I forgot to do the rmmod using patch 2 alone, however for both patch 1 and > patch 3 this looked in dmesg like a normal unplug event. > > Doing rmmod with no patch installed does not work, when I do -f the same > problem occurs which made me send the original fault report (all processes > but init dies).
All right, this means the problem is lower down somewhere. Here are some more patches to try. The patches are separate, that is, you should remove all of the previous patches before trying a new one. These patches allow successively more communication with the device. Maybe somewhere in there the problem will turn up. Alan Stern
===== drivers/usb/storage/transport.c 1.130 vs edited ===== --- 1.130/drivers/usb/storage/transport.c Sat Apr 24 22:25:32 2004 +++ edited/drivers/usb/storage/transport.c Tue May 4 15:39:55 2004 @@ -768,6 +768,11 @@ if (result != USB_STOR_XFER_GOOD) { return USB_STOR_TRANSPORT_ERROR; } + + srb->sense_buffer[0] = 0x70; + srb->sense_buffer[2] = 0x06; + srb->sense_buffer[12] = 0x29; + return USB_STOR_TRANSPORT_NO_SENSE; /* DATA STAGE */ /* transfer the data payload for this command, if one exists*/
===== drivers/usb/storage/transport.c 1.130 vs edited ===== --- 1.130/drivers/usb/storage/transport.c Sat Apr 24 22:25:32 2004 +++ edited/drivers/usb/storage/transport.c Tue May 4 15:44:31 2004 @@ -785,6 +785,11 @@ if (result > USB_STOR_XFER_STALLED) return USB_STOR_TRANSPORT_ERROR; } + + srb->sense_buffer[0] = 0x70; + srb->sense_buffer[2] = 0x06; + srb->sense_buffer[12] = 0x29; + return USB_STOR_TRANSPORT_NO_SENSE; /* STATUS STAGE */ result = usb_stor_intr_transfer(us, us->iobuf, 2);
===== drivers/usb/storage/transport.c 1.130 vs edited ===== --- 1.130/drivers/usb/storage/transport.c Sat Apr 24 22:25:32 2004 +++ edited/drivers/usb/storage/transport.c Tue May 4 15:41:20 2004 @@ -792,6 +792,11 @@ us->iobuf[0], us->iobuf[1]); if (result != USB_STOR_XFER_GOOD) return USB_STOR_TRANSPORT_ERROR; + + srb->sense_buffer[0] = 0x70; + srb->sense_buffer[2] = 0x06; + srb->sense_buffer[12] = 0x29; + return USB_STOR_TRANSPORT_NO_SENSE; /* UFI gives us ASC and ASCQ, like a request sense *