diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/base/firmware_class.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/base/firmware_class.c b/drivers/base/firmware_class.c index 06ed6b4e7df5..d5585da14c8a 100644 --- a/drivers/base/firmware_class.c +++ b/drivers/base/firmware_class.c | |||
@@ -534,6 +534,8 @@ static int _request_firmware(const struct firmware **firmware_p, | |||
534 | return 0; | 534 | return 0; |
535 | } | 535 | } |
536 | 536 | ||
537 | read_lock_usermodehelper(); | ||
538 | |||
537 | if (WARN_ON(usermodehelper_is_disabled())) { | 539 | if (WARN_ON(usermodehelper_is_disabled())) { |
538 | dev_err(device, "firmware: %s will not be loaded\n", name); | 540 | dev_err(device, "firmware: %s will not be loaded\n", name); |
539 | retval = -EBUSY; | 541 | retval = -EBUSY; |
@@ -572,6 +574,8 @@ static int _request_firmware(const struct firmware **firmware_p, | |||
572 | fw_destroy_instance(fw_priv); | 574 | fw_destroy_instance(fw_priv); |
573 | 575 | ||
574 | out: | 576 | out: |
577 | read_unlock_usermodehelper(); | ||
578 | |||
575 | if (retval) { | 579 | if (retval) { |
576 | release_firmware(firmware); | 580 | release_firmware(firmware); |
577 | *firmware_p = NULL; | 581 | *firmware_p = NULL; |