diff options
Diffstat (limited to 'drivers/base/firmware_class.c')
-rw-r--r-- | drivers/base/firmware_class.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/base/firmware_class.c b/drivers/base/firmware_class.c index c1093c0d4dea..991d07b219cb 100644 --- a/drivers/base/firmware_class.c +++ b/drivers/base/firmware_class.c @@ -1303,15 +1303,17 @@ static int assign_firmware_buf(struct firmware *fw, struct device *device, /* called from request_firmware() and request_firmware_work_func() */ static int _request_firmware(struct fw_desc *desc) { - struct firmware *fw; + struct firmware *fw = NULL; long timeout; int ret; if (!desc->firmware_p) return -EINVAL; - if (!desc->name || desc->name[0] == '\0') - return -EINVAL; + if (!desc->name || desc->name[0] == '\0') { + ret = -EINVAL; + goto out; + } ret = _request_firmware_prepare(&fw, desc); if (ret <= 0) /* error or already assigned */ |