From: Greg KH on 20 Apr 2010 09:30 On Tue, Apr 20, 2010 at 06:49:04PM +0930, Rusty Russell wrote: > This fixes "gave up waiting for init of module libcrc32c." which > happened at boot time due to multiple parallel module loads. > > The problem was a deadlock: we wait for a module to finish > initializing, but we keep the module_lock mutex so it can't complete. > In particular, this could reasonably happen if a module does a > request_module() in its initialization routine. > > So we change use_module() to return an errno rather than a bool, and if > it's -EBUSY we drop the lock and wait in the caller, then reaquire the > lock. > > Reported-by: Brandon Philips <brandon(a)ifup.org> > Signed-off-by: Rusty Russell <rusty(a)rustcorp.com.au> > Tested-by: Brandon Philips <brandon(a)ifup.org> > --- If you wish to have patches included "automatically" in the stable kernel releases, just add: Cc: stable <stable(a)kernel.org> to the signed-off-by area of your patch. Then, when the patch goes into Linus's tree, I get notified of it and can trivially add it to the proper kernel trees. Otherwise I need to go dig through git and watch to see if/when the patch shows up there or not, which takes a lot of time when having to do it for a lot of patches. thanks, greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|
Pages: 1 Prev: PROBLEM: conflicting types for ‘sn_dma_flush’ Next: globally ignore Module.symvers |