Messages in this thread | | | Date | Wed, 9 May 2007 02:55:32 -0700 | From | Greg KH <> | Subject | Re: Please revert 5adc55da4a7758021bcc374904b0f8b076508a11 (PCI_MULTITHREAD_PROBE) |
| |
On Tue, May 08, 2007 at 02:41:54PM -0700, David Miller wrote: > From: Linus Torvalds <torvalds@linux-foundation.org> > Date: Tue, 8 May 2007 13:01:21 -0700 (PDT) > > > In fact, there is nothing wrong with having *both* a synchronous part, and > > an async part: > > > > .probe = mydriver_setup, > > .probe_async = mydriver_spin_up_and_probe_devices, > ... > > Hmm? Would something like this work? I dunno, but it seems a hell of a lot > > safer and more capable than the aborted PCI multithreaded probing that was > > an "all or nothing" approach. > > I definitely agree that we need a transitonary approach to this. > > Although I kind of preferred the idea you mentioned where the > device could launch the asynchronous probe and just return from > the normal ->probe() immediately.
Yes, let this be a decision the individual PCI driver does, I don't want to put this two-stage thing in the driver core, but any individual bus can implement it if they really want to.
> This might get tricky if the callers do some kind of reference > counting or other resource management based upon the ->probe() > return value since it wouldn't know what happened to the > launched asynchronous probe when it returns from ->probe().
As long as the ->probe() call returns that the driver has clamed the device, and the ->remove() call can be handled properly while the driver is off doing whatever it wants to in the initialization, the driver core should work just fine, no changes needed.
thanks,
greg k-h - 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/
| |