firmware: provide helpers for registering the syfs loader
authorLuis R. Rodriguez <mcgrof@kernel.org>
Mon, 20 Nov 2017 17:45:33 +0000 (09:45 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 29 Nov 2017 10:07:00 +0000 (11:07 +0100)
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>
drivers/base/firmware_class.c

index c8033c5488f964f16ddc6e9d6108a88f7cd744a1..3340a17e0499998a07e81e6d17221577eb73cc64 100644 (file)
@@ -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);