Message ID | 20090502023000.GA16076@cuplxvomd02.corp.sa.net |
---|---|
State | Not Applicable, archived |
Delegated to: | David Miller |
Headers | show |
On Fri, 1 May 2009 19:30:00 -0700 David VomLehn <dvomlehn@cisco.com> wrote: > From: Alan Stern <stern@rowland.harvard.edu > > Add notification of device discovery for USB and SCSI block devices. > > History > v3 Change bootdev_* to initdev_* > v2 Correct location of call to bootdev_found > v1 Initial version > > Signed-off-by: Alan Stern <stern@rowland.harvard.edu > Signed-off-by: David VomLehn <dvomlehn@cisco.com> > --- > drivers/scsi/scsi_scan.c | 2 ++ > drivers/usb/storage/usb.c | 3 +++ > 2 files changed, 5 insertions(+), 0 deletions(-) > > diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c > index 6f51ca4..735b061 100644 > --- a/drivers/scsi/scsi_scan.c > +++ b/drivers/scsi/scsi_scan.c > @@ -1834,6 +1834,7 @@ static int do_scan_async(void *_data) > struct async_scan_data *data = _data; > do_scsi_scan_host(data->shost); > scsi_finish_async_scan(data); > + initdev_probe_done(BOOTDEV_BLOCK_MASK); Which code are waiting for the block device's probe done? > return 0; > } > > @@ -1855,6 +1856,7 @@ void scsi_scan_host(struct Scsi_Host *shost) > return; > } > > + initdev_found(BOOTDEV_BLOCK_MASK); > p = kthread_run(do_scan_async, data, "scsi_scan_%d", > shost->host_no); if (IS_ERR(p)) > do_scan_async(data); > diff --git a/drivers/usb/storage/usb.c b/drivers/usb/storage/usb.c > index 8060b85..ea7abab 100644 > --- a/drivers/usb/storage/usb.c > +++ b/drivers/usb/storage/usb.c > @@ -837,6 +837,7 @@ static int usb_stor_scan_thread(void * __us) > /* Should we unbind if no devices were detected? */ > } > > + initdev_probe_done(BOOTDEV_BLOCK_MASK); the same question with above. > complete_and_exit(&us->scanning_done, 0); > } > > @@ -937,10 +938,12 @@ int usb_stor_probe2(struct us_data *us) > } > > /* Start up the thread for delayed SCSI-device scanning */ > + initdev_found(BOOTDEV_BLOCK_MASK); > th = kthread_create(usb_stor_scan_thread, us, > "usb-stor-scan"); if (IS_ERR(th)) { > printk(KERN_WARNING USB_STORAGE > "Unable to start the device-scanning > thread\n"); > + initdev_probe_done(BOOTDEV_BLOCK_MASK); the same question with above. > complete(&us->scanning_done); > quiesce_and_remove_host(us); > result = PTR_ERR(th); > --
On Fri, May 01, 2009 at 11:55:39PM -0400, Ming Lei wrote: > On Fri, 1 May 2009 19:30:00 -0700 > David VomLehn <dvomlehn@cisco.com> wrote: > > > From: Alan Stern <stern@rowland.harvard.edu > > diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c > > index 6f51ca4..735b061 100644 > > --- a/drivers/scsi/scsi_scan.c > > +++ b/drivers/scsi/scsi_scan.c ... > > @@ -1834,6 +1834,7 @@ static int do_scan_async(void *_data) > > struct async_scan_data *data = _data; > > do_scsi_scan_host(data->shost); > > scsi_finish_async_scan(data); > > + initdev_probe_done(BOOTDEV_BLOCK_MASK); > > Which code are waiting for the block device's probe done? None yet. That remains to be done. > > diff --git a/drivers/usb/storage/usb.c b/drivers/usb/storage/usb.c > > index 8060b85..ea7abab 100644 > > --- a/drivers/usb/storage/usb.c > > +++ b/drivers/usb/storage/usb.c > > @@ -837,6 +837,7 @@ static int usb_stor_scan_thread(void * __us) > > /* Should we unbind if no devices were detected? */ > > } > > > > + initdev_probe_done(BOOTDEV_BLOCK_MASK); > > the same question with above. Same answer. > > @@ -937,10 +938,12 @@ int usb_stor_probe2(struct us_data *us) > > } > > > > /* Start up the thread for delayed SCSI-device scanning */ > > + initdev_found(BOOTDEV_BLOCK_MASK); > > th = kthread_create(usb_stor_scan_thread, us, > > "usb-stor-scan"); if (IS_ERR(th)) { > > printk(KERN_WARNING USB_STORAGE > > "Unable to start the device-scanning > > thread\n"); > > + initdev_probe_done(BOOTDEV_BLOCK_MASK); > > the same question with above. Same answer. > Lei Ming Thanks! David VomLehn -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
2009/5/5 David VomLehn <dvomlehn@cisco.com>: > On Fri, May 01, 2009 at 11:55:39PM -0400, Ming Lei wrote: >> On Fri, 1 May 2009 19:30:00 -0700 >> David VomLehn <dvomlehn@cisco.com> wrote: >> >> > From: Alan Stern <stern@rowland.harvard.edu >> > diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c >> > index 6f51ca4..735b061 100644 >> > --- a/drivers/scsi/scsi_scan.c >> > +++ b/drivers/scsi/scsi_scan.c > ... >> > @@ -1834,6 +1834,7 @@ static int do_scan_async(void *_data) >> > struct async_scan_data *data = _data; >> > do_scsi_scan_host(data->shost); >> > scsi_finish_async_scan(data); >> > + initdev_probe_done(BOOTDEV_BLOCK_MASK); >> >> Which code are waiting for the block device's probe done? > > None yet. That remains to be done. > Would you mind submitting the code path of waitting for probe done to allow a intact review? Without the waitting code, it is a a little difficult to undersand or verify your patch, IMHO. Thanks
On Tue, May 05, 2009 at 12:05:19AM -0400, Ming Lei wrote: > 2009/5/5 David VomLehn <dvomlehn@cisco.com>: > > On Fri, May 01, 2009 at 11:55:39PM -0400, Ming Lei wrote: > >> On Fri, 1 May 2009 19:30:00 -0700 > >> David VomLehn <dvomlehn@cisco.com> wrote: > >> > >> > From: Alan Stern <stern@rowland.harvard.edu > >> > diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c > >> > index 6f51ca4..735b061 100644 > >> > --- a/drivers/scsi/scsi_scan.c > >> > +++ b/drivers/scsi/scsi_scan.c > > ... > >> > @@ -1834,6 +1834,7 @@ static int do_scan_async(void *_data) > >> > struct async_scan_data *data = _data; > >> > do_scsi_scan_host(data->shost); > >> > scsi_finish_async_scan(data); > >> > + initdev_probe_done(BOOTDEV_BLOCK_MASK); > >> > >> Which code are waiting for the block device's probe done? > > > > None yet. That remains to be done. > > > > Would you mind submitting the code path of waitting for probe done to allow a > intact review? Without the waitting code, it is a a little difficult > to undersand or verify > your patch, IMHO. This will be in the next spin of the patch, coming soon (possibly today). > Thanks > Lei Ming David VomLehn -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c index 6f51ca4..735b061 100644 --- a/drivers/scsi/scsi_scan.c +++ b/drivers/scsi/scsi_scan.c @@ -1834,6 +1834,7 @@ static int do_scan_async(void *_data) struct async_scan_data *data = _data; do_scsi_scan_host(data->shost); scsi_finish_async_scan(data); + initdev_probe_done(BOOTDEV_BLOCK_MASK); return 0; } @@ -1855,6 +1856,7 @@ void scsi_scan_host(struct Scsi_Host *shost) return; } + initdev_found(BOOTDEV_BLOCK_MASK); p = kthread_run(do_scan_async, data, "scsi_scan_%d", shost->host_no); if (IS_ERR(p)) do_scan_async(data); diff --git a/drivers/usb/storage/usb.c b/drivers/usb/storage/usb.c index 8060b85..ea7abab 100644 --- a/drivers/usb/storage/usb.c +++ b/drivers/usb/storage/usb.c @@ -837,6 +837,7 @@ static int usb_stor_scan_thread(void * __us) /* Should we unbind if no devices were detected? */ } + initdev_probe_done(BOOTDEV_BLOCK_MASK); complete_and_exit(&us->scanning_done, 0); } @@ -937,10 +938,12 @@ int usb_stor_probe2(struct us_data *us) } /* Start up the thread for delayed SCSI-device scanning */ + initdev_found(BOOTDEV_BLOCK_MASK); th = kthread_create(usb_stor_scan_thread, us, "usb-stor-scan"); if (IS_ERR(th)) { printk(KERN_WARNING USB_STORAGE "Unable to start the device-scanning thread\n"); + initdev_probe_done(BOOTDEV_BLOCK_MASK); complete(&us->scanning_done); quiesce_and_remove_host(us); result = PTR_ERR(th);