diff options
Diffstat (limited to 'drivers/base/firmware_class.c')
| -rw-r--r-- | drivers/base/firmware_class.c | 11 | 
1 files changed, 6 insertions, 5 deletions
| diff --git a/drivers/base/firmware_class.c b/drivers/base/firmware_class.c index bbb03e6f7255..06ed6b4e7df5 100644 --- a/drivers/base/firmware_class.c +++ b/drivers/base/firmware_class.c @@ -521,11 +521,6 @@ static int _request_firmware(const struct firmware **firmware_p,  	if (!firmware_p)  		return -EINVAL; -	if (WARN_ON(usermodehelper_is_disabled())) { -		dev_err(device, "firmware: %s will not be loaded\n", name); -		return -EBUSY; -	} -  	*firmware_p = firmware = kzalloc(sizeof(*firmware), GFP_KERNEL);  	if (!firmware) {  		dev_err(device, "%s: kmalloc(struct firmware) failed\n", @@ -539,6 +534,12 @@ static int _request_firmware(const struct firmware **firmware_p,  		return 0;  	} +	if (WARN_ON(usermodehelper_is_disabled())) { +		dev_err(device, "firmware: %s will not be loaded\n", name); +		retval = -EBUSY; +		goto out; +	} +  	if (uevent)  		dev_dbg(device, "firmware: requesting %s\n", name); | 
