upgrade mac80211 to 2008-08-20 and clean up some unnecessary patching to config.mk, which frequently causes rejects on new versions
SVN-Revision: 17326
This commit is contained in:
parent
59d130d867
commit
9b11d6fa98
6 changed files with 63 additions and 555 deletions
|
@ -17,12 +17,12 @@ ifneq ($(CONFIG_LINUX_2_6_21)$(CONFIG_LINUX_2_6_25),)
|
|||
PKG_MD5SUM:=9563ceeed86bca0859ad5f010623277c
|
||||
PATCH_DIR:=./patches-old
|
||||
else
|
||||
PKG_VERSION:=2009-08-15
|
||||
PKG_RELEASE:=3
|
||||
PKG_VERSION:=2009-08-20
|
||||
PKG_RELEASE:=1
|
||||
PKG_SOURCE_URL:= \
|
||||
http://www.orbit-lab.org/kernel/compat-wireless-2.6/2009/08 \
|
||||
http://wireless.kernel.org/download/compat-wireless-2.6
|
||||
PKG_MD5SUM:=bc71c2b8554bb79511e9a38dd6d5b318
|
||||
PKG_MD5SUM:=0b3919adf847a59478cc4fb58e1cb6ec
|
||||
endif
|
||||
|
||||
PKG_SOURCE:=compat-wireless-$(PKG_VERSION).tar.bz2
|
||||
|
@ -438,44 +438,67 @@ MAKE_OPTS:= \
|
|||
ARCH="$(LINUX_KARCH)" \
|
||||
EXTRA_CFLAGS="$(BUILDFLAGS)" \
|
||||
$(foreach opt,$(CONFOPTS),CONFIG_$(opt)=m) \
|
||||
CONFIG_NL80211=y \
|
||||
CONFIG_MAC80211_RC_PID=y \
|
||||
CONFIG_MAC80211_RC_MINSTREL=y \
|
||||
CONFIG_MAC80211_LEDS=$(CONFIG_LEDS_TRIGGERS) \
|
||||
CONFIG_MAC80211_DEBUGFS=$(CONFIG_DEBUG_FS) \
|
||||
CONFIG_B43_PCMCIA=n CONFIG_B43_PIO=n \
|
||||
$(if $(CONFIG_PCI),CONFIG_B43_PCI_AUTOSELECT=y,CONFIG_B43_PCI_AUTOSELECT=n) \
|
||||
$(if $(CONFIG_PCI),CONFIG_B43_PCICORE_AUTOSELECT=y,CONFIG_B43_PCICORE_AUTOSELECT=n) \
|
||||
$(if $(CONFIG_PCI),CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y,CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=n) \
|
||||
$(if $(CONFIG_PCI),CONFIG_SSB_DRIVER_PCICORE=y,CONFIG_SSB_DRIVER_PCICORE=n) \
|
||||
$(if $(CONFIG_PCI),CONFIG_SSB_PCIHOST_POSSIBLE=y,CONFIG_SSB_PCIHOST_POSSIBLE=n) \
|
||||
$(if $(CONFIG_PCI),CONFIG_SSB_PCIHOST=y,CONFIG_SSB_PCIHOST=n) \
|
||||
CONFIG_B43_PCI_AUTOSELECT=$(if $(CONFIG_PCI),y) \
|
||||
CONFIG_B43_PCICORE_AUTOSELECT=$(if $(CONFIG_PCI),y) \
|
||||
CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=$(if $(CONFIG_PCI),y) \
|
||||
CONFIG_SSB_DRIVER_PCICORE=$(if $(CONFIG_PCI),y) \
|
||||
CONFIG_SSB_PCIHOST_POSSIBLE=$(if $(CONFIG_PCI),y) \
|
||||
CONFIG_SSB_PCIHOST=$(if $(CONFIG_PCI),y) \
|
||||
CONFIG_B43LEGACY_LEDS=$(CONFIG_LEDS_TRIGGERS) \
|
||||
CONFIG_B43_LEDS=$(CONFIG_LEDS_TRIGGERS) \
|
||||
$(if $(CONFIG_HW_RANDOM),CONFIG_B43_HWRNG=y,CONFIG_B43_HWRNG=n) \
|
||||
$(if $(CONFIG_HW_RANDOM),CONFIG_B43LEGACY_HWRNG=y,CONFIG_B43LEGACY_HWRNG=n) \
|
||||
$(if $(CONFIG_PACKAGE_kmod-b43),CONFIG_B43=m) \
|
||||
$(if $(CONFIG_PACKAGE_kmod-b43legacy),CONFIG_B43LEGACY=m) \
|
||||
$(if $(CONFIG_PACKAGE_kmod-ath),CONFIG_ATH_COMMON=m) \
|
||||
$(if $(CONFIG_PACKAGE_kmod-ath5k),CONFIG_ATH5K=m) \
|
||||
$(if $(CONFIG_PACKAGE_kmod-ath9k),CONFIG_ATH9K=m) \
|
||||
$(if $(CONFIG_PACKAGE_kmod-zd1211rw),CONFIG_ZD1211RW=m) \
|
||||
$(if $(CONFIG_PACKAGE_kmod-p54-common),CONFIG_P54_COMMON=m) \
|
||||
$(if $(CONFIG_PACKAGE_kmod-p54-pci),CONFIG_P54_PCI=m) \
|
||||
$(if $(CONFIG_PACKAGE_kmod-p54-usb),CONFIG_P54_USB=m) \
|
||||
$(if $(CONFIG_PACKAGE_kmod-rt2x00-lib),CONFIG_RT2X00=m) \
|
||||
$(if $(CONFIG_PACKAGE_kmod-rt2x00-pci),CONFIG_RT2X00_LIB_PCI=m) \
|
||||
$(if $(CONFIG_PACKAGE_kmod-rt2x00-usb),CONFIG_RT2X00_LIB_USB=m) \
|
||||
$(if $(CONFIG_PACKAGE_kmod-rt2400-pci),CONFIG_RT2400PCI=m) \
|
||||
$(if $(CONFIG_PACKAGE_kmod-rt2500-pci),CONFIG_RT2500PCI=m) \
|
||||
$(if $(CONFIG_PACKAGE_kmod-rt2500-usb),CONFIG_RT2500USB=m) \
|
||||
$(if $(CONFIG_PACKAGE_kmod-rt61-pci),CONFIG_RT61PCI=m) \
|
||||
$(if $(CONFIG_PACKAGE_kmod-rt73-usb),CONFIG_RT73USB=m) \
|
||||
$(if $(CONFIG_PACKAGE_kmod-rt2800-pci),CONFIG_RT2800PCI=m) \
|
||||
$(if $(CONFIG_PACKAGE_kmod-rt2800-usb),CONFIG_RT2800USB=m) \
|
||||
$(if $(CONFIG_PACKAGE_kmod-rtl8180),CONFIG_RTL8180=m) \
|
||||
$(if $(CONFIG_PACKAGE_kmod-rtl8187),CONFIG_RTL8187=m) \
|
||||
$(if $(CONFIG_PACKAGE_kmod-mac80211-hwsim),CONFIG_MAC80211_HWSIM=m) \
|
||||
CONFIG_B43_HWRNG=$(if $(CONFIG_HW_RANDOM),y) \
|
||||
CONFIG_B43LEGACY_HWRNG=$(if $(CONFIG_HW_RANDOM),y) \
|
||||
CONFIG_B43=$(if $(CONFIG_PACKAGE_kmod-b43),m) \
|
||||
CONFIG_B43LEGACY=$(if $(CONFIG_PACKAGE_kmod-b43legacy),m) \
|
||||
CONFIG_ATH_COMMON=$(if $(CONFIG_PACKAGE_kmod-ath),m) \
|
||||
CONFIG_ATH5K=$(if $(CONFIG_PACKAGE_kmod-ath5k),m) \
|
||||
CONFIG_ATH9K=$(if $(CONFIG_PACKAGE_kmod-ath9k),m) \
|
||||
CONFIG_ZD1211RW=$(if $(CONFIG_PACKAGE_kmod-zd1211rw),m) \
|
||||
CONFIG_P54_COMMON=$(if $(CONFIG_PACKAGE_kmod-p54-common),m) \
|
||||
CONFIG_P54_PCI=$(if $(CONFIG_PACKAGE_kmod-p54-pci),m) \
|
||||
CONFIG_P54_USB=$(if $(CONFIG_PACKAGE_kmod-p54-usb),m) \
|
||||
CONFIG_RT2X00=$(if $(CONFIG_PACKAGE_kmod-rt2x00-lib),m) \
|
||||
CONFIG_RT2X00_LIB_PCI=$(if $(CONFIG_PACKAGE_kmod-rt2x00-pci),m) \
|
||||
CONFIG_RT2X00_LIB_USB=$(if $(CONFIG_PACKAGE_kmod-rt2x00-usb),m) \
|
||||
CONFIG_RT2X00_LIB_RFKILL= \
|
||||
CONFIG_RT2400PCI=$(if $(CONFIG_PACKAGE_kmod-rt2400-pci),m) \
|
||||
CONFIG_RT2500PCI=$(if $(CONFIG_PACKAGE_kmod-rt2500-pci),m) \
|
||||
CONFIG_RT2500USB=$(if $(CONFIG_PACKAGE_kmod-rt2500-usb),m) \
|
||||
CONFIG_RT61PCI=$(if $(CONFIG_PACKAGE_kmod-rt61-pci),m) \
|
||||
CONFIG_RT73USB=$(if $(CONFIG_PACKAGE_kmod-rt73-usb),m) \
|
||||
CONFIG_RT2800PCI=$(if $(CONFIG_PACKAGE_kmod-rt2800-pci),m) \
|
||||
CONFIG_RT2800USB=$(if $(CONFIG_PACKAGE_kmod-rt2800-usb),m) \
|
||||
CONFIG_RTL8180=$(if $(CONFIG_PACKAGE_kmod-rtl8180),m) \
|
||||
CONFIG_RTL8187=$(if $(CONFIG_PACKAGE_kmod-rtl8187),m) \
|
||||
CONFIG_MAC80211_HWSIM=$(if $(CONFIG_PACKAGE_kmod-mac80211-hwsim),m) \
|
||||
CONFIG_LIBIPW= \
|
||||
CONFIG_LIBERTAS= \
|
||||
CONFIG_LIBERTAS_CS= \
|
||||
CONFIG_LIBERTAS_SDIO= \
|
||||
CONFIG_IPW2100= \
|
||||
CONFIG_IPW2200= \
|
||||
CONFIG_NL80211=y \
|
||||
CONFIG_LIB80211= \
|
||||
CONFIG_IWLWIFI= \
|
||||
CONFIG_IWLAGN= \
|
||||
CONFIG_MWL8K= \
|
||||
CONFIG_ATMEL= \
|
||||
CONFIG_PCMCIA_ATMEL= \
|
||||
CONFIG_ADM8211= \
|
||||
CONFIG_USB_NET_RNDIS_HOST= \
|
||||
CONFIG_USB_NET_RNDIS_WLAN= \
|
||||
CONFIG_AT76C50X_USB= \
|
||||
CONFIG_RFKILL_BACKPORT= \
|
||||
CONFIG_RFKILL_BACKPORT_LEDS= \
|
||||
CONFIG_RFKILL_BACKPORT_INPUT= \
|
||||
CONFIG_WL12XX= \
|
||||
CONFIG_EEPROM_93CX6= \
|
||||
CONFIG_AR9170_USB= \
|
||||
KLIB_BUILD="$(LINUX_DIR)" \
|
||||
MODPROBE=:
|
||||
|
||||
|
|
|
@ -1,396 +0,0 @@
|
|||
--- a/config.mk
|
||||
+++ b/config.mk
|
||||
@@ -153,77 +153,77 @@ CONFIG_CFG80211_DEFAULT_PS=y
|
||||
CONFIG_CFG80211_DEFAULT_PS_VALUE=1
|
||||
# CONFIG_CFG80211_REG_DEBUG=y
|
||||
|
||||
-CONFIG_LIB80211=m
|
||||
-CONFIG_LIB80211_CRYPT_WEP=m
|
||||
-CONFIG_LIB80211_CRYPT_CCMP=m
|
||||
-CONFIG_LIB80211_CRYPT_TKIP=m
|
||||
+# CONFIG_LIB80211=m
|
||||
+# CONFIG_LIB80211_CRYPT_WEP=m
|
||||
+# CONFIG_LIB80211_CRYPT_CCMP=m
|
||||
+# CONFIG_LIB80211_CRYPT_TKIP=m
|
||||
# CONFIG_LIB80211_DEBUG=y
|
||||
|
||||
CONFIG_WIRELESS_OLD_REGULATORY=n
|
||||
|
||||
# mac80211 test driver
|
||||
-CONFIG_MAC80211_HWSIM=m
|
||||
+# CONFIG_MAC80211_HWSIM=m
|
||||
|
||||
# PCI Drivers
|
||||
ifneq ($(CONFIG_PCI),)
|
||||
|
||||
-CONFIG_ATH5K=m
|
||||
+# CONFIG_ATH5K=m
|
||||
# CONFIG_ATH5K_DEBUG=y
|
||||
-CONFIG_ATH5K_RFKILL=y
|
||||
-CONFIG_ATH9K=m
|
||||
+# CONFIG_ATH5K_RFKILL=y
|
||||
+# CONFIG_ATH9K=m
|
||||
# CONFIG_ATH9K_DEBUG=y
|
||||
|
||||
|
||||
-CONFIG_IWLWIFI=m
|
||||
-CONFIG_IWLWIFI_LEDS=y
|
||||
-CONFIG_IWLWIFI_RFKILL=y
|
||||
-CONFIG_IWLWIFI_SPECTRUM_MEASUREMENT=y
|
||||
+# CONFIG_IWLWIFI=m
|
||||
+# CONFIG_IWLWIFI_LEDS=y
|
||||
+# CONFIG_IWLWIFI_RFKILL=y
|
||||
+# CONFIG_IWLWIFI_SPECTRUM_MEASUREMENT=y
|
||||
# CONFIG_IWLWIFI_DEBUG=y
|
||||
# CONFIG_IWLWIFI_DEBUGFS=y
|
||||
-CONFIG_IWLAGN=m
|
||||
-CONFIG_COMPAT_IWL4965=y
|
||||
-CONFIG_IWL5000=y
|
||||
-CONFIG_IWL3945=m
|
||||
-CONFIG_IWL3945_SPECTRUM_MEASUREMENT=y
|
||||
+# CONFIG_IWLAGN=m
|
||||
+# CONFIG_COMPAT_IWL4965=y
|
||||
+# CONFIG_IWL5000=y
|
||||
+# CONFIG_IWL3945=m
|
||||
+# CONFIG_IWL3945_SPECTRUM_MEASUREMENT=y
|
||||
|
||||
|
||||
-CONFIG_B43=m
|
||||
-CONFIG_B43_HWRNG=y
|
||||
-CONFIG_B43_PCI_AUTOSELECT=y
|
||||
-CONFIG_B43_PCICORE_AUTOSELECT=y
|
||||
-CONFIG_B43_PCMCIA=y
|
||||
-CONFIG_B43_PIO=y
|
||||
-CONFIG_B43_LEDS=y
|
||||
-CONFIG_B43_RFKILL=y
|
||||
+# CONFIG_B43=m
|
||||
+# CONFIG_B43_HWRNG=y
|
||||
+# CONFIG_B43_PCI_AUTOSELECT=y
|
||||
+# CONFIG_B43_PCICORE_AUTOSELECT=y
|
||||
+# CONFIG_B43_PCMCIA=y
|
||||
+# CONFIG_B43_PIO=y
|
||||
+# CONFIG_B43_LEDS=y
|
||||
+# CONFIG_B43_RFKILL=y
|
||||
# CONFIG_B43_DEBUG=y
|
||||
# CONFIG_B43_FORCE_PIO=y
|
||||
|
||||
-CONFIG_B43LEGACY=m
|
||||
-CONFIG_B43LEGACY_HWRNG=y
|
||||
-CONFIG_B43LEGACY_PCI_AUTOSELECT=y
|
||||
-CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
|
||||
-CONFIG_B43LEGACY_LEDS=y
|
||||
-CONFIG_B43LEGACY_RFKILL=y
|
||||
+# CONFIG_B43LEGACY=m
|
||||
+# CONFIG_B43LEGACY_HWRNG=y
|
||||
+# CONFIG_B43LEGACY_PCI_AUTOSELECT=y
|
||||
+# CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
|
||||
+# CONFIG_B43LEGACY_LEDS=y
|
||||
+# CONFIG_B43LEGACY_RFKILL=y
|
||||
# CONFIG_B43LEGACY_DEBUG=y
|
||||
CONFIG_B43LEGACY_DMA=y
|
||||
-CONFIG_B43LEGACY_PIO=y
|
||||
-CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
|
||||
-# CONFIG_B43LEGACY_DMA_MODE=y
|
||||
+# CONFIG_B43LEGACY_PIO=y
|
||||
+# CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
|
||||
+CONFIG_B43LEGACY_DMA_MODE=y
|
||||
# CONFIG_B43LEGACY_PIO_MODE=y
|
||||
|
||||
# The Intel ipws
|
||||
-CONFIG_LIBIPW=m
|
||||
+# CONFIG_LIBIPW=m
|
||||
# CONFIG_LIBIPW_DEBUG=y
|
||||
|
||||
|
||||
-CONFIG_IPW2100=m
|
||||
-CONFIG_IPW2100_MONITOR=y
|
||||
+# CONFIG_IPW2100=m
|
||||
+# CONFIG_IPW2100_MONITOR=y
|
||||
# CONFIG_IPW2100_DEBUG=y
|
||||
-CONFIG_IPW2200=m
|
||||
-CONFIG_IPW2200_MONITOR=y
|
||||
-CONFIG_IPW2200_RADIOTAP=y
|
||||
-CONFIG_IPW2200_PROMISCUOUS=y
|
||||
-CONFIG_IPW2200_QOS=y
|
||||
+# CONFIG_IPW2200=m
|
||||
+# CONFIG_IPW2200_MONITOR=y
|
||||
+# CONFIG_IPW2200_RADIOTAP=y
|
||||
+# CONFIG_IPW2200_PROMISCUOUS=y
|
||||
+# CONFIG_IPW2200_QOS=y
|
||||
# CONFIG_IPW2200_DEBUG=y
|
||||
# The above enables use a second interface prefixed 'rtap'.
|
||||
# Example usage:
|
||||
@@ -238,46 +238,46 @@ CONFIG_IPW2200_QOS=y
|
||||
#
|
||||
# % echo 1 > /sys/bus/pci/drivers/ipw2200/*/rtap_iface
|
||||
|
||||
-CONFIG_SSB_BLOCKIO=y
|
||||
-CONFIG_SSB_PCIHOST_POSSIBLE=y
|
||||
-CONFIG_SSB_PCIHOST=y
|
||||
-CONFIG_SSB_B43_PCI_BRIDGE=y
|
||||
-CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
|
||||
-CONFIG_SSB_PCMCIAHOST=y
|
||||
+# CONFIG_SSB_BLOCKIO=y
|
||||
+# CONFIG_SSB_PCIHOST_POSSIBLE=y
|
||||
+# CONFIG_SSB_PCIHOST=y
|
||||
+# CONFIG_SSB_B43_PCI_BRIDGE=y
|
||||
+# CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
|
||||
+# CONFIG_SSB_PCMCIAHOST=y
|
||||
# CONFIG_SSB_DEBUG=y
|
||||
-CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
|
||||
-CONFIG_SSB_DRIVER_PCICORE=y
|
||||
+# CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
|
||||
+# CONFIG_SSB_DRIVER_PCICORE=y
|
||||
|
||||
-CONFIG_P54_PCI=m
|
||||
+# CONFIG_P54_PCI=m
|
||||
|
||||
-CONFIG_B44=m
|
||||
-CONFIG_B44_PCI_AUTOSELECT=y
|
||||
-CONFIG_B44_PCICORE_AUTOSELECT=y
|
||||
-CONFIG_B44_PCI=y
|
||||
+# CONFIG_B44=m
|
||||
+# CONFIG_B44_PCI_AUTOSELECT=y
|
||||
+# CONFIG_B44_PCICORE_AUTOSELECT=y
|
||||
+# CONFIG_B44_PCI=y
|
||||
|
||||
-CONFIG_RTL8180=m
|
||||
+# CONFIG_RTL8180=m
|
||||
|
||||
-CONFIG_ADM8211=m
|
||||
-CONFIG_PCMCIA_ATMEL=m
|
||||
+# CONFIG_ADM8211=m
|
||||
+# CONFIG_PCMCIA_ATMEL=m
|
||||
|
||||
-CONFIG_RT2X00_LIB_PCI=m
|
||||
-CONFIG_RT2400PCI=m
|
||||
-CONFIG_RT2500PCI=m
|
||||
-CONFIG_RT2800PCI=m
|
||||
+# CONFIG_RT2X00_LIB_PCI=m
|
||||
+# CONFIG_RT2400PCI=m
|
||||
+# CONFIG_RT2500PCI=m
|
||||
+# CONFIG_RT2800PCI=m
|
||||
NEED_RT2X00=y
|
||||
|
||||
# Two rt2x00 drivers require firmware: rt61pci and rt73usb. They depend on
|
||||
# CRC to check the firmware. We check here first for the PCI
|
||||
# driver as we're in the PCI section.
|
||||
ifneq ($(CONFIG_CRC_ITU_T),)
|
||||
-CONFIG_RT61PCI=m
|
||||
+# CONFIG_RT61PCI=m
|
||||
NEED_RT2X00_FIRMWARE=y
|
||||
endif
|
||||
|
||||
-CONFIG_ATMEL=m
|
||||
-CONFIG_PCI_ATMEL=m
|
||||
+# CONFIG_ATMEL=m
|
||||
+# CONFIG_PCI_ATMEL=m
|
||||
|
||||
-CONFIG_MWL8K=m
|
||||
+# CONFIG_MWL8K=m
|
||||
|
||||
endif
|
||||
## end of PCI
|
||||
@@ -285,22 +285,22 @@ endif
|
||||
ifneq ($(CONFIG_PCMCIA),)
|
||||
|
||||
ifeq ($(shell test $(KERNEL_SUBLEVEL) -le 26 && echo yes),yes)
|
||||
-CONFIG_LIBERTAS=n
|
||||
-CONFIG_LIBERTAS_CS=n
|
||||
+# CONFIG_LIBERTAS=n
|
||||
+# CONFIG_LIBERTAS_CS=n
|
||||
else
|
||||
-CONFIG_LIBERTAS_CS=m
|
||||
-NEED_LIBERTAS=y
|
||||
+# CONFIG_LIBERTAS_CS=m
|
||||
+# NEED_LIBERTAS=y
|
||||
endif
|
||||
|
||||
endif
|
||||
## end of PCMCIA
|
||||
|
||||
# This is required for some cards
|
||||
-CONFIG_EEPROM_93CX6=m
|
||||
+# CONFIG_EEPROM_93CX6=m
|
||||
|
||||
# USB Drivers
|
||||
ifneq ($(CONFIG_USB),)
|
||||
-CONFIG_ZD1211RW=m
|
||||
+# CONFIG_ZD1211RW=m
|
||||
# CONFIG_ZD1211RW_DEBUG=y
|
||||
|
||||
# Sorry, rndis_wlan uses cancel_work_sync which is new and can't be done in compat...
|
||||
@@ -310,55 +310,55 @@ CONFIG_ZD1211RW=m
|
||||
# is only wireless RNDIS chip known to date.
|
||||
# Note: this depends on CONFIG_USB_NET_RNDIS_HOST and CONFIG_USB_NET_CDCETHER
|
||||
# it also requires new RNDIS_HOST and CDC_ETHER modules which we add
|
||||
-CONFIG_USB_NET_RNDIS_HOST=m
|
||||
-CONFIG_USB_NET_RNDIS_WLAN=m
|
||||
-CONFIG_USB_NET_CDCETHER=m
|
||||
+# CONFIG_USB_NET_RNDIS_HOST=m
|
||||
+# CONFIG_USB_NET_RNDIS_WLAN=m
|
||||
+# CONFIG_USB_NET_CDCETHER=m
|
||||
|
||||
|
||||
-CONFIG_P54_USB=m
|
||||
-CONFIG_RTL8187=m
|
||||
+# CONFIG_P54_USB=m
|
||||
+# CONFIG_RTL8187=m
|
||||
|
||||
-CONFIG_AT76C50X_USB=m
|
||||
+# CONFIG_AT76C50X_USB=m
|
||||
|
||||
ifeq ($(shell test $(KERNEL_SUBLEVEL) -ge 28 && echo yes),yes)
|
||||
-CONFIG_AR9170_USB=m
|
||||
-CONFIG_AR9170_LEDS=y
|
||||
+# CONFIG_AR9170_USB=m
|
||||
+# CONFIG_AR9170_LEDS=y
|
||||
endif
|
||||
|
||||
# RT2500USB does not require firmware
|
||||
-CONFIG_RT2500USB=m
|
||||
-CONFIG_RT2800USB=m
|
||||
-CONFIG_RT2X00_LIB_USB=m
|
||||
+# CONFIG_RT2500USB=m
|
||||
+# CONFIG_RT2800USB=m
|
||||
+# CONFIG_RT2X00_LIB_USB=m
|
||||
NEED_RT2X00=y
|
||||
# RT73USB requires firmware
|
||||
ifneq ($(CONFIG_CRC_ITU_T),)
|
||||
-CONFIG_RT73USB=m
|
||||
+# CONFIG_RT73USB=m
|
||||
NEED_RT2X00_FIRMWARE=y
|
||||
endif
|
||||
|
||||
ifeq ($(shell test $(KERNEL_SUBLEVEL) -le 26 && echo yes),yes)
|
||||
-CONFIG_LIBERTAS_THINFIRM_USB=n
|
||||
-CONFIG_LIBERTAS_USB=n
|
||||
-NEED_LIBERTAS=n
|
||||
+# CONFIG_LIBERTAS_THINFIRM_USB=n
|
||||
+# CONFIG_LIBERTAS_USB=n
|
||||
+# NEED_LIBERTAS=n
|
||||
else
|
||||
-CONFIG_LIBERTAS_THINFIRM_USB=m
|
||||
-CONFIG_LIBERTAS_USB=m
|
||||
-NEED_LIBERTAS=y
|
||||
+# CONFIG_LIBERTAS_THINFIRM_USB=m
|
||||
+# CONFIG_LIBERTAS_USB=m
|
||||
+# NEED_LIBERTAS=y
|
||||
endif
|
||||
|
||||
endif # end of USB driver list
|
||||
|
||||
ifneq ($(CONFIG_SPI_MASTER),)
|
||||
|
||||
-CONFIG_WL1251=m
|
||||
-CONFIG_P54_SPI=m
|
||||
+# CONFIG_WL1251=m
|
||||
+# CONFIG_P54_SPI=m
|
||||
|
||||
ifeq ($(shell test $(KERNEL_SUBLEVEL) -le 26 && echo yes),yes)
|
||||
-CONFIG_LIBERTAS_SPI=n
|
||||
-NEED_LIBERTAS=n
|
||||
+# CONFIG_LIBERTAS_SPI=n
|
||||
+# NEED_LIBERTAS=n
|
||||
else
|
||||
-CONFIG_LIBERTAS_SPI=m
|
||||
-NEED_LIBERTAS=y
|
||||
+# CONFIG_LIBERTAS_SPI=m
|
||||
+# NEED_LIBERTAS=y
|
||||
endif
|
||||
|
||||
endif # end of SPI driver list
|
||||
@@ -366,17 +366,17 @@ endif # end of SPI driver list
|
||||
ifneq ($(CONFIG_MMC),)
|
||||
|
||||
ifeq ($(shell test $(KERNEL_SUBLEVEL) -le 26 && echo yes),yes)
|
||||
-CONFIG_LIBERTAS_SDIO=n
|
||||
-NEED_LIBERTAS=n
|
||||
+# CONFIG_LIBERTAS_SDIO=n
|
||||
+# NEED_LIBERTAS=n
|
||||
else
|
||||
-CONFIG_LIBERTAS_SDIO=m
|
||||
-NEED_LIBERTAS=y
|
||||
+# CONFIG_LIBERTAS_SDIO=m
|
||||
+# NEED_LIBERTAS=y
|
||||
endif
|
||||
|
||||
# Activate iwmc3200wifi support only on kernel >= 2.6.29.
|
||||
# iwmc3200wifi uses new netdev_ops api no supported by old kernel.
|
||||
ifeq ($(shell test $(KERNEL_SUBLEVEL) -ge 29 && echo yes),yes)
|
||||
-CONFIG_IWM=m
|
||||
+# CONFIG_IWM=m
|
||||
# CONFIG_IWM_DEBUG=y
|
||||
endif
|
||||
|
||||
@@ -384,12 +384,12 @@ endif # end of SDIO driver list
|
||||
|
||||
# Common rt2x00 requirements
|
||||
ifeq ($(NEED_RT2X00),y)
|
||||
-CONFIG_RT2X00=m
|
||||
+# CONFIG_RT2X00=m
|
||||
CONFIG_RT2X00_LIB=m
|
||||
CONFIG_RT2X00_LIB_HT=y
|
||||
CONFIG_RT2X00_LIB_FIRMWARE=y
|
||||
CONFIG_RT2X00_LIB_CRYPTO=y
|
||||
-CONFIG_RT2X00_LIB_RFKILL=y
|
||||
+# CONFIG_RT2X00_LIB_RFKILL=y
|
||||
CONFIG_RT2X00_LIB_LEDS=y
|
||||
# CONFIG_RT2X00_LIB_DEBUGFS=y
|
||||
# CONFIG_RT2X00_DEBUG=y
|
||||
@@ -400,30 +400,30 @@ CONFIG_RT2X00_LIB_FIRMWARE=y
|
||||
endif
|
||||
|
||||
# p54
|
||||
-CONFIG_P54_COMMON=m
|
||||
+# CONFIG_P54_COMMON=m
|
||||
CONFIG_P54_LEDS=y
|
||||
|
||||
# Atheros
|
||||
-CONFIG_ATH_COMMON=m
|
||||
+# CONFIG_ATH_COMMON=m
|
||||
|
||||
-CONFIG_WL12XX=y
|
||||
-CONFIG_WL1251=m
|
||||
-CONFIG_WL1251_SPI=m
|
||||
-CONFIG_WL1251_SDIO=m
|
||||
-CONFIG_WL1271=m
|
||||
+# CONFIG_WL12XX=y
|
||||
+# CONFIG_WL1251=m
|
||||
+# CONFIG_WL1251_SPI=m
|
||||
+# CONFIG_WL1251_SDIO=m
|
||||
+# CONFIG_WL1271=m
|
||||
|
||||
# Sonics Silicon Backplane
|
||||
-CONFIG_SSB_POSSIBLE=y
|
||||
-CONFIG_SSB=m
|
||||
-CONFIG_SSB_SPROM=y
|
||||
+# CONFIG_SSB_POSSIBLE=y
|
||||
+# CONFIG_SSB=m
|
||||
+# CONFIG_SSB_SPROM=y
|
||||
# CONFIG_SSB_DEBUG=y
|
||||
|
||||
ifeq ($(shell test $(KERNEL_SUBLEVEL) -le 26 && echo yes),yes)
|
||||
-CONFIG_LIBERTAS=n
|
||||
+# CONFIG_LIBERTAS=n
|
||||
else
|
||||
ifeq ($(NEED_LIBERTAS),y)
|
||||
-CONFIG_LIBERTAS_THINFIRM=m
|
||||
-CONFIG_LIBERTAS=m
|
||||
+# CONFIG_LIBERTAS_THINFIRM=m
|
||||
+# CONFIG_LIBERTAS=m
|
||||
# CONFIG_LIBERTAS_DEBUG=y
|
||||
endif
|
||||
endif
|
||||
@@ -431,8 +431,8 @@ endif
|
||||
# We need the backported rfkill module on kernel < 2.6.31.
|
||||
# In more recent kernel versions use the in kernel rfkill module.
|
||||
ifeq ($(shell test $(KERNEL_SUBLEVEL) -le 30 && echo yes),yes)
|
||||
-CONFIG_RFKILL_BACKPORT=m
|
||||
-CONFIG_RFKILL_BACKPORT_LEDS=y
|
||||
-CONFIG_RFKILL_BACKPORT_INPUT=y
|
||||
+# CONFIG_RFKILL_BACKPORT=m
|
||||
+# CONFIG_RFKILL_BACKPORT_LEDS=y
|
||||
+# CONFIG_RFKILL_BACKPORT_INPUT=y
|
||||
endif
|
||||
|
|
@ -1,108 +0,0 @@
|
|||
Subject: [PATCH] cfg80211: fix deadlock
|
||||
From: Johannes Berg <johannes@sipsolutions.net>
|
||||
To: John Linville <linville@tuxdriver.com>
|
||||
Cc: linux-wireless <linux-wireless@vger.kernel.org>,
|
||||
Christian Lamparter <chunkeey@web.de>
|
||||
Content-Type: text/plain
|
||||
Date: Sun, 16 Aug 2009 13:32:38 +0200
|
||||
Message-Id: <1250422358.17522.0.camel@johannes.local>
|
||||
Mime-Version: 1.0
|
||||
X-Mailer: Evolution 2.27.90
|
||||
Content-Transfer-Encoding: 7bit
|
||||
Sender: linux-wireless-owner@vger.kernel.org
|
||||
Precedence: bulk
|
||||
List-ID: <linux-wireless.vger.kernel.org>
|
||||
X-Mailing-List: linux-wireless@vger.kernel.org
|
||||
|
||||
When removing an interface with nl80211, cfg80211 will
|
||||
deadlock in the netdev notifier because we're already
|
||||
holding rdev->mtx and try to acquire it again to verify
|
||||
the scan has been done.
|
||||
|
||||
This bug was introduced by my patch
|
||||
"cfg80211: check for and abort dangling scan requests".
|
||||
|
||||
To fix this, move the dangling scan request check into
|
||||
wiphy_unregister(). This will not be able to catch all
|
||||
cases right away, but if the scan problem happens with
|
||||
a manual ifdown or so it will be possible to remedy it
|
||||
by removing the module/device.
|
||||
|
||||
Additionally, add comments about the deadlock scenario.
|
||||
|
||||
Reported-by: Christian Lamparter <chunkeey@web.de>
|
||||
Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
|
||||
---
|
||||
net/wireless/core.c | 32 +++++++++++++++++++-------------
|
||||
1 file changed, 19 insertions(+), 13 deletions(-)
|
||||
|
||||
--- a/net/wireless/core.c
|
||||
+++ b/net/wireless/core.c
|
||||
@@ -586,9 +586,15 @@ void wiphy_unregister(struct wiphy *wiph
|
||||
* get to lock contention here if userspace issues a command
|
||||
* that identified the hardware by wiphy index.
|
||||
*/
|
||||
- mutex_lock(&rdev->mtx);
|
||||
- /* unlock again before freeing */
|
||||
- mutex_unlock(&rdev->mtx);
|
||||
+ cfg80211_lock_rdev(rdev);
|
||||
+
|
||||
+ if (WARN_ON(rdev->scan_req)) {
|
||||
+ rdev->scan_req->aborted = true;
|
||||
+ ___cfg80211_scan_done(rdev);
|
||||
+ }
|
||||
+
|
||||
+ cfg80211_unlock_rdev(rdev);
|
||||
+ flush_work(&rdev->scan_done_wk);
|
||||
|
||||
cfg80211_debugfs_rdev_del(rdev);
|
||||
|
||||
@@ -603,9 +609,7 @@ void wiphy_unregister(struct wiphy *wiph
|
||||
|
||||
mutex_unlock(&cfg80211_mutex);
|
||||
|
||||
- flush_work(&rdev->scan_done_wk);
|
||||
cancel_work_sync(&rdev->conn_work);
|
||||
- kfree(rdev->scan_req);
|
||||
flush_work(&rdev->event_work);
|
||||
}
|
||||
EXPORT_SYMBOL(wiphy_unregister);
|
||||
@@ -653,6 +657,11 @@ static int cfg80211_netdev_notifier_call
|
||||
|
||||
switch (state) {
|
||||
case NETDEV_REGISTER:
|
||||
+ /*
|
||||
+ * NB: cannot take rdev->mtx here because this may be
|
||||
+ * called within code protected by it when interfaces
|
||||
+ * are added with nl80211.
|
||||
+ */
|
||||
mutex_init(&wdev->mtx);
|
||||
INIT_LIST_HEAD(&wdev->event_list);
|
||||
spin_lock_init(&wdev->event_lock);
|
||||
@@ -730,13 +739,11 @@ static int cfg80211_netdev_notifier_call
|
||||
#endif
|
||||
break;
|
||||
case NETDEV_UNREGISTER:
|
||||
- cfg80211_lock_rdev(rdev);
|
||||
-
|
||||
- if (WARN_ON(rdev->scan_req && rdev->scan_req->dev == dev)) {
|
||||
- rdev->scan_req->aborted = true;
|
||||
- ___cfg80211_scan_done(rdev);
|
||||
- }
|
||||
-
|
||||
+ /*
|
||||
+ * NB: cannot take rdev->mtx here because this may be
|
||||
+ * called within code protected by it when interfaces
|
||||
+ * are removed with nl80211.
|
||||
+ */
|
||||
mutex_lock(&rdev->devlist_mtx);
|
||||
/*
|
||||
* It is possible to get NETDEV_UNREGISTER
|
||||
@@ -755,7 +762,6 @@ static int cfg80211_netdev_notifier_call
|
||||
#endif
|
||||
}
|
||||
mutex_unlock(&rdev->devlist_mtx);
|
||||
- cfg80211_unlock_rdev(rdev);
|
||||
break;
|
||||
case NETDEV_PRE_UP:
|
||||
if (!(wdev->wiphy->interface_modes & BIT(wdev->iftype)))
|
|
@ -1,6 +1,6 @@
|
|||
--- a/drivers/net/wireless/ath/ath9k/main.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/main.c
|
||||
@@ -1057,6 +1057,9 @@ static void ath_unregister_led(struct at
|
||||
@@ -1054,6 +1054,9 @@ static void ath_unregister_led(struct at
|
||||
|
||||
static void ath_deinit_leds(struct ath_softc *sc)
|
||||
{
|
||||
|
@ -10,13 +10,13 @@
|
|||
ath_unregister_led(&sc->assoc_led);
|
||||
sc->sc_flags &= ~SC_OP_LED_ASSOCIATED;
|
||||
ath_unregister_led(&sc->tx_led);
|
||||
@@ -1070,6 +1073,9 @@ static void ath_init_leds(struct ath_sof
|
||||
char *trigger;
|
||||
int ret;
|
||||
@@ -1072,6 +1075,9 @@ static void ath_init_leds(struct ath_sof
|
||||
else
|
||||
sc->sc_ah->led_pin = ATH_LED_PIN_DEF;
|
||||
|
||||
+ if (AR_SREV_9100(sc->sc_ah))
|
||||
+ return;
|
||||
+
|
||||
/* Configure gpio 1 for output */
|
||||
ath9k_hw_cfg_output(sc->sc_ah, ATH_LED_PIN,
|
||||
ath9k_hw_cfg_output(sc->sc_ah, sc->sc_ah->led_pin,
|
||||
AR_GPIO_OUTPUT_MUX_AS_OUTPUT);
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
--- a/config.mk
|
||||
+++ b/config.mk
|
||||
@@ -156,7 +156,7 @@ ifneq ($(CONFIG_PCI),)
|
||||
# CONFIG_ATH5K_DEBUG=y
|
||||
# CONFIG_ATH5K_RFKILL=y
|
||||
# CONFIG_ATH9K=m
|
||||
-# CONFIG_ATH9K_DEBUG=y
|
||||
+CONFIG_ATH9K_DEBUG=y
|
||||
|
||||
|
||||
# CONFIG_IWLWIFI=m
|
|
@ -1,6 +1,6 @@
|
|||
--- a/drivers/net/wireless/ath/ath9k/hw.c
|
||||
+++ b/drivers/net/wireless/ath/ath9k/hw.c
|
||||
@@ -521,8 +521,18 @@ static int ath9k_hw_init_macaddr(struct
|
||||
@@ -524,8 +524,18 @@ static int ath9k_hw_init_macaddr(struct
|
||||
ah->macaddr[2 * i] = eeval >> 8;
|
||||
ah->macaddr[2 * i + 1] = eeval & 0xff;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue