Thanks! Here's a better one. --- ../base/linux-2.6.14-rc4/drivers/scsi/scsi_lib.c 2005-10-10 20:19:19.000000000 -0500 +++ drivers/scsi/scsi_lib.c 2005-11-07 04:46:23.000000000 -0600 @@ -592,10 +592,17 @@ static void scsi_requeue_command(struct void scsi_next_command(struct scsi_cmnd *cmd) { - struct request_queue *q = cmd->device->request_queue; + struct scsi_device *sdev = cmd->device; + struct request_queue *q = sdev->request_queue; + + /* need to hold a reference on the device before we let go of the cmd */ + get_device(&sdev->sdev_gendev); scsi_put_command(cmd); scsi_run_queue(q); + + /* ok to remove device now */ + put_device(&sdev->sdev_gendev); } void scsi_run_host_queues(struct Scsi_Host *shost)
> -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of Rolf Eike Beer > Sent: Tuesday, November 08, 2005 11:38 AM > To: goggin, edward > Cc: 'Andrew Morton'; Masanari Iida; > linux-kernel@vger.kernel.org; > linux-usb-devel@lists.sourceforge.net; linux-scsi@vger.kernel.org > Subject: Re: oops with USB Storage on 2.6.14 > > Am Dienstag, 8. November 2005 17:24 schrieb goggin, edward: > >I've run into a bug like this several times using 2.6.14-rc4 while > >testing dm-multipath's reaction to uevents generated by forcing > >fiber channel transport failures -- which leads to the scsi device > >being detached and the queuedata pointer in the device's queue being > >reset in scsi_device_dev_release. The fix I've used is below and > >it seems to work well for me. I was going to place this patch on > >dm-devel today or tomorrow anyway. > > > >drivers/scsi/scsi_lib.c:scsi_next_command() > >Call scsi_device_get and scsi_device_put around the calls to > >scsi_put_command > >and scsi_run_queue so that the scsi host structure will not > be de-allocated > >between scsi_put_command and scsi_run_queue. > > > >*** ../base/linux-2.6.14-rc4/drivers/scsi/scsi_lib.c Mon Oct > 10 20:19:19 > >2005 > >--- drivers/scsi/scsi_lib.c Thu Nov 3 13:30:03 2005 > >*************** > >*** 592,601 **** > > Your patch is linewrapped. Also please use unified diff > format, good choice > for diff options is "-Naurp". > > Eike > ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel