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:
Felix Fietkau 2009-08-20 14:59:55 +00:00
parent 59d130d867
commit 9b11d6fa98
6 changed files with 63 additions and 555 deletions

View file

@ -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=:

View file

@ -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

View file

@ -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)))

View file

@ -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);

View file

@ -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

View file

@ -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;
}