compat-wireless: Handle name change from iwlagn to iwlwifi in 3.2
PATCH 1/1 compat-wireless: Handle name change from iwlagn to iwlwifi in 3.2
From: Don Fry <[email protected]>
With linux-3.2 the iwlagn driver is renamed iwlwifi. For some kernels (like 3.1.5) this causes the non-compat iwlagn.ko to try and run against the compat mac80211 resulting in a kernel oops. This change prevents the non-compat iwlagn.ko from being loaded.
Signed-off-by Don Fry <[email protected]>
--- Makefile | 17 +++++++++++++++-- scripts/iwl-enable | 11 ++++++++++- scripts/unload.sh | 2 +- scripts/wlunload.sh | 2 +- 4 files changed, 27 insertions(+), 5 deletions(-)
Makefile +15 -2
@@ -9,7 +9,9 @@ export KLIB_BUILD ?= $(KLIB)/build # Sometimes not available in the path MODPROBE := /sbin/modprobe MADWIFI=$(shell $(MODPROBE) -l ath_pci) -OLD_IWL=$(shell $(MODPROBE) -l iwl4965) +NEW_IWL=$(shell $(MODPROBE) -l iwlwifi) +OLD_IWL=$(shell $(MODPROBE) -l iwlagn) +ANCIENT_IWL=$(shell $(MODPROBE) -l iwl4965) DESTDIR?=
@@ -187,7 +189,7 @@ install-scripts: echo Running athenable ath5k...;\ /usr/sbin/athenable ath5k ;\ fi - @if [ ! -z "$(OLD_IWL)" ] && [ -z "$(DESTDIR)" ]; then \ + @if [ ! -z "$(ANCIENT_IWL)" ] && [ ! -z "$(OLD_IWL)" ] && [ -z "$(DESTDIR)" ]; then \ echo ;\ echo -n "Note: iwl4965 detected, we're going to disable it. " ;\ echo "If you would like to enable it later you can run:" ;\
@@ -196,6 +198,15 @@ install-scripts: echo Running iwl-enable iwlagn...;\ /usr/sbin/iwl-enable iwlagn ;\ fi + @if [ ! -z "$(NEW_IWL)" ] && [ ! -z "$(OLD_IWL)" ] && [ -z "$(DESTDIR)" ]; then \ + echo ;\ + echo -n "Note: iwlagn detected, we're going to disable it. " ;\ + echo "If you would like to enable it later you can run:" ;\ + echo " sudo iwl-load iwlagn" ;\ + echo ;\ + echo Running iwl-enable iwlwifi...;\ + /usr/sbin/iwl-enable iwlwifi ;\ + fi @# If on distributions like Mandriva which like to @# compress their modules this will find out and do @# it for you. Reason is some old version of modutils
@@ -234,6 +245,7 @@ install-scripts: @$(MODPROBE) -l ipw2200 @$(MODPROBE) -l iwl3945 @$(MODPROBE) -l iwlagn + @$(MODPROBE) -l iwlwifi @$(MODPROBE) -l iwlcore @$(MODPROBE) -l iwmc3200wifi @$(MODPROBE) -l lib80211_crypt_ccmp
@@ -364,6 +376,7 @@ uninstall: @$(MODPROBE) -l ipw2100 @$(MODPROBE) -l ipw2200 @$(MODPROBE) -l iwl3945 + @$(MODPROBE) -l iwlwifi @$(MODPROBE) -l iwlagn @$(MODPROBE) -l iwlcore @$(MODPROBE) -l iwmc3200wifi
scripts/iwl-enable +10 -1
@@ -17,7 +17,14 @@ IWL_NEW="iwlagn" IWL_OLD="iwl4965" # Appended to module file at the end when we want to ignore one -USAGE="Usage: $0 [ $IWL_NEW | $IWL_OLD ]" +USAGE="Usage: $0 [ $IWL_NEW | $IWL_OLD | iwlwifi]" + +function enable_iwlwifi { + for i in $IWL_OLD $IWL_NEW; do + module_disable $i + done + module_enable iwlwifi +} function enable_iwlagn { module_disable $IWL_OLD
@@ -41,6 +48,8 @@ if [ "$MODULE" == "iwl4965" ]; then module_enable $IWL_OLD elif [ "$MODULE" == "iwlagn" ]; then enable_iwlagn +elif [ "$MODULE" == "iwlwifi" ]; then + enable_iwlwifi else echo "$USAGE" exit
scripts/unload.sh +1 -1
@@ -15,7 +15,7 @@ MODULES="$MODULES adm8211 zd1211rw" MODULES="$MODULES orinoco_cs orinoco_nortel orinoco_pci orinoco_plx" MODULES="$MODULES orinoco_tld orinoco_usb spectrum_cs orinoco" MODULES="$MODULES b43 b44 b43legacy brcm80211 ssb" -MODULES="$MODULES iwl3945 iwlagn iwlcore" +MODULES="$MODULES iwl3945 iwlwifi iwlagn iwlcore" MODULES="$MODULES ath9k ath9k_htc ath9k_common ath9k_hw " MODULES="$MODULES ath5k ath ath6kl ar9170usb carl9170" MODULES="$MODULES p54pci p54usb p54spi p54common"
scripts/wlunload.sh +1 -1
@@ -15,7 +15,7 @@ MODULES="$MODULES adm8211 zd1211rw" MODULES="$MODULES orinoco_cs orinoco_nortel orinoco_pci orinoco_plx" MODULES="$MODULES orinoco_tld orinoco_usb spectrum_cs orinoco" MODULES="$MODULES b43 b44 b43legacy brcm80211 ssb" -MODULES="$MODULES iwl3945 iwlagn iwlcore" +MODULES="$MODULES iwl3945 iwlwifi iwlagn iwlcore" MODULES="$MODULES ath9k ath9k_htc ath9k_common ath9k_hw " MODULES="$MODULES ath5k ath ath6kl ar9170usb carl9170" MODULES="$MODULES p54pci p54usb p54spi p54common"
Signature · 1 line
1.7.4.4
Quoted 6 lines · Don Fry
From: Don Fry <[email protected]>
With linux-3.2 the iwlagn driver is renamed iwlwifi. For some kernels (like 3.1.5) this causes the non-compat iwlagn.ko to try and run against the compat mac80211 resulting in a kernel oops. This change prevents the non-compat iwlagn.ko from being loaded.
Hey Luis, I don't see this in your tree, did you just miss it?
johannes