mbox series

[00/10] Remove obsolete and orphaned wifi drivers

Message ID 20231023131953.2876682-1-arnd@kernel.org (mailing list archive)
Headers show
Series Remove obsolete and orphaned wifi drivers | expand

Message

Arnd Bergmann Oct. 23, 2023, 1:19 p.m. UTC
From: Arnd Bergmann <arnd@arndb.de>

As discussed previously, a lot of the older wifi drivers are likely
entirely unused, Though we can't know for sure.

As suggested by both Greg and Jakub, let's remove the ones that look
are most likely to have no users left and also get in the way of the
wext cleanup. If anyone is still using any of these, we can revert the
driver removal individually.

I would suggest merging these for net-next after 6.7-rc1 is out, to give
them the maximum amount of time for users to speak up before a release
comes out.

This kills off all pcmcia wifi drivers, and all wext users in
drivers/net/wireless, but not the ps3-gelic-wireless driver in
drivers/net/ethernet, or the staging drivers.

In staging, rtl8192u was already removed in the meantime, while rtl8712
and rtl8192e are apparently still used.  I have not been able to find
out whether ks7010 is still in use.

	Arnd

Link: https://lore.kernel.org/lkml/20231011080955.1beeb010@kernel.org/


Arnd Bergmann (10):
  wifi: libertas: drop 16-bit PCMCIA support
  wifi: atmel: remove wext style at76c50x drivers
  wifi: remove orphaned cisco/aironet driver
  wifi: remove obsolete hostap driver
  wifi: remove orphaned zd1201 driver
  wifi: remove orphaned orinoco driver
  wifi: remove orphaned ray_cs driver
  wifi: remove orphaned wl3501 driver
  wifi: remove orphaned rndis_wlan driver
  [RFC] wifi: remove ipw2100/ipw2200 drivers

 .../networking/device_drivers/wifi/index.rst  |    20 -
 .../device_drivers/wifi/intel/ipw2100.rst     |   323 -
 .../device_drivers/wifi/intel/ipw2200.rst     |   526 -
 .../networking/device_drivers/wifi/ray_cs.rst |   165 -
 MAINTAINERS                                   |    49 -
 drivers/net/wireless/Kconfig                  |     3 -
 drivers/net/wireless/Makefile                 |     2 -
 drivers/net/wireless/atmel/Kconfig            |    35 -
 drivers/net/wireless/atmel/Makefile           |     4 -
 drivers/net/wireless/atmel/atmel.c            |  4452 ------
 drivers/net/wireless/atmel/atmel.h            |    31 -
 drivers/net/wireless/atmel/atmel_cs.c         |   292 -
 drivers/net/wireless/atmel/atmel_pci.c        |    65 -
 drivers/net/wireless/cisco/Kconfig            |    59 -
 drivers/net/wireless/cisco/Makefile           |     3 -
 drivers/net/wireless/cisco/airo.c             |  8288 -----------
 drivers/net/wireless/cisco/airo.h             |    10 -
 drivers/net/wireless/cisco/airo_cs.c          |   218 -
 drivers/net/wireless/intel/Kconfig            |     1 -
 drivers/net/wireless/intel/Makefile           |     3 -
 drivers/net/wireless/intel/ipw2x00/Kconfig    |   195 -
 drivers/net/wireless/intel/ipw2x00/Makefile   |    15 -
 drivers/net/wireless/intel/ipw2x00/ipw.h      |    20 -
 drivers/net/wireless/intel/ipw2x00/ipw2100.c  |  8587 -----------
 drivers/net/wireless/intel/ipw2x00/ipw2100.h  |  1142 --
 drivers/net/wireless/intel/ipw2x00/ipw2200.c  | 11965 ----------------
 drivers/net/wireless/intel/ipw2x00/ipw2200.h  |  1984 ---
 drivers/net/wireless/intel/ipw2x00/libipw.h   |  1001 --
 .../net/wireless/intel/ipw2x00/libipw_geo.c   |   179 -
 .../wireless/intel/ipw2x00/libipw_module.c    |   297 -
 .../net/wireless/intel/ipw2x00/libipw_rx.c    |  1737 ---
 .../net/wireless/intel/ipw2x00/libipw_tx.c    |   519 -
 .../net/wireless/intel/ipw2x00/libipw_wx.c    |   726 -
 drivers/net/wireless/intersil/Kconfig         |     2 -
 drivers/net/wireless/intersil/Makefile        |     2 -
 drivers/net/wireless/intersil/hostap/Kconfig  |    95 -
 drivers/net/wireless/intersil/hostap/Makefile |     8 -
 drivers/net/wireless/intersil/hostap/hostap.h |    98 -
 .../wireless/intersil/hostap/hostap_80211.h   |    97 -
 .../intersil/hostap/hostap_80211_rx.c         |  1116 --
 .../intersil/hostap/hostap_80211_tx.c         |   554 -
 .../net/wireless/intersil/hostap/hostap_ap.c  |  3277 -----
 .../net/wireless/intersil/hostap/hostap_ap.h  |   264 -
 .../wireless/intersil/hostap/hostap_common.h  |   420 -
 .../wireless/intersil/hostap/hostap_config.h  |    49 -
 .../net/wireless/intersil/hostap/hostap_cs.c  |   710 -
 .../intersil/hostap/hostap_download.c         |   810 --
 .../net/wireless/intersil/hostap/hostap_hw.c  |  3387 -----
 .../wireless/intersil/hostap/hostap_info.c    |   509 -
 .../wireless/intersil/hostap/hostap_ioctl.c   |  3847 -----
 .../wireless/intersil/hostap/hostap_main.c    |  1123 --
 .../net/wireless/intersil/hostap/hostap_pci.c |   445 -
 .../net/wireless/intersil/hostap/hostap_plx.c |   617 -
 .../wireless/intersil/hostap/hostap_proc.c    |   411 -
 .../wireless/intersil/hostap/hostap_wlan.h    |  1051 --
 drivers/net/wireless/intersil/orinoco/Kconfig |   143 -
 .../net/wireless/intersil/orinoco/Makefile    |    15 -
 .../net/wireless/intersil/orinoco/airport.c   |   268 -
 drivers/net/wireless/intersil/orinoco/cfg.c   |   291 -
 drivers/net/wireless/intersil/orinoco/cfg.h   |    15 -
 drivers/net/wireless/intersil/orinoco/fw.c    |   387 -
 drivers/net/wireless/intersil/orinoco/fw.h    |    21 -
 .../net/wireless/intersil/orinoco/hermes.c    |   778 -
 .../net/wireless/intersil/orinoco/hermes.h    |   534 -
 .../wireless/intersil/orinoco/hermes_dld.c    |   477 -
 .../wireless/intersil/orinoco/hermes_dld.h    |    52 -
 .../wireless/intersil/orinoco/hermes_rid.h    |   165 -
 drivers/net/wireless/intersil/orinoco/hw.c    |  1362 --
 drivers/net/wireless/intersil/orinoco/hw.h    |    60 -
 drivers/net/wireless/intersil/orinoco/main.c  |  2414 ----
 drivers/net/wireless/intersil/orinoco/main.h  |    50 -
 drivers/net/wireless/intersil/orinoco/mic.c   |    89 -
 drivers/net/wireless/intersil/orinoco/mic.h   |    23 -
 .../net/wireless/intersil/orinoco/orinoco.h   |   251 -
 .../wireless/intersil/orinoco/orinoco_cs.c    |   350 -
 .../intersil/orinoco/orinoco_nortel.c         |   314 -
 .../wireless/intersil/orinoco/orinoco_pci.c   |   257 -
 .../wireless/intersil/orinoco/orinoco_pci.h   |    54 -
 .../wireless/intersil/orinoco/orinoco_plx.c   |   362 -
 .../wireless/intersil/orinoco/orinoco_tmd.c   |   237 -
 .../wireless/intersil/orinoco/orinoco_usb.c   |  1787 ---
 drivers/net/wireless/intersil/orinoco/scan.c  |   259 -
 drivers/net/wireless/intersil/orinoco/scan.h  |    21 -
 .../wireless/intersil/orinoco/spectrum_cs.c   |   328 -
 drivers/net/wireless/intersil/orinoco/wext.c  |  1428 --
 drivers/net/wireless/intersil/orinoco/wext.h  |    13 -
 drivers/net/wireless/legacy/Kconfig           |    55 -
 drivers/net/wireless/legacy/Makefile          |     6 -
 drivers/net/wireless/legacy/ray_cs.c          |  2824 ----
 drivers/net/wireless/legacy/ray_cs.h          |    74 -
 drivers/net/wireless/legacy/rayctl.h          |   734 -
 drivers/net/wireless/legacy/rndis_wlan.c      |  3760 -----
 drivers/net/wireless/legacy/wl3501.h          |   615 -
 drivers/net/wireless/legacy/wl3501_cs.c       |  2036 ---
 drivers/net/wireless/marvell/libertas/Kconfig |     7 +-
 .../net/wireless/marvell/libertas/Makefile    |     1 -
 drivers/net/wireless/marvell/libertas/if_cs.c |   957 --
 drivers/net/wireless/zydas/Kconfig            |    19 -
 drivers/net/wireless/zydas/Makefile           |     2 -
 drivers/net/wireless/zydas/zd1201.c           |  1909 ---
 drivers/net/wireless/zydas/zd1201.h           |   144 -
 101 files changed, 1 insertion(+), 87755 deletions(-)
 delete mode 100644 Documentation/networking/device_drivers/wifi/index.rst
 delete mode 100644 Documentation/networking/device_drivers/wifi/intel/ipw2100.rst
 delete mode 100644 Documentation/networking/device_drivers/wifi/intel/ipw2200.rst
 delete mode 100644 Documentation/networking/device_drivers/wifi/ray_cs.rst
 delete mode 100644 drivers/net/wireless/atmel/atmel.c
 delete mode 100644 drivers/net/wireless/atmel/atmel.h
 delete mode 100644 drivers/net/wireless/atmel/atmel_cs.c
 delete mode 100644 drivers/net/wireless/atmel/atmel_pci.c
 delete mode 100644 drivers/net/wireless/cisco/Kconfig
 delete mode 100644 drivers/net/wireless/cisco/Makefile
 delete mode 100644 drivers/net/wireless/cisco/airo.c
 delete mode 100644 drivers/net/wireless/cisco/airo.h
 delete mode 100644 drivers/net/wireless/cisco/airo_cs.c
 delete mode 100644 drivers/net/wireless/intel/ipw2x00/Kconfig
 delete mode 100644 drivers/net/wireless/intel/ipw2x00/Makefile
 delete mode 100644 drivers/net/wireless/intel/ipw2x00/ipw.h
 delete mode 100644 drivers/net/wireless/intel/ipw2x00/ipw2100.c
 delete mode 100644 drivers/net/wireless/intel/ipw2x00/ipw2100.h
 delete mode 100644 drivers/net/wireless/intel/ipw2x00/ipw2200.c
 delete mode 100644 drivers/net/wireless/intel/ipw2x00/ipw2200.h
 delete mode 100644 drivers/net/wireless/intel/ipw2x00/libipw.h
 delete mode 100644 drivers/net/wireless/intel/ipw2x00/libipw_geo.c
 delete mode 100644 drivers/net/wireless/intel/ipw2x00/libipw_module.c
 delete mode 100644 drivers/net/wireless/intel/ipw2x00/libipw_rx.c
 delete mode 100644 drivers/net/wireless/intel/ipw2x00/libipw_tx.c
 delete mode 100644 drivers/net/wireless/intel/ipw2x00/libipw_wx.c
 delete mode 100644 drivers/net/wireless/intersil/hostap/Kconfig
 delete mode 100644 drivers/net/wireless/intersil/hostap/Makefile
 delete mode 100644 drivers/net/wireless/intersil/hostap/hostap.h
 delete mode 100644 drivers/net/wireless/intersil/hostap/hostap_80211.h
 delete mode 100644 drivers/net/wireless/intersil/hostap/hostap_80211_rx.c
 delete mode 100644 drivers/net/wireless/intersil/hostap/hostap_80211_tx.c
 delete mode 100644 drivers/net/wireless/intersil/hostap/hostap_ap.c
 delete mode 100644 drivers/net/wireless/intersil/hostap/hostap_ap.h
 delete mode 100644 drivers/net/wireless/intersil/hostap/hostap_common.h
 delete mode 100644 drivers/net/wireless/intersil/hostap/hostap_config.h
 delete mode 100644 drivers/net/wireless/intersil/hostap/hostap_cs.c
 delete mode 100644 drivers/net/wireless/intersil/hostap/hostap_download.c
 delete mode 100644 drivers/net/wireless/intersil/hostap/hostap_hw.c
 delete mode 100644 drivers/net/wireless/intersil/hostap/hostap_info.c
 delete mode 100644 drivers/net/wireless/intersil/hostap/hostap_ioctl.c
 delete mode 100644 drivers/net/wireless/intersil/hostap/hostap_main.c
 delete mode 100644 drivers/net/wireless/intersil/hostap/hostap_pci.c
 delete mode 100644 drivers/net/wireless/intersil/hostap/hostap_plx.c
 delete mode 100644 drivers/net/wireless/intersil/hostap/hostap_proc.c
 delete mode 100644 drivers/net/wireless/intersil/hostap/hostap_wlan.h
 delete mode 100644 drivers/net/wireless/intersil/orinoco/Kconfig
 delete mode 100644 drivers/net/wireless/intersil/orinoco/Makefile
 delete mode 100644 drivers/net/wireless/intersil/orinoco/airport.c
 delete mode 100644 drivers/net/wireless/intersil/orinoco/cfg.c
 delete mode 100644 drivers/net/wireless/intersil/orinoco/cfg.h
 delete mode 100644 drivers/net/wireless/intersil/orinoco/fw.c
 delete mode 100644 drivers/net/wireless/intersil/orinoco/fw.h
 delete mode 100644 drivers/net/wireless/intersil/orinoco/hermes.c
 delete mode 100644 drivers/net/wireless/intersil/orinoco/hermes.h
 delete mode 100644 drivers/net/wireless/intersil/orinoco/hermes_dld.c
 delete mode 100644 drivers/net/wireless/intersil/orinoco/hermes_dld.h
 delete mode 100644 drivers/net/wireless/intersil/orinoco/hermes_rid.h
 delete mode 100644 drivers/net/wireless/intersil/orinoco/hw.c
 delete mode 100644 drivers/net/wireless/intersil/orinoco/hw.h
 delete mode 100644 drivers/net/wireless/intersil/orinoco/main.c
 delete mode 100644 drivers/net/wireless/intersil/orinoco/main.h
 delete mode 100644 drivers/net/wireless/intersil/orinoco/mic.c
 delete mode 100644 drivers/net/wireless/intersil/orinoco/mic.h
 delete mode 100644 drivers/net/wireless/intersil/orinoco/orinoco.h
 delete mode 100644 drivers/net/wireless/intersil/orinoco/orinoco_cs.c
 delete mode 100644 drivers/net/wireless/intersil/orinoco/orinoco_nortel.c
 delete mode 100644 drivers/net/wireless/intersil/orinoco/orinoco_pci.c
 delete mode 100644 drivers/net/wireless/intersil/orinoco/orinoco_pci.h
 delete mode 100644 drivers/net/wireless/intersil/orinoco/orinoco_plx.c
 delete mode 100644 drivers/net/wireless/intersil/orinoco/orinoco_tmd.c
 delete mode 100644 drivers/net/wireless/intersil/orinoco/orinoco_usb.c
 delete mode 100644 drivers/net/wireless/intersil/orinoco/scan.c
 delete mode 100644 drivers/net/wireless/intersil/orinoco/scan.h
 delete mode 100644 drivers/net/wireless/intersil/orinoco/spectrum_cs.c
 delete mode 100644 drivers/net/wireless/intersil/orinoco/wext.c
 delete mode 100644 drivers/net/wireless/intersil/orinoco/wext.h
 delete mode 100644 drivers/net/wireless/legacy/Kconfig
 delete mode 100644 drivers/net/wireless/legacy/Makefile
 delete mode 100644 drivers/net/wireless/legacy/ray_cs.c
 delete mode 100644 drivers/net/wireless/legacy/ray_cs.h
 delete mode 100644 drivers/net/wireless/legacy/rayctl.h
 delete mode 100644 drivers/net/wireless/legacy/rndis_wlan.c
 delete mode 100644 drivers/net/wireless/legacy/wl3501.h
 delete mode 100644 drivers/net/wireless/legacy/wl3501_cs.c
 delete mode 100644 drivers/net/wireless/marvell/libertas/if_cs.c
 delete mode 100644 drivers/net/wireless/zydas/zd1201.c
 delete mode 100644 drivers/net/wireless/zydas/zd1201.h

Comments

Kalle Valo Oct. 23, 2023, 1:45 p.m. UTC | #1
Arnd Bergmann <arnd@kernel.org> writes:

> From: Arnd Bergmann <arnd@arndb.de>
>
> As discussed previously, a lot of the older wifi drivers are likely
> entirely unused, Though we can't know for sure.
>
> As suggested by both Greg and Jakub, let's remove the ones that look
> are most likely to have no users left and also get in the way of the
> wext cleanup. If anyone is still using any of these, we can revert the
> driver removal individually.
>
> I would suggest merging these for net-next after 6.7-rc1 is out

Why net-next? I want to take these to wireless-next to avoid any
conflicts with other wireless patches.

We could take these to wireless-next after we submit the last new
features (-next) pull request to v6.7, so most likely already next week.
So if anyone has any problems with these speak up now.
Arnd Bergmann Oct. 23, 2023, 2:10 p.m. UTC | #2
On Mon, Oct 23, 2023, at 15:45, Kalle Valo wrote:
> Arnd Bergmann <arnd@kernel.org> writes:
>
>> From: Arnd Bergmann <arnd@arndb.de>
>>
>> As discussed previously, a lot of the older wifi drivers are likely
>> entirely unused, Though we can't know for sure.
>>
>> As suggested by both Greg and Jakub, let's remove the ones that look
>> are most likely to have no users left and also get in the way of the
>> wext cleanup. If anyone is still using any of these, we can revert the
>> driver removal individually.
>>
>> I would suggest merging these for net-next after 6.7-rc1 is out
>
> Why net-next? I want to take these to wireless-next to avoid any
> conflicts with other wireless patches.

My mistake, I actually rebased them on top of wireless-next before
sending out the patches, I just forgot update the text I had
already written a week earlier.

> We could take these to wireless-next after we submit the last new
> features (-next) pull request to v6.7, so most likely already next week.
> So if anyone has any problems with these speak up now.

Sounds good to me, thanks!

    Arnd
Kalle Valo Oct. 23, 2023, 2:36 p.m. UTC | #3
Arnd Bergmann <arnd@kernel.org> writes:

> From: Arnd Bergmann <arnd@arndb.de>
>
> HostAP is an ISA/PCMCIA style 802.11b driver supporting only
> wireless extensions, and some custom ioctls (already removed).
> Some devices include a legacy PCI bridge but no DMA.
>
> The driver was marked obsolete in 2016 and is highly unlikely
> to still have any users.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

This patch didn't make it to the list, I guess it was too big. But it's
available from the pending branch:

https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next.git/commit/?h=pending&id=39ed2ce3bdc43bc9dbed65608d98828f21b9f33d
Kalle Valo Oct. 23, 2023, 2:39 p.m. UTC | #4
Arnd Bergmann <arnd@kernel.org> writes:

> From: Arnd Bergmann <arnd@arndb.de>
>
> These two drivers were used for the earliest "Centrino" branded Intel
> laptops during the late 32-bit Pentium-M era, roughly 2003 to 2005, which
> probably makes it the most modern platform that still uses the wireless
> extension interface instead of cfg80211. Unlike the other drivers that
> are suggested for removal, this one is still officially maintained.
>
> According to Johannes Berg, there was an effort to finish the move away
> from wext in the past, but the last evidence of this that I could find
> is from commit a3caa99e6c68f ("libipw: initiate cfg80211 API conversion
> (v2)") in 2009.
>
> Link: https://lore.kernel.org/all/87fs2fgals.fsf@kernel.org/
> Cc: Stanislav Yakovlev <stas.yakovlev@gmail.com>
> Cc: Linux Wireless <ilw@linux.intel.com>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
> I'm not convinced this should be in the same set of drivers as the
> rest, since this is clearly less obsolete than the other hardware
> that I would remove support for.

I am inclined to remove this one as well, it's just so old.

This patch didn't make it to the list, I guess it was too big. But it's
available from the pending branch:

https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next.git/commit/?h=pending&id=81ba6b51c3a640b277274701407bbf557f12edac
Kalle Valo Oct. 23, 2023, 2:41 p.m. UTC | #5
"Arnd Bergmann" <arnd@arndb.de> writes:

> On Mon, Oct 23, 2023, at 15:45, Kalle Valo wrote:
>> Arnd Bergmann <arnd@kernel.org> writes:
>>
>>> From: Arnd Bergmann <arnd@arndb.de>
>>>
>>> As discussed previously, a lot of the older wifi drivers are likely
>>> entirely unused, Though we can't know for sure.
>>>
>>> As suggested by both Greg and Jakub, let's remove the ones that look
>>> are most likely to have no users left and also get in the way of the
>>> wext cleanup. If anyone is still using any of these, we can revert the
>>> driver removal individually.
>>>
>>> I would suggest merging these for net-next after 6.7-rc1 is out
>>
>> Why net-next? I want to take these to wireless-next to avoid any
>> conflicts with other wireless patches.
>
> My mistake, I actually rebased them on top of wireless-next before
> sending out the patches, I just forgot update the text I had
> already written a week earlier.

Ah, good that we are on the same page then :)

>> We could take these to wireless-next after we submit the last new
>> features (-next) pull request to v6.7, so most likely already next week.
>> So if anyone has any problems with these speak up now.
>
> Sounds good to me, thanks!

Thanks for the patches! I applied them to our pending branch for some
build testing, there were few conflicts I guess due to recent cleanup
patches but obviously easy to fix :)

https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next.git/log/?h=pending
Stefan Lippers-Hollmann Oct. 23, 2023, 11:43 p.m. UTC | #6
Hi

On 2023-10-23, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
>
> These two drivers were used for the earliest "Centrino" branded Intel
> laptops during the late 32-bit Pentium-M era, roughly 2003 to 2005, which
> probably makes it the most modern platform that still uses the wireless
> extension interface instead of cfg80211. Unlike the other drivers that
> are suggested for removal, this one is still officially maintained.
>
> According to Johannes Berg, there was an effort to finish the move away
> from wext in the past, but the last evidence of this that I could find
> is from commit a3caa99e6c68f ("libipw: initiate cfg80211 API conversion
> (v2)") in 2009.
>
> Link: https://lore.kernel.org/all/87fs2fgals.fsf@kernel.org/
> Cc: Stanislav Yakovlev <stas.yakovlev@gmail.com>
> Cc: Linux Wireless <ilw@linux.intel.com>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
> I'm not convinced this should be in the same set of drivers as the
> rest, since this is clearly less obsolete than the other hardware
> that I would remove support for.

These have indeed been very common back in the day, I'm still using
a 2003-vintage 1.5 GHz Pentium-M 'Banias' Acer Travelmate 292LMi
notebook using ipw2200 (and have two spare ipw2200 mini-PCI cards).
Works still fine using v6.5.8-rc1 and WPA2PSK/ CCMP (sadly it does
not do WPA3) and I do use it semi-regularly (running the latest
stable- or stable-rc kernel of the day).

While it would be nice to replace it with an ath5k based card (to
get WPA3 support), the card isn't that easy to reach in the notebook,
so it would be sad to see this go.

Host/Kernel/OS  "acer-292lmi" running Linux 6.5.8-rc1 i686 [ Debian GNU/Linux trixie/sid ]
System          Acer TravelMate 290
CPU Info        Intel Pentium M 1024 KB cache flags( sse2 ) clocked at [ 1400.000 MHz ]
Videocard       Advanced Micro Devices, [AMD/ATI] RV350/M10 / RV360/M11 [Mobility Radeon 9600 (PRO) / 9700]  X.Org 1.23.2.1  [ 1024x768@60.00hz ]
Network cards   Realtek RTL-8100/8101L/8139 PCI Fast Ethernet Adapter, at port: a000
                Intel PRO/Wireless 2200BG [Calexico2] Network Connection
Processes 131 | Uptime 3:16 | Memory 125.2/493.1MB | HDD IC25N060ATMR04-0 Size 60GB (67%used) | GLX Renderer llvmpipe (LLVM 16.0.6, 128 bits) | GLX Version Yes

Yes, this is an old and slow system, but it's there, functional and
I rarely need a mobile notebook (my desktops are more current and
64 bit capable).

02:02.0 Network controller [0280]: Intel Corporation PRO/Wireless 2200BG [Calexico2] Network Connection [8086:4220] (rev 05)
        Subsystem: Intel Corporation WM3B2200BG Mini-PCI Card [8086:2701]
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 128 (750ns min, 6000ns max)
        Interrupt: pin A routed to IRQ 10
        Region 0: Memory at d0000000 (32-bit, non-prefetchable) [size=4K]
        Capabilities: [dc] Power Management version 2
                Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
                Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=1 PME-
        Kernel driver in use: ipw2200
        Kernel modules: ipw2200

[    0.000000] Linux version 6.5.8-rc1 (s.l-h@gmx.de) (gcc-13 (Debian 13.2.0-5) 13.2.0, GNU ld (GNU Binutils for Debian) 2.41) #1 SMP PREEMPT_DYNAMIC 6.5-13 (2023-10-17)
...
[   23.886128] lib80211: common routines for IEEE802.11 drivers
[   23.886133] lib80211_crypt: registered algorithm 'NULL'
[   24.051575] libipw: 802.11 data/management/control stack, git-1.1.13
[   24.051586] libipw: Copyright (C) 2004-2005 Intel Corporation <jketreno@linux.intel.com>
...
[   24.735203] ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.2.2kmprq
[   24.735221] ipw2200: Copyright(c) 2003-2006 Intel Corporation
[   24.735825] ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection
...
[   25.007359] ipw2200: Detected geography ZZE (13 802.11bg channels, 19 802.11a channels)
...
[   27.027578] ipw2200 0000:02:02.0 wlp2s2: renamed from eth0
...
[   29.571384] NET: Registered PF_PACKET protocol family
...
[   42.603676] warning: `wpa_supplicant' uses wireless extensions which will stop working for Wi-Fi 7 hardware; use nl80211
[   44.196736] lib80211_crypt: registered algorithm 'CCMP'

# iwconfig wlp2s2
wlp2s2    IEEE 802.11  ESSID:"xxx"
          Mode:Managed  Frequency:2.412 GHz  Access Point: xx:xx:xx:xx:xx:xx
          Bit Rate:54 Mb/s   Tx-Power=20 dBm   Sensitivity=8/0
          Retry limit:7   RTS thr:off   Fragment thr:off
          Encryption key:xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx   Security mode:open
          Power Management:off
          Link Quality=0/100  Signal level=-28 dBm  Noise level=-89 dBm
          Rx invalid nwid:0  Rx invalid crypt:6  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:100

# wpa_cli status
Selected interface 'wlp2s2'
bssid=xx:xx:xx:xx:xx:xx
freq=0
ssid=xxx
id=1
id_str=xxx
mode=station
pairwise_cipher=CCMP
group_cipher=CCMP
key_mgmt=WPA2-PSK
wpa_state=COMPLETED
ip_address=172.22.2.1
address=xx:xx:xx:xx:xx:xx
uuid=xxx

(performance against a wifi6 (ipq8071a AP isn't that great, but it works)

$ iperf3 -c 172.21.4.1
Connecting to host 172.21.4.1, port 5201
[  5] local 172.22.2.1 port 45288 connected to 172.21.4.1 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  1.97 MBytes  16.6 Mbits/sec    0    110 KBytes
[  5]   1.00-2.00   sec  1.74 MBytes  14.6 Mbits/sec    0    163 KBytes
[  5]   2.00-3.00   sec  1.68 MBytes  14.1 Mbits/sec    0    163 KBytes
[  5]   3.00-4.00   sec  1.68 MBytes  14.1 Mbits/sec    0    163 KBytes
[  5]   4.00-5.00   sec  1.86 MBytes  15.6 Mbits/sec    0    163 KBytes
[  5]   5.00-6.00   sec  1.49 MBytes  12.5 Mbits/sec    0    163 KBytes
[  5]   6.00-7.00   sec  1.86 MBytes  15.6 Mbits/sec    0    163 KBytes
[  5]   7.00-8.00   sec  1.93 MBytes  16.2 Mbits/sec    0    228 KBytes
[  5]   8.00-9.00   sec  1.49 MBytes  12.5 Mbits/sec    0    228 KBytes
[  5]   9.00-10.00  sec  1.99 MBytes  16.7 Mbits/sec    0    228 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  17.7 MBytes  14.8 Mbits/sec    0             sender
[  5]   0.00-10.13  sec  17.2 MBytes  14.3 Mbits/sec                  receiver

iperf Done.

$ iperf3 -c 172.21.4.1 --reverse
Connecting to host 172.21.4.1, port 5201
Reverse mode, remote host 172.21.4.1 is sending
[  5] local 172.22.2.1 port 52246 connected to 172.21.4.1 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.04   sec  1.88 MBytes  15.1 Mbits/sec
[  5]   1.04-2.04   sec  1.75 MBytes  14.8 Mbits/sec
[  5]   2.04-3.03   sec  1.62 MBytes  13.7 Mbits/sec
[  5]   3.03-4.05   sec  1.75 MBytes  14.5 Mbits/sec
[  5]   4.05-5.03   sec  1.75 MBytes  14.9 Mbits/sec
[  5]   5.03-6.06   sec  1.88 MBytes  15.3 Mbits/sec
[  5]   6.06-7.05   sec  1.75 MBytes  14.8 Mbits/sec
[  5]   7.05-8.01   sec  1.75 MBytes  15.3 Mbits/sec
[  5]   8.01-9.03   sec  1.88 MBytes  15.4 Mbits/sec
[  5]   9.03-10.02  sec  1.75 MBytes  14.8 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.46  sec  21.4 MBytes  17.1 Mbits/sec    0             sender
[  5]   0.00-10.02  sec  17.8 MBytes  14.9 Mbits/sec                  receiver

iperf Done.

While I'll cope if ipw2200 goes away (giving me the impetus to replace
the ipw2200 card with ath5k - or at least to use an ar5212/ar2414 ath5k
or bcm4306/2 b43 32 bit PCMCIA/ cardbus card (inconvenient, with the
antenna sticking out) until then), these have been so ubiquitous in
their days that there will be quite a few surviving specimens around
(and this one is actually still in semi-regular use with current
kernels/ userland, not daily, but 2-3+ times a month, mostly for
isolated firstboot configuration of various networking gear).

Regards
	Stefan Lippers-Hollmann
Kalle Valo Oct. 24, 2023, 9:30 a.m. UTC | #7
Stefan Lippers-Hollmann <s.l-h@gmx.de> writes:

> On 2023-10-23, Arnd Bergmann wrote:
>> From: Arnd Bergmann <arnd@arndb.de>
>>
>> These two drivers were used for the earliest "Centrino" branded Intel
>> laptops during the late 32-bit Pentium-M era, roughly 2003 to 2005, which
>> probably makes it the most modern platform that still uses the wireless
>> extension interface instead of cfg80211. Unlike the other drivers that
>> are suggested for removal, this one is still officially maintained.
>>
>> According to Johannes Berg, there was an effort to finish the move away
>> from wext in the past, but the last evidence of this that I could find
>> is from commit a3caa99e6c68f ("libipw: initiate cfg80211 API conversion
>> (v2)") in 2009.
>>
>> Link: https://lore.kernel.org/all/87fs2fgals.fsf@kernel.org/
>> Cc: Stanislav Yakovlev <stas.yakovlev@gmail.com>
>> Cc: Linux Wireless <ilw@linux.intel.com>
>> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
>> ---
>> I'm not convinced this should be in the same set of drivers as the
>> rest, since this is clearly less obsolete than the other hardware
>> that I would remove support for.
>
> These have indeed been very common back in the day, I'm still using
> a 2003-vintage 1.5 GHz Pentium-M 'Banias' Acer Travelmate 292LMi
> notebook using ipw2200 (and have two spare ipw2200 mini-PCI cards).
> Works still fine using v6.5.8-rc1 and WPA2PSK/ CCMP (sadly it does
> not do WPA3) and I do use it semi-regularly (running the latest
> stable- or stable-rc kernel of the day).
>
> While it would be nice to replace it with an ath5k based card (to
> get WPA3 support), the card isn't that easy to reach in the notebook,
> so it would be sad to see this go.

Wow, I'm very surprised that ipw2200 still works after 20 years. Thanks
for the report, I think it's best that we still keep the ipw2x00 driver
in the kernel.
John Paul Adrian Glaubitz Oct. 30, 2023, 7:19 a.m. UTC | #8
Hi Arnd!

There is some non-x86 hardware like the Amiga that still uses PCMCIA-style networking
cards on machines like the A600 and A1200. So, unless these drivers are actually causing
problems, I would rather not see them go yet.

Thanks,
Adrian
Arnd Bergmann Oct. 30, 2023, 10:06 a.m. UTC | #9
On Mon, Oct 30, 2023, at 08:19, John Paul Adrian Glaubitz wrote:
> Hi Arnd!
>
> There is some non-x86 hardware like the Amiga that still uses 
> PCMCIA-style networking
> cards on machines like the A600 and A1200. So, unless these drivers are 
> actually causing
> problems, I would rather not see them go yet.

Do you know of any systems other than the Amiga that are still
in use with new kernels and that rely on PCMCIA networking?

I know that Amiga has its own simple CONFIG_AMIGA_PCMCIA
implementation that is incompatible with CONFIG_PCMCIA device
drivers, so it is not affected by this.

For the few ARM systems that still support a CF card slot,
these tend to be used for IDE type storage cards because their
internal flash is too limited otherwise.

       Arnd
Kalle Valo Oct. 30, 2023, 4:55 p.m. UTC | #10
John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> writes:

> There is some non-x86 hardware like the Amiga that still uses
> PCMCIA-style networking cards on machines like the A600 and A1200. So,
> unless these drivers are actually causing problems, I would rather not
> see them go yet.

There is a cost maintaining these drivers so I would like to see more
information in the report, at least:

* exact driver and hardware used

* last kernel version tested

* kernel log messages from a successful case

Here's a good example:

https://lore.kernel.org/linux-wireless/20231024014302.0a0b79b0@mir/
Kalle Valo Oct. 31, 2023, 9:08 a.m. UTC | #11
Arnd Bergmann <arnd@kernel.org> writes:

> From: Arnd Bergmann <arnd@arndb.de>
>
> As discussed previously, a lot of the older wifi drivers are likely
> entirely unused, Though we can't know for sure.
>
> As suggested by both Greg and Jakub, let's remove the ones that look
> are most likely to have no users left and also get in the way of the
> wext cleanup. If anyone is still using any of these, we can revert the
> driver removal individually.
>
> I would suggest merging these for net-next after 6.7-rc1 is out, to give
> them the maximum amount of time for users to speak up before a release
> comes out.
>
> This kills off all pcmcia wifi drivers, and all wext users in
> drivers/net/wireless, but not the ps3-gelic-wireless driver in
> drivers/net/ethernet, or the staging drivers.
>
> In staging, rtl8192u was already removed in the meantime, while rtl8712
> and rtl8192e are apparently still used.  I have not been able to find
> out whether ks7010 is still in use.
>
> 	Arnd
>
> Link: https://lore.kernel.org/lkml/20231011080955.1beeb010@kernel.org/
>
>
> Arnd Bergmann (10):
>   wifi: libertas: drop 16-bit PCMCIA support
>   wifi: atmel: remove wext style at76c50x drivers
>   wifi: remove orphaned cisco/aironet driver
>   wifi: remove obsolete hostap driver
>   wifi: remove orphaned zd1201 driver
>   wifi: remove orphaned orinoco driver
>   wifi: remove orphaned ray_cs driver
>   wifi: remove orphaned wl3501 driver
>   wifi: remove orphaned rndis_wlan driver
>   [RFC] wifi: remove ipw2100/ipw2200 drivers

I manually applied these 9 to wireless-next:

4b478bf6bdd8 wifi: libertas: drop 16-bit PCMCIA support
77e49bec6414 wifi: atmel: remove wext style at76c50x drivers
6853c70ba5ed wifi: remove orphaned cisco/aironet driver
d0172d5f7576 wifi: remove obsolete hostap driver
757a46c2a7a9 wifi: remove orphaned zd1201 driver
1535d5962d79 wifi: remove orphaned orinoco driver
6b9dbaff83d6 wifi: remove orphaned ray_cs driver
238349207cd3 wifi: remove orphaned wl3501 driver
bec95598b24a wifi: remove orphaned rndis_wlan driver

I dropped this patch as we got several reports about people using the
driver:

[RFC] wifi: remove ipw2100/ipw2200 drivers

The patches are queued for v6.8. Arnd, thanks a lot for cleaning this
up!