--- l/drivers/base/firmware_loader/fallback.c
+++ f/drivers/base/firmware_loader/fallback.c
@@ -64,6 +64,7 @@ void kill_pending_fw_fallback_reqs(bool
 	mutex_unlock(&fw_lock);
 }
 
+static DEFINE_MUTEX(fw_load_sysfs_mutex);
 /**
  * fw_load_sysfs_fallback() - load a firmware via the sysfs fallback mechanism
  * @fw_sysfs: firmware sysfs information for the firmware to load
@@ -82,6 +83,7 @@ static int fw_load_sysfs_fallback(struct
 		fw_priv->is_paged_buf = true;
 
 	dev_set_uevent_suppress(f_dev, true);
+	mutex_lock(&fw_load_sysfs_mutex);
 
 	retval = device_add(f_dev);
 	if (retval) {
@@ -124,6 +126,7 @@ out:
 	device_del(f_dev);
 err_put_dev:
 	put_device(f_dev);
+	mutex_unlock(&fw_load_sysfs_mutex);
 	return retval;
 }