misc: mic: use common error path
Instead of calling release_firmware() on every error and then jumping lets have a common release_firmware() in the error path. This patch also fixes a memory leak where we missed release_firmware() if mic_x100_load_command_line() fails. Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org> Reviewed-by: Sudeep Dutt <sudeep.dutt@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Родитель
fbaa72d564
Коммит
5fb437984b
|
@ -463,8 +463,7 @@ mic_x100_load_firmware(struct mic_device *mdev, const char *buf)
|
|||
rc = -EINVAL;
|
||||
dev_err(&mdev->pdev->dev, "%s %d rc %d bootaddr 0x%x\n",
|
||||
__func__, __LINE__, rc, mdev->bootaddr);
|
||||
release_firmware(fw);
|
||||
goto done;
|
||||
goto error;
|
||||
}
|
||||
memcpy_toio(mdev->aper.va + mdev->bootaddr, fw->data, fw->size);
|
||||
mdev->ops->write_spad(mdev, MIC_X100_FW_SIZE, fw->size);
|
||||
|
@ -472,22 +471,24 @@ mic_x100_load_firmware(struct mic_device *mdev, const char *buf)
|
|||
rc = -EINVAL;
|
||||
dev_err(&mdev->pdev->dev, "%s %d rc %d\n",
|
||||
__func__, __LINE__, rc);
|
||||
release_firmware(fw);
|
||||
goto done;
|
||||
goto error;
|
||||
}
|
||||
/* load command line */
|
||||
rc = mic_x100_load_command_line(mdev, fw);
|
||||
if (rc) {
|
||||
dev_err(&mdev->pdev->dev, "%s %d rc %d\n",
|
||||
__func__, __LINE__, rc);
|
||||
goto done;
|
||||
goto error;
|
||||
}
|
||||
release_firmware(fw);
|
||||
/* load ramdisk */
|
||||
if (mdev->cosm_dev->ramdisk)
|
||||
rc = mic_x100_load_ramdisk(mdev);
|
||||
|
||||
done:
|
||||
return rc;
|
||||
|
||||
error:
|
||||
release_firmware(fw);
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче