diff options
author | Andrew Morton <akpm@linux-foundation.org> | 2022-10-16 16:06:53 -0700 |
---|---|---|
committer | Andrew Morton <akpm@linux-foundation.org> | 2022-10-16 16:06:53 -0700 |
commit | 280330fac48280e16454cfa46c368af4812ad79c (patch) | |
tree | 18b9ed796c57e3929e50b9b03f2c6501740b03d6 /drivers/base/firmware_loader/sysfs_upload.c | |
parent | d0d51a97063db4704a5ef6bc978dddab1636a306 (diff) | |
parent | 4fe89d07dcc2804c8b562f6c7896a45643d34b2f (diff) |
Merge branch 'master' into mm-hotfixes-stable
Diffstat (limited to 'drivers/base/firmware_loader/sysfs_upload.c')
-rw-r--r-- | drivers/base/firmware_loader/sysfs_upload.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/base/firmware_loader/sysfs_upload.c b/drivers/base/firmware_loader/sysfs_upload.c index 87044d52322a..a0af8f5f13d8 100644 --- a/drivers/base/firmware_loader/sysfs_upload.c +++ b/drivers/base/firmware_loader/sysfs_upload.c @@ -264,6 +264,15 @@ int fw_upload_start(struct fw_sysfs *fw_sysfs) return 0; } +void fw_upload_free(struct fw_sysfs *fw_sysfs) +{ + struct fw_upload_priv *fw_upload_priv = fw_sysfs->fw_upload_priv; + + free_fw_priv(fw_sysfs->fw_priv); + kfree(fw_upload_priv->fw_upload); + kfree(fw_upload_priv); +} + /** * firmware_upload_register() - register for the firmware upload sysfs API * @module: kernel module of this device @@ -377,6 +386,7 @@ void firmware_upload_unregister(struct fw_upload *fw_upload) { struct fw_sysfs *fw_sysfs = fw_upload->priv; struct fw_upload_priv *fw_upload_priv = fw_sysfs->fw_upload_priv; + struct module *module = fw_upload_priv->module; mutex_lock(&fw_upload_priv->lock); if (fw_upload_priv->progress == FW_UPLOAD_PROG_IDLE) { @@ -392,6 +402,6 @@ void firmware_upload_unregister(struct fw_upload *fw_upload) unregister: device_unregister(&fw_sysfs->dev); - module_put(fw_upload_priv->module); + module_put(module); } EXPORT_SYMBOL_GPL(firmware_upload_unregister); |