compat-wireless: address usage of request_module_nowait() on iwlwifi
authorLuis R. Rodriguez <mcgrof@frijolero.org>
Tue, 12 Jun 2012 17:52:50 +0000 (10:52 -0700)
committerLuis R. Rodriguez <mcgrof@frijolero.org>
Tue, 12 Jun 2012 17:52:50 +0000 (10:52 -0700)
request_module_nowait() was added on 2.6.30 but we can't
backport it. Under some circumstances though request_module_nowait()
likely was not meant to be used on purpose and instead we can
assume request_module() will work. This patch addresses the few
places where request_module_nowait() was used but that we can
at least somewhat assume that this can work. We do not backport
this into compat.git as a direct static inline given that there
are surely some places where request_module() cannot be used.

All users of request_module_nowait() should revise their code and
snsure that is indeed what was meant.

In this patch we address using the regular request_module() on
iwlwifi given that it seems we can use it there. Someone can
hopefully however test and verify this is OK. For newer kernels
that have request_module_nowait() we leave the call.

Signed-off-by: Luis R. Rodriguez <mcgrof@frijolero.org>
patches/63-request_module_nowait.patch [new file with mode: 0644]

diff --git a/patches/63-request_module_nowait.patch b/patches/63-request_module_nowait.patch
new file mode 100644 (file)
index 0000000..ae4bba7
--- /dev/null
@@ -0,0 +1,27 @@
+request_module_nowait() was added on 2.6.30 but we can't
+backport it. Under some circumstances though request_module_nowait()
+likely was not meant to be used on purpose and instead we can
+assume request_module() will work. This patch addresses the few
+places where request_module_nowait() was used but that we can
+at least somewhat assume that this can work. We do not backport
+this into compat.git as a direct static inline given that there
+are surely some places where request_module() cannot be used.
+
+All users of request_module_nowait() should revise their code and
+snsure that is indeed what was meant.
+
+--- a/drivers/net/wireless/iwlwifi/iwl-drv.c
++++ b/drivers/net/wireless/iwlwifi/iwl-drv.c
+@@ -910,7 +910,12 @@ static void iwl_ucode_callback(const str
+               if (!drv->op_mode)
+                       goto out_unbind;
+       } else {
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,30))
+               request_module_nowait("%s", op->name);
++#else
++              /* Goes untested */
++              request_module("%s", op->name);
++#endif
+       }
+       /*