Re: [PATCH] [RFC] wireless: move obsolete drivers to staging
From: Kalle Valo
Date: Wed Oct 11 2023 - 01:40:10 EST
Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> writes:
> On Tue, Oct 10, 2023 at 05:27:29PM +0200, Arnd Bergmann wrote:
>
>> From: Arnd Bergmann <arnd@xxxxxxxx>
>>
>> While looking at the old drivers using the obsolete .ndo_do_ioctl()
>> callback, I found a number of network drivers that are especially
>> obsolete, in particular for 802.11b (11Mbit/s) or even older wireless
>> networks, using non-busmaster ISA/PCMCIA style bus interfaces, and using
>> the legacy wireless extension ioctls rather than the netlink interfaces
>> that were meant to replace them in 2007. All of these drivers are
>> obsolete or orphaned.
>>
>> We had previously discussed this topic, but nobody ever moved the
>> files, so I now went through the list to my best knowledge. These
>> are the drivers that I would classify as "probably unused" by now:
>>
>> - Atmel at76c502/at76c504/at76c506 is a PIO-only (PCMCIA, mini-PCI
>> and Cardbus) 802.11b driver with incomplete CFG80211 support.
>> The related at76c50x USB driver uses MAC80211 and remains.
>>
>> - Cisco Aironet is an 802.11b PCMCIA and mini-PCI with limited support
>> for Cardbus DMA and for CFG80211.
>>
>> - 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.
>>
>> - Aviator/Raytheon is an early PCMCIA driver, apparently predating
>> 802.11b and only supporting wireless extensions.
>>
>> - Planet WL3501 is another PCMCIA driver for pre-802.11b interfaces
>> (2Mbit/s) with incomplete CFG80211 support
>>
>> - Zydas zd1201 is a USB 802.11b driver with limited support for
>> CFG80211.
>>
>> - Orinoco is a PIO-only ISA/PCMCIA 802.11b device with extra bus
>> interface connections for PCI/Cardbus/mini-PCI and a few
>> pre-2002 Apple PowerMac variants. It supports both
>> wireless extensions and CFG80211, but I could not tell if
>> it requires using both.
>>
>> - Wireless RNDIS USB is a new-style CFG80211 driver for 802.11b
>> and 802.11g USB hardware from around 2004 to 2006. This makes it
>> more modern than any of the others, but Kalle already classified
>> it as "legacy" in commit 298e50ad8eb8f ("wifi: move raycs, wl3501
>> and rndis_wlan to legacy directory"), so it stays with ray_cs and
>> wl3501_cs.
>>
>> There are a few other drivers that are similar to these but that are
>> more likely to still be needed, and are not moved here:
>>
>> - Intel ipw2x00 is a PCI bus-master device for 802.11a/b/g that was
>> popular in "Centrino" branded laptops from 2003 to 2005, but it
>> still requires wireless extensions.
>>
>> - Marvell Libertas is an 802.11a/b/g device with a number of bus
>> interfaces (USB, SDIO, SPI, PCMCIA) and incomplete CFG80211
>> support. This one was used in the OLPC XO laptop and some other
>> embedded devices that are still supported.
>>
>> - Some broadcom b43xx devices use the SSB bus that can be abstracted
>> through PCMCIA. All of them use CFG80211.
>>
>> - The Sony Playstation 3 "gelic" ethernet driver contains a bridge
>> and an 802.11b/g client chip that is controlled through a hypervisor
>> interface from the OS, and it uses wireless extensions in the kernel
>> driver.
>>
>> Link: https://lore.kernel.org/all/87imaeg4ar.fsf@xxxxxxxxxxxxxx/
>> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
>
> Stuff in drivers/staging/ is to get code _into_ the main portion of the
> kernel tree, not out. If these aren't being used, let's just drop them
> entirely.
>
> What is the need to have them move to staging, only to have me delete
> them in the next release after that (or after that?) Why delay and why
> not just remove them now?
We (the wireless folks) have been talking about dropping legacy drivers
on and off for several years now. The problem is that we don't know
which of them work and which not, for example IIRC someone reported
recently that wl3501 still works.
Personally I would be extremly happy to remove all the ancient drivers
as that reduces the amount of code for us to maintain but is that the
right thing to do for the users? I don't have an answer to that,
comments very welcome.
I have been also wondering if I should add warnings like this to every
ancient driver to see if there are any users left:
"wl3501 wireless driver will be removed in 2024. If the driver still
works and you are using it send a report NOW to
linux-wireless@xxxxxxxxxxxxxxx to avoid the removal."
But with the long release cycles the kernel and distros have I doubt
waiting for a year is enough, it should be more like three years.
--
https://patchwork.kernel.org/project/linux-wireless/list/
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches