Commit 6bb9cf3a authored by Luis R. Rodriguez's avatar Luis R. Rodriguez Committed by Greg Kroah-Hartman
Browse files

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: default avatarLuis R. Rodriguez <mcgrof@kernel.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 59b6d859
Loading
Loading
Loading
Loading
+21 −8
Original line number Diff line number Diff line
@@ -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);