Re: [PATCH 6/7] Fix race between starved list processing and device removal

2012-11-21 Thread Bart Van Assche
On 11/02/12 07:32, Chanho Min wrote: >> Yes. Here's the warning. >> For the trace below, I used scsi_device_get/scsi_device_put() in >> scsi_run_queue(). (A little different >>from your patch). But I think it's the same. > > I think it's correct. cancel_work_sync can sleep. It is caught under >

Re: [PATCH 6/7] Fix race between starved list processing and device removal

2012-11-21 Thread Bart Van Assche
On 11/02/12 11:48, Bart Van Assche wrote: [PATCH] Fix race between starved list processing and device removal [ ... ] diff --git a/drivers/scsi/scsi_sysfs.c b/drivers/scsi/scsi_sysfs.c index ce5224c..2f0f31e 100644 --- a/drivers/scsi/scsi_sysfs.c +++ b/drivers/scsi/scsi_sysfs.c @@ -348,7 +348,6 @

Re: [PATCH 6/7] Fix race between starved list processing and device removal

2012-11-02 Thread Bart Van Assche
On 10/30/12 06:40, Zhuang, Jin Can wrote: > Yes. Here's the warning. > For the trace below, I used scsi_device_get/scsi_device_put() in > scsi_run_queue(). (A little different from your patch). But I think it's the > same. > > 10-23 18:15:53.309 8 8 I KERNEL : [ 268.994556] BUG: sleepi

RE: [PATCH 6/7] Fix race between starved list processing and device removal

2012-10-29 Thread Zhuang, Jin Can
eo; Chanho Min Subject: Re: [PATCH 6/7] Fix race between starved list processing and device removal On 10/28/12 19:01, Zhuang, Jin Can wrote: > I recently ran into the same issue > The test I did is plug/unplug u-disk in an interval of 1 second. And > I found when sdev1 is being removed

Re: [PATCH 6/7] Fix race between starved list processing and device removal

2012-10-29 Thread Bart Van Assche
On 10/28/12 19:01, Zhuang, Jin Can wrote: I recently ran into the same issue The test I did is plug/unplug u-disk in an interval of 1 second. And > I found when sdev1 is being removed, scsi_run_queue is triggered by > sdev2, which then accesses all the starving scsi device including sdev1. I h

Re: [PATCH 6/7] Fix race between starved list processing and device removal

2012-10-28 Thread Tejun Heo
Hello, Bart. On Fri, Oct 26, 2012 at 02:05:01PM +0200, Bart Van Assche wrote: > The SCSI core maintains a "starved list" per SCSI host. This is a > list of devices for which one or more requests have been queued > but that have not yet been passed to the SCSI LLD. The function > scsi_run_queue() e

RE: [PATCH 6/7] Fix race between starved list processing and device removal

2012-10-28 Thread Zhuang, Jin Can
I recently ran into the same issue The test I did is plug/unplug u-disk in an interval of 1 second. And I found when sdev1 is being removed, scsi_run_queue is triggered by sdev2, which then accesses all the starving scsi device including sdev1. I have adopted the solution below which works fine