]> git.karo-electronics.de Git - karo-tx-linux.git/commit
firmware_class: Do not warn that system is not ready from async loads
authorRafael J. Wysocki <rjw@sisk.pl>
Wed, 28 Mar 2012 21:30:02 +0000 (23:30 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 13 Apr 2012 16:13:53 +0000 (09:13 -0700)
commit91cb632cd8d0a1649d088a50e752459d1e8b3d79
tree61f3b27100b1b5204e52584a89c5467ca9a720b5
parent4aaf8189db4a00e133afbb0e538e8c4f5551a833
firmware_class: Do not warn that system is not ready from async loads

commit 9b78c1da60b3c62ccdd1509f0902ad19ceaf776b upstream.

If firmware is requested asynchronously, by calling
request_firmware_nowait(), there is no reason to fail the request
(and warn the user) when the system is (presumably temporarily)
unready to handle it (because user space is not available yet or
frozen).  For this reason, introduce an alternative routine for
read-locking umhelper_sem, usermodehelper_read_lock_wait(), that
will wait for usermodehelper_disabled to be unset (possibly with
a timeout) and make request_firmware_work_func() use it instead of
usermodehelper_read_trylock().

Accordingly, modify request_firmware() so that it uses
usermodehelper_read_trylock() to acquire umhelper_sem and remove
the code related to that lock from _request_firmware().

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/base/firmware_class.c
include/linux/kmod.h
kernel/kmod.c