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(
+@@ -741,19 +741,16 @@ compat_request_firmware_nowait(
return 0;
}
-fs_initcall(firmware_class_init);
-module_exit(firmware_class_exit);
-
- EXPORT_SYMBOL(release_firmware);
- EXPORT_SYMBOL(request_firmware);
- EXPORT_SYMBOL(request_firmware_nowait);
+ EXPORT_SYMBOL_GPL(release_firmware);
+ EXPORT_SYMBOL_GPL(request_firmware);
+ EXPORT_SYMBOL_GPL(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");
+@@ -37,6 +37,17 @@ void compat_dependency_symbol(void)
+ }
+ EXPORT_SYMBOL_GPL(compat_dependency_symbol);
+#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 int firmware_class_init(void)
++{
++ return 0;
++}
+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)
+@@ -51,7 +62,8 @@ static int __init compat_init(void)
COMPAT_BASE_TREE " " COMPAT_BASE_TREE_VERSION
"\n");
}
module_init(compat_init);
- static void __exit compat_exit(void)
- {
+@@ -60,7 +72,8 @@ static void __exit compat_exit(void)
compat_pm_qos_power_deinit();
--
+ compat_system_workqueue_destroy();
+
- return;
+ firmware_class_exit();
++ return;
}
module_exit(compat_exit);