Re: [PATCH] [RFC] wireless: move obsolete drivers to staging

Arnd Bergmann
2023-10-11T20:23:50Z

On Wed, Oct 11, 2023, at 20:13, Philipp Hortmann wrote:
> On 10/10/23 17:27, Arnd Bergmann wrote:
>> From: Arnd Bergmann <arnd@arndb.de> 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:
>
> I found a USB WLAN Stick with a rtl8192u. I got it last Saturday and
> found out that the firmware is missing in my ubuntu 20.04. I found it on
> the web and fixed it. When I started the driver my computer crashed. The
> missing part was: priv->priv_wq = alloc_workqueue("priv_wq", 0, 0);
> Fixing this the next error was a network = kzalloc(sizeof(*network),
> GFP_KERNEL); in wrong context with leads to a crash of my computer.
> Fixing this leads to another issue which lets my computer crash.
>
> For me the firmware of rtl8192u was intentionally missing because of the
> issues with the driver.
>
> What this has to do with your question?
> Can we check for missing firmware in main distributions to know which
> drivers are considered to be old and unused?

Nice, thanks so much for testing.

I see the two bugs were introduced in 2016 by commit 1761a85c3bed3
("staging: rtl8192u: Remove create_workqueue()") and in 2021 by
commit 061e390b7c87f ("staging: rtl8192u: ieee80211_softmac: Move a
large data struct onto the heap"), so it's been broken for a while.

I also checked rtl8192e for the same bugs, but that driver
managed to avoid this even though it had the same code
originally.

Regarding the firmware files, I found:

- rtl8192e, rtl7812 and rtl8723bs are all in the linux-firmware
package, unlike rtl8192u

- atmel firmware is not in upstream linux-firmware, but Debian
has an atmel-firmware package for it

- I could not find a Debian package for ks7010sd.rom

- vt6656/vntwusb.fw is in firmware-misc-nonfree

- orinoco has multiple firmware files, but only agere_sta_fw.bin
and agere_ap_fw.bin are in Debian and linux-firmware.

Arnd