kernel: make Wireless Extensions (WEXT) support optional optional-wext
authorJonas Gorski <jonas.gorski@gmail.com>
Sat, 21 Oct 2017 16:23:14 +0000 (18:23 +0200)
committerJonas Gorski <jonas.gorski@gmail.com>
Thu, 26 Oct 2017 10:59:05 +0000 (12:59 +0200)
Currently we always have WEXT support enabled, but it is only needed for
a few legacy drivers and utilities (and, unfortunately the rtl8192cu 11n
staging driver).

Since this bloats both kernel (builtin and in cfg80211) and userspace
(wpa-supplicant) for most targets, allow disabling it for building
leaner kernels.

In a short test build with ALL_NONSHARED on ar71xx, the unpadded file
sizes were:

        y       n       delta
kernel 1364205 1361585 -2620
rootfs 2020282 2006686 -13596

Resulting in a total of 15.8 kB saved.

Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
config/Config-kernel.in
package/kernel/linux/modules/wireless.mk
package/kernel/mac80211/Makefile
target/linux/generic/config-3.18
target/linux/generic/config-4.4
target/linux/generic/config-4.9

index 3468899adc786e770f5519f1056985398db12d71..f48a79b30cfe31f93b51281ac9b0d6b31ab1e337 100644 (file)
@@ -765,3 +765,19 @@ config KERNEL_DEVKMEM
          Say Y here if you want to support the /dev/kmem device. The
          /dev/kmem device is rarely used, but can be used for certain
          kind of kernel debugging operations.
+
+config KERNEL_WIRELESS_EXT
+       bool "Enable Wireless Extensions support (deprecated)"
+       default y
+       help
+         Say Y here if you want to enable the deprecated Wireless Extensions
+         API for legacy 11b/11g drivers and utilities.
+
+if KERNEL_WIRELESS_EXT
+
+       config KERNEL_WEXT_SPY
+               def_bool y
+
+       config KERNEL_WEXT_PRIV
+               def_bool y
+endif
index 7b1c6635674b6b9fc1de39a4e173bccdc13b3462..139ce352aacd0ae6fd777875ed4da1e78c4295f9 100644 (file)
@@ -10,7 +10,7 @@ WIRELESS_MENU:=Wireless Drivers
 define KernelPackage/net-prism54
   SUBMENU:=$(WIRELESS_MENU)
   TITLE:=Intersil Prism54 support
-  DEPENDS:=@PCI_SUPPORT +@DRIVER_WEXT_SUPPORT +prism54-firmware
+  DEPENDS:=@PCI_SUPPORT +@DRIVER_WEXT_SUPPORT +prism54-firmware @KERNEL_WIRELESS_EXT
   KCONFIG:=CONFIG_PRISM54
   FILES:= \
        $(LINUX_DIR)/drivers/net/wireless/prism54/prism54.ko@lt4.5 \
@@ -28,7 +28,7 @@ $(eval $(call KernelPackage,net-prism54))
 define KernelPackage/net-rtl8192su
   SUBMENU:=$(WIRELESS_MENU)
   TITLE:=RTL8192SU support (staging)
-  DEPENDS:=@USB_SUPPORT +@DRIVER_WEXT_SUPPORT +kmod-usb-core +rtl8192su-firmware
+  DEPENDS:=@USB_SUPPORT +@DRIVER_WEXT_SUPPORT +kmod-usb-core +rtl8192su-firmware @KERNEL_WIRELESS_EXT
   KCONFIG:=\
        CONFIG_STAGING=y \
        CONFIG_R8712U
index 7e9b5ad61814aa3a7e7c38236c8741b21ac5352f..7cb8db32a15541e3d5cbdff839ded94763b83c9b 100644 (file)
@@ -73,6 +73,7 @@ PKG_CONFIG_DEPENDS:= \
        CONFIG_ATH9K_SUPPORT_PCOEM \
        CONFIG_ATH9K_TX99 \
        CONFIG_ATH_USER_REGD \
+       CONFIG_KERNEL_WIRELESS_EXT \
 
 include $(INCLUDE_DIR)/package.mk
 
@@ -150,7 +151,7 @@ endef
 define KernelPackage/airo
   $(call KernelPackage/mac80211/Default)
   TITLE:=Cisco Aironet driver
-  DEPENDS+=@PCI_SUPPORT +@DRIVER_WEXT_SUPPORT +kmod-cfg80211 @TARGET_x86
+  DEPENDS+=@PCI_SUPPORT +@DRIVER_WEXT_SUPPORT +kmod-cfg80211 @TARGET_x86 @KERNEL_WIRELESS_EXT
   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/cisco/airo.ko
   AUTOLOAD:=$(call AutoProbe,airo)
 endef
@@ -782,7 +783,7 @@ endef
 define KernelPackage/hermes
   $(call KernelPackage/mac80211/Default)
   TITLE:=Hermes 802.11b chipset support
-  DEPENDS:=@PCI_SUPPORT||PCMCIA_SUPPORT +kmod-cfg80211 +@DRIVER_WEXT_SUPPORT +kmod-crypto-michael-mic
+  DEPENDS:=@PCI_SUPPORT||PCMCIA_SUPPORT +kmod-cfg80211 +@DRIVER_WEXT_SUPPORT +kmod-crypto-michael-mic @KERNEL_WIRELESS_EXT
   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intersil/orinoco/orinoco.ko
   AUTOLOAD:=$(call AutoProbe,orinoco)
 endef
@@ -966,7 +967,7 @@ endef
 define KernelPackage/libipw
   $(call KernelPackage/mac80211/Default)
   TITLE:=libipw for ipw2100 and ipw2200
-  DEPENDS:=@PCI_SUPPORT +kmod-crypto-michael-mic +kmod-crypto-ecb +kmod-lib80211 +kmod-cfg80211 +@DRIVER_WEXT_SUPPORT @!BIG_ENDIAN @!LINUX_3_18
+  DEPENDS:=@PCI_SUPPORT +kmod-crypto-michael-mic +kmod-crypto-ecb +kmod-lib80211 +kmod-cfg80211 +@DRIVER_WEXT_SUPPORT @!BIG_ENDIAN @!LINUX_3_18 @KERNEL_WIRELESS_EXT
   FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/intel/ipw2x00/libipw.ko
   AUTOLOAD:=$(call AutoProbe,libipw)
 endef
@@ -1026,7 +1027,7 @@ endef
 
 define KernelPackage/libertas-usb
   $(call KernelPackage/mac80211/Default)
-  DEPENDS+= @USB_SUPPORT +kmod-cfg80211 +kmod-usb-core +kmod-lib80211 +@DRIVER_WEXT_SUPPORT +libertas-usb-firmware @!LINUX_3_18
+  DEPENDS+= @USB_SUPPORT +kmod-cfg80211 +kmod-usb-core +kmod-lib80211 +@DRIVER_WEXT_SUPPORT +libertas-usb-firmware @!LINUX_3_18 @KERNEL_WIRELESS_EXT
   TITLE:=Marvell 88W8015 Wireless Driver
   FILES:= \
        $(PKG_BUILD_DIR)/drivers/net/wireless/marvell/libertas/libertas.ko \
@@ -1036,7 +1037,7 @@ endef
 
 define KernelPackage/libertas-sdio
   $(call KernelPackage/mac80211/Default)
-  DEPENDS+= +kmod-cfg80211 +kmod-lib80211 +kmod-mmc +@DRIVER_WEXT_SUPPORT @!TARGET_uml +libertas-sdio-firmware @!LINUX_3_18
+  DEPENDS+= +kmod-cfg80211 +kmod-lib80211 +kmod-mmc +@DRIVER_WEXT_SUPPORT @!TARGET_uml +libertas-sdio-firmware @!LINUX_3_18 @KERNEL_WIRELESS_EXT
   TITLE:=Marvell 88W8686 Wireless Driver
   FILES:= \
        $(PKG_BUILD_DIR)/drivers/net/wireless/marvell/libertas/libertas.ko \
@@ -1047,7 +1048,7 @@ endef
 define KernelPackage/libertas-spi
   $(call KernelPackage/mac80211/Default)
   SUBMENU:=Wireless Drivers
-  DEPENDS+= +kmod-cfg80211 +kmod-lib80211 +@DRIVER_WEXT_SUPPORT @!TARGET_uml +libertas-spi-firmware @!LINUX_3_18
+  DEPENDS+= +kmod-cfg80211 +kmod-lib80211 +@DRIVER_WEXT_SUPPORT @!TARGET_uml +libertas-spi-firmware @!LINUX_3_18 @KERNEL_WIRELESS_EXT
   KCONFIG := \
        CONFIG_SPI=y \
        CONFIG_SPI_MASTER=y
@@ -1515,7 +1516,6 @@ config_package=$(if $(CONFIG_PACKAGE_kmod-$(1)),m)
 config-y:= \
        WLAN \
        NL80211_TESTMODE \
-       CFG80211_WEXT \
        CFG80211_INTERNAL_REGDB \
        CFG80211_CERTIFICATION_ONUS \
        MAC80211_RC_MINSTREL \
@@ -1538,6 +1538,8 @@ config-y:= \
        WLAN_VENDOR_TI \
        WLAN_VENDOR_ZYDAS \
 
+config-$(KERNEL_WIRELESS_EXT) += CFG80211_WEXT
+
 config-$(call config_package,cfg80211) += CFG80211
 
 config-$(call config_package,mac80211) += MAC80211
index 1e3f0b5abe8766ec70e5c25bbbd5a8a85121aad2..33d59e12d2651e423be7031024bfd8f91fced63c 100644 (file)
@@ -4579,10 +4579,10 @@ CONFIG_WATCHDOG=y
 # CONFIG_WATCHDOG_NOWAYOUT is not set
 # CONFIG_WD80x3 is not set
 # CONFIG_WDTPCI is not set
-CONFIG_WEXT_CORE=y
-CONFIG_WEXT_PRIV=y
-CONFIG_WEXT_PROC=y
-CONFIG_WEXT_SPY=y
+# CONFIG_WEXT_CORE is not set
+# CONFIG_WEXT_PRIV is not set
+# CONFIG_WEXT_PROC is not set
+# CONFIG_WEXT_SPY is not set
 CONFIG_WILINK_PLATFORM_DATA=y
 # CONFIG_WIMAX is not set
 # CONFIG_WIMAX_GDM72XX is not set
index 1c0af9597fd58d2afe26aa2047bad7528b7f7b18..b02d38a28ec31865b36c178f023ce9ed7be435de 100644 (file)
@@ -4781,10 +4781,10 @@ CONFIG_WATCHDOG=y
 # CONFIG_WATCHDOG_NOWAYOUT is not set
 # CONFIG_WD80x3 is not set
 # CONFIG_WDTPCI is not set
-CONFIG_WEXT_CORE=y
-CONFIG_WEXT_PRIV=y
-CONFIG_WEXT_PROC=y
-CONFIG_WEXT_SPY=y
+# CONFIG_WEXT_CORE is not set
+# CONFIG_WEXT_PRIV is not set
+# CONFIG_WEXT_PROC is not set
+# CONFIG_WEXT_SPY is not set
 CONFIG_WILINK_PLATFORM_DATA=y
 # CONFIG_WIMAX is not set
 # CONFIG_WIMAX_GDM72XX is not set
index 4d2c911b7cdd776fd3ec98b5b676342b1b572168..b25880fc15b96fb39f93365bac6f447e48e05d48 100644 (file)
@@ -5212,10 +5212,10 @@ CONFIG_WATCHDOG=y
 # CONFIG_WD80x3 is not set
 # CONFIG_WDAT_WDT is not set
 # CONFIG_WDTPCI is not set
-CONFIG_WEXT_CORE=y
-CONFIG_WEXT_PRIV=y
-CONFIG_WEXT_PROC=y
-CONFIG_WEXT_SPY=y
+# CONFIG_WEXT_CORE is not set
+# CONFIG_WEXT_PRIV is not set
+# CONFIG_WEXT_PROC is not set
+# CONFIG_WEXT_SPY is not set
 CONFIG_WILINK_PLATFORM_DATA=y
 # CONFIG_WIMAX is not set
 # CONFIG_WIMAX_GDM72XX is not set