diff --git a/package/mac80211/patches/050-compat_firmware.patch b/package/mac80211/patches/050-compat_firmware.patch index 4d96ca9f8..0fcee7631 100644 --- a/package/mac80211/patches/050-compat_firmware.patch +++ b/package/mac80211/patches/050-compat_firmware.patch @@ -15,3 +15,63 @@ # Compat kernel compatibility code compat-$(CONFIG_COMPAT_KERNEL_2_6_14) += compat-2.6.14.o compat-$(CONFIG_COMPAT_KERNEL_2_6_18) += compat-2.6.18.o +--- a/compat/compat_firmware_class.c ++++ b/compat/compat_firmware_class.c +@@ -729,19 +729,16 @@ request_firmware_nowait( + return 0; + } + +-static int __init firmware_class_init(void) ++int __init firmware_class_init(void) + { + return class_register(&firmware_class); + } + +-static void __exit firmware_class_exit(void) ++void __exit firmware_class_exit(void) + { + class_unregister(&firmware_class); + } + +-fs_initcall(firmware_class_init); +-module_exit(firmware_class_exit); +- + EXPORT_SYMBOL(release_firmware); + EXPORT_SYMBOL(request_firmware); + EXPORT_SYMBOL(request_firmware_nowait); +--- a/compat/main.c ++++ b/compat/main.c +@@ -32,6 +32,14 @@ module_param(compat_version, charp, 0400 + MODULE_PARM_DESC(compat_version, + "Version of the kernel compat backport work"); + ++#if defined(CONFIG_FW_LOADER) && (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)) ++int __init firmware_class_init(void); ++void __exit firmware_class_exit(void); ++#else ++static inline int firmware_class_init(void) {} ++static inline void firmware_class_exit(void) {} ++#endif ++ + static int __init compat_init(void) + { + /* pm-qos for kernels <= 2.6.24, this is a no-op on newer kernels */ +@@ -45,15 +53,15 @@ static int __init compat_init(void) + COMPAT_BASE_TREE " " COMPAT_BASE_TREE_VERSION + "\n"); + +- return 0; ++ firmware_class_init(); ++ return 0; + } + module_init(compat_init); + + static void __exit compat_exit(void) + { + compat_pm_qos_power_deinit(); +- +- return; ++ firmware_class_exit(); + } + module_exit(compat_exit); +