diff options
author | Luis R. Rodriguez | 2017-11-20 18:45:33 +0100 |
---|---|---|
committer | Greg Kroah-Hartman | 2017-11-29 11:07:00 +0100 |
commit | 6bb9cf3aa3edf5968877d3f7863e232d4b9394a4 (patch) | |
tree | 25c7fa29c20afb640a8519115278512b52495b46 /drivers/base | |
parent | firmware: fix capturing errors on fw_cache_init() on early init (diff) | |
download | kernel-qcow2-linux-6bb9cf3aa3edf5968877d3f7863e232d4b9394a4.tar.gz kernel-qcow2-linux-6bb9cf3aa3edf5968877d3f7863e232d4b9394a4.tar.xz kernel-qcow2-linux-6bb9cf3aa3edf5968877d3f7863e232d4b9394a4.zip |
firmware: provide helpers for registering the syfs loader
This makes init / exit much easier to read, and we can later
reuse this code on other errors not captured yet.
Signed-off-by: Luis R. Rodriguez <mcgrof@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/base')
-rw-r--r-- | drivers/base/firmware_class.c | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/drivers/base/firmware_class.c b/drivers/base/firmware_class.c index c8033c5488f9..3340a17e0499 100644 --- a/drivers/base/firmware_class.c +++ b/drivers/base/firmware_class.c @@ -687,6 +687,16 @@ static struct class firmware_class = { .dev_release = fw_dev_release, }; +static inline int register_sysfs_loader(void) +{ + return class_register(&firmware_class); +} + +static inline void unregister_sysfs_loader(void) +{ + class_unregister(&firmware_class); +} + static ssize_t firmware_loading_show(struct device *dev, struct device_attribute *attr, char *buf) { @@ -1124,6 +1134,15 @@ fw_load_from_user_helper(struct firmware *firmware, const char *name, static inline void kill_pending_fw_fallback_reqs(bool only_kill_custom) { } +static inline int register_sysfs_loader(void) +{ + return 0; +} + +static inline void unregister_sysfs_loader(void) +{ +} + #endif /* CONFIG_FW_LOADER_USER_HELPER */ /* prepare firmware and firmware_buf structs; @@ -1842,20 +1861,14 @@ static int __init firmware_class_init(void) return ret; register_reboot_notifier(&fw_shutdown_nb); -#ifdef CONFIG_FW_LOADER_USER_HELPER - return class_register(&firmware_class); -#else - return 0; -#endif + return register_sysfs_loader(); } static void __exit firmware_class_exit(void) { unregister_fw_pm_ops(); unregister_reboot_notifier(&fw_shutdown_nb); -#ifdef CONFIG_FW_LOADER_USER_HELPER - class_unregister(&firmware_class); -#endif + unregister_sysfs_loader(); } fs_initcall(firmware_class_init); |