Message ID | 20231010155444.858483-1-arnd@kernel.org (mailing list archive) |
---|---|
State | RFC |
Delegated to: | Kalle Valo |
Headers | show |
Series | [RFC] wireless: move obsolete drivers to staging | expand |
On Tue, Oct 10, 2023 at 05:27:29PM +0200, 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: > > - 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@codeaurora.org/ > Signed-off-by: Arnd Bergmann <arnd@arndb.de> 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? thanks, greg k-h
Greg Kroah-Hartman <gregkh@linuxfoundation.org> writes: > On Tue, Oct 10, 2023 at 05:27:29PM +0200, 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: >> >> - 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@codeaurora.org/ >> Signed-off-by: Arnd Bergmann <arnd@arndb.de> > > 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@vger.kernel.org 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.
On Wed, Oct 11, 2023 at 08:40:00AM +0300, Kalle Valo wrote: > Greg Kroah-Hartman <gregkh@linuxfoundation.org> writes: > > > On Tue, Oct 10, 2023 at 05:27:29PM +0200, 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: > >> > >> - 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@codeaurora.org/ > >> Signed-off-by: Arnd Bergmann <arnd@arndb.de> > > > > 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@vger.kernel.org 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. No matter what the time frame is, it's never going to line up with all distros, or catch everyone properly. I recommend, just delete all the ones you feel are not being used, in a patch that removes them one-by-one, so that it is trivial to revert if someone shows up and says "hey, my device stopped working!" a few years in the future. thanks, greg k-h
On Wed, Oct 11, 2023, at 07:40, Kalle Valo wrote: > Greg Kroah-Hartman <gregkh@linuxfoundation.org> writes: > > 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 had a look at what openwrt enables, to see if any of the drivers in my RFC patch are actually enabled, if anything supports legacy embedded devices with these it would be openwrt. The good news here is that openwrt intentionally leaves WEXT disabled, and none of them are still in use. I also did the same thing for the kernel defconfig files, which has a few hits: arch/arm/configs/pxa_defconfig:CONFIG_HERMES=m arch/arm/configs/pxa_defconfig:CONFIG_HOSTAP=m arch/arm/configs/pxa_defconfig:CONFIG_HOSTAP_CS=m arch/arm/configs/pxa_defconfig:CONFIG_PCMCIA_HERMES=m arch/arm/configs/pxa_defconfig:CONFIG_PCMCIA_SPECTRUM=m arch/loongarch/configs/loongson3_defconfig:CONFIG_HOSTAP=m arch/loongarch/configs/loongson3_defconfig:CONFIG_USB_NET_RNDIS_WLAN=m arch/mips/configs/ip22_defconfig:CONFIG_HOSTAP=m arch/mips/configs/ip27_defconfig:CONFIG_ATMEL=m arch/mips/configs/ip27_defconfig:CONFIG_HERMES=m arch/mips/configs/ip27_defconfig:CONFIG_HOSTAP=m arch/mips/configs/ip27_defconfig:CONFIG_HOSTAP_PCI=m arch/mips/configs/ip27_defconfig:CONFIG_HOSTAP_PLX=m arch/mips/configs/ip27_defconfig:CONFIG_NORTEL_HERMES=m arch/mips/configs/ip27_defconfig:CONFIG_PCI_ATMEL=m arch/mips/configs/ip27_defconfig:CONFIG_PLX_HERMES=m arch/mips/configs/ip27_defconfig:CONFIG_TMD_HERMES=m arch/mips/configs/loongson2k_defconfig:CONFIG_HOSTAP=m arch/mips/configs/loongson3_defconfig:CONFIG_HOSTAP=m arch/mips/configs/malta_defconfig:CONFIG_ATMEL=m arch/mips/configs/malta_defconfig:CONFIG_HOSTAP=m arch/mips/configs/malta_defconfig:CONFIG_HOSTAP_PCI=m arch/mips/configs/malta_defconfig:CONFIG_HOSTAP_PLX=m arch/mips/configs/malta_defconfig:CONFIG_PCI_ATMEL=m arch/mips/configs/malta_kvm_defconfig:CONFIG_ATMEL=m arch/mips/configs/malta_kvm_defconfig:CONFIG_HOSTAP=m arch/mips/configs/malta_kvm_defconfig:CONFIG_HOSTAP_PCI=m arch/mips/configs/malta_kvm_defconfig:CONFIG_HOSTAP_PLX=m arch/mips/configs/malta_kvm_defconfig:CONFIG_PCI_ATMEL=m arch/mips/configs/maltaup_xpa_defconfig:CONFIG_ATMEL=m arch/mips/configs/maltaup_xpa_defconfig:CONFIG_HOSTAP=m arch/mips/configs/maltaup_xpa_defconfig:CONFIG_HOSTAP_PCI=m arch/mips/configs/maltaup_xpa_defconfig:CONFIG_HOSTAP_PLX=m arch/mips/configs/maltaup_xpa_defconfig:CONFIG_PCI_ATMEL=m My interpretation here is that these defconfigs just enabled all drivers that were relevant at the time when the boards were new. The loongarch defconfig is a bit of an outlier, as this is a fairly new platform. Debian on the other just enables every driver, so there is no good way to know what they actually use. Arnd
Greg Kroah-Hartman <gregkh@linuxfoundation.org> writes: > On Wed, Oct 11, 2023 at 08:40:00AM +0300, Kalle Valo wrote: > >> 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@vger.kernel.org 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. > > No matter what the time frame is, it's never going to line up with all > distros, or catch everyone properly. Yeah, that's true. > I recommend, just delete all the ones you feel are not being used, in a > patch that removes them one-by-one, so that it is trivial to revert if > someone shows up and says "hey, my device stopped working!" a few years > in the future. I'm starting to lean towards this as well. We have talked about this for so long now but no practical solution ever found so maybe just bite the bullet finally. What do others think?
On Wed, Oct 11, 2023 at 09:24:55AM +0200, Arnd Bergmann wrote: > Debian on the other just enables every driver, so there > is no good way to know what they actually use. Yeah, as you point out, we can't go by distro kernel configs as they obviously error on the side of "build everything!". But your openwrt info is good, thanks for that, that's a huge hint that no one uses those drivers anymore. greg k-h
"Arnd Bergmann" <arnd@arndb.de> writes: > On Wed, Oct 11, 2023, at 07:40, Kalle Valo wrote: >> Greg Kroah-Hartman <gregkh@linuxfoundation.org> writes: >> >> 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 had a look at what openwrt enables, to see if any of the drivers > in my RFC patch are actually enabled, if anything supports legacy > embedded devices with these it would be openwrt. The good news here > is that openwrt intentionally leaves WEXT disabled, and none of them > are still in use. I don't think openwrt is a good metric in this case. These drivers are for 20+ years old hardware, most likely running on really old x86 laptops. So the chances of them running openwrt on those laptops is low and I would expect them to run more traditional distros like debian or ubuntu. But of course this is just guessing.
On Wed, Oct 11, 2023, at 10:44, Kalle Valo wrote: > "Arnd Bergmann" <arnd@arndb.de> writes: >> On Wed, Oct 11, 2023, at 07:40, Kalle Valo wrote: >>> Greg Kroah-Hartman <gregkh@linuxfoundation.org> writes: >>> >>> 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 had a look at what openwrt enables, to see if any of the drivers >> in my RFC patch are actually enabled, if anything supports legacy >> embedded devices with these it would be openwrt. The good news here >> is that openwrt intentionally leaves WEXT disabled, and none of them >> are still in use. > > I don't think openwrt is a good metric in this case. These drivers are > for 20+ years old hardware, most likely running on really old x86 > laptops. So the chances of them running openwrt on those laptops is low > and I would expect them to run more traditional distros like debian or > ubuntu. But of course this is just guessing. OpenWRT is clearly not a good metric for laptops, but it's a good indicator for embedded systems, in particular those with wireless access points, and it does enable a lot of them (atheros, broadcom, intel, marvell, ralink, realtek, mt76, wlcore, rsi ...) depending on the platform. I can also see that it used to enable airo, p54, hermes, adm8211, zd1211, ipw2x00 and libertas but stopped this a year ago, see https://github.com/openwrt/openwrt/commit/a06e023b4e12 Arnd
On Wed, 11 Oct 2023 10:29:58 +0300 Kalle Valo wrote: > > No matter what the time frame is, it's never going to line up with all > > distros, or catch everyone properly. > > Yeah, that's true. > > > I recommend, just delete all the ones you feel are not being used, in a > > patch that removes them one-by-one, so that it is trivial to revert if > > someone shows up and says "hey, my device stopped working!" a few years > > in the future. > > I'm starting to lean towards this as well. We have talked about this for > so long now but no practical solution ever found so maybe just bite the > bullet finally. What do others think? FWIW in Ethernet we do what Greg says. Delete it, if someone complains we revert back in. The revert did actually happen once, it was pretty painless (Greg even took it into stable tree, IIRC).
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? Bye Philipp
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
On Wed, Oct 11, 2023 at 10:22:32PM +0200, Arnd Bergmann wrote: > 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()") This one never made it to lore... I think we wouldn't have merged it without a lore review these days. (There was a lot of moaning and complaining at the time). > 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. :/ No way would I have seen this in review. Smatch is supposed to find some of these "sleeping in invalid context" warnings but the sleeping in IRQ stuff doesn't work and hasn't been released. regards, dan carpenter
Jakub Kicinski <kuba@kernel.org> writes: > On Wed, 11 Oct 2023 10:29:58 +0300 Kalle Valo wrote: >> > No matter what the time frame is, it's never going to line up with all >> > distros, or catch everyone properly. >> >> Yeah, that's true. >> >> > I recommend, just delete all the ones you feel are not being used, in a >> > patch that removes them one-by-one, so that it is trivial to revert if >> > someone shows up and says "hey, my device stopped working!" a few years >> > in the future. >> >> I'm starting to lean towards this as well. We have talked about this for >> so long now but no practical solution ever found so maybe just bite the >> bullet finally. What do others think? > > FWIW in Ethernet we do what Greg says. Delete it, if someone complains > we revert back in. The revert did actually happen once, it was pretty > painless (Greg even took it into stable tree, IIRC). Thanks, good to know that you have had positive experiences with this approach. As I didn't hear any concerns from anyone so I'm convinced we should do this. I'm sure it will make my life a lot easier :) Is anyone willing to submit patches? Use wireless-next as the baseline for patches and one driver per commit, please. That way it's easy to revert later, if needed (hopefully not).
On Thu, Oct 12, 2023, at 13:47, Kalle Valo wrote: > > Is anyone willing to submit patches? Use wireless-next as the baseline > for patches and one driver per commit, please. That way it's easy to > revert later, if needed (hopefully not). I can do it, I've already done most of the work for moving the drivers, so I just need to split up my existing patch and leave out the bits that get added to drivers/staging. I'll also send Greg a patch to remove rtl8192u now that we know that this has been broken for 7 years. Similarly, I'd include another patch to remove PCMCIA support for libertas, as that would otherwise be the only remaining 16-bit PCMCIA wlan card, and I could find no indication of this one ever being popular, unlike the USB/SDIO/SPI variants of the same device or the other PCMCIA drivers. This would leave only a handful of wext implementations in the tree: ipw2x00, ps3-gelic-wireless, staging/rtl8712, staging/rtl8192e and staging/ks7010. Since ipw2x00 is apparently still supported in theory and was rather popular on Pentium-M based systems 20 years ago, this may still need to be converted to cfg80211 before you can remove support for wext style drivers altogether. ps3-gelic-wireless and rtl8712 are also still maintained but have a much smaller user base I assume. Arnd
"Arnd Bergmann" <arnd@arndb.de> writes: > On Thu, Oct 12, 2023, at 13:47, Kalle Valo wrote: >> >> Is anyone willing to submit patches? Use wireless-next as the baseline >> for patches and one driver per commit, please. That way it's easy to >> revert later, if needed (hopefully not). > > I can do it, I've already done most of the work for moving the > drivers, so I just need to split up my existing patch and leave out > the bits that get added to drivers/staging. Awesome, thank you! > I'll also send Greg a patch to remove rtl8192u now that we know > that this has been broken for 7 years. Similarly, I'd include > another patch to remove PCMCIA support for libertas, as that > would otherwise be the only remaining 16-bit PCMCIA wlan card, > and I could find no indication of this one ever being popular, > unlike the USB/SDIO/SPI variants of the same device or the > other PCMCIA drivers. > > This would leave only a handful of wext implementations in the > tree: ipw2x00, ps3-gelic-wireless, staging/rtl8712, staging/rtl8192e > and staging/ks7010. Since ipw2x00 is apparently still supported > in theory and was rather popular on Pentium-M based systems 20 > years ago, this may still need to be converted to cfg80211 > before you can remove support for wext style drivers altogether. > ps3-gelic-wireless and rtl8712 are also still maintained but have > a much smaller user base I assume. Actually I would prefer to remove ipw2x00 and ps3-gelic-wireless as well. I have not seen any evidence that there would be users for those drivers. If we find out that there really are users I can easily add the drivers back. The faster we get rid of wext the better, it really needs to go away.
CC geoff, ppc On Thu, Oct 12, 2023 at 4:46 PM Kalle Valo <kvalo@kernel.org> wrote: > "Arnd Bergmann" <arnd@arndb.de> writes: > > > On Thu, Oct 12, 2023, at 13:47, Kalle Valo wrote: > >> > >> Is anyone willing to submit patches? Use wireless-next as the baseline > >> for patches and one driver per commit, please. That way it's easy to > >> revert later, if needed (hopefully not). > > > > I can do it, I've already done most of the work for moving the > > drivers, so I just need to split up my existing patch and leave out > > the bits that get added to drivers/staging. > > Awesome, thank you! > > > I'll also send Greg a patch to remove rtl8192u now that we know > > that this has been broken for 7 years. Similarly, I'd include > > another patch to remove PCMCIA support for libertas, as that > > would otherwise be the only remaining 16-bit PCMCIA wlan card, > > and I could find no indication of this one ever being popular, > > unlike the USB/SDIO/SPI variants of the same device or the > > other PCMCIA drivers. > > > > This would leave only a handful of wext implementations in the > > tree: ipw2x00, ps3-gelic-wireless, staging/rtl8712, staging/rtl8192e > > and staging/ks7010. Since ipw2x00 is apparently still supported > > in theory and was rather popular on Pentium-M based systems 20 > > years ago, this may still need to be converted to cfg80211 > > before you can remove support for wext style drivers altogether. > > ps3-gelic-wireless and rtl8712 are also still maintained but have > > a much smaller user base I assume. > > Actually I would prefer to remove ipw2x00 and ps3-gelic-wireless as > well. I have not seen any evidence that there would be users for those > drivers. If we find out that there really are users I can easily add the > drivers back. The faster we get rid of wext the better, it really needs > to go away. > > -- > https://patchwork.kernel.org/project/linux-wireless/list/ > > https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
On Thu, 2023-10-12 at 16:36 +0200, Arnd Bergmann wrote: > > ps3-gelic-wireless Didn't Sony disable Linux on PS3 eventually? Though maybe someone still has some devices with old software. johannes
Hi Johannes, On Thu, Oct 12, 2023 at 5:28 PM Johannes Berg <johannes@sipsolutions.net> wrote: > On Thu, 2023-10-12 at 16:36 +0200, Arnd Bergmann wrote: > > > > ps3-gelic-wireless > > Didn't Sony disable Linux on PS3 eventually? Though maybe someone still > has some devices with old software. If you didn't update the firmware, you could keep on using Linux. And people may have found a vulnerability in more recent firmware versions that allows them to run custom software. I don't know, it's been +10 years ago I touched a PS3 ;-) Gr{oetje,eeting}s, Geert
On Thu, 2023-10-12 at 17:39 +0200, Geert Uytterhoeven wrote: > Hi Johannes, > > On Thu, Oct 12, 2023 at 5:28 PM Johannes Berg <johannes@sipsolutions.net> wrote: > > On Thu, 2023-10-12 at 16:36 +0200, Arnd Bergmann wrote: > > > > > > ps3-gelic-wireless > > > > Didn't Sony disable Linux on PS3 eventually? Though maybe someone still > > has some devices with old software. > > If you didn't update the firmware, you could keep on using Linux. > > And people may have found a vulnerability in more recent firmware > versions that allows them to run custom software. Yeah, fair. > I don't know, it's been +10 years ago I touched a PS3 ;-) I never had one :-) But seriously - is it worth to try to keep a wireless driver for it if we don't even know anyone using a PS3 at all? But maybe we'll find someone :-) johannes
On 10/12/23 16:36, Arnd Bergmann wrote: > I'll also send Greg a patch to remove rtl8192u now that we know that > this has been broken for 7 years. Hi Arnd, please allow me to do this. I had a separate mail with Greg this morning... https://lore.kernel.org/linux-staging/2023101244-unaudited-sadly-d9d6@gregkh/T/#t Waiting for your confirmation who is sending the patch for removal. Thanks Bye Philipp
On Thu, 2023-10-12 at 16:36 +0200, Arnd Bergmann wrote: > On Thu, Oct 12, 2023, at 13:47, Kalle Valo wrote: > > > > Is anyone willing to submit patches? Use wireless-next as the > > baseline > > for patches and one driver per commit, please. That way it's easy > > to > > revert later, if needed (hopefully not). > > I can do it, I've already done most of the work for moving the > drivers, so I just need to split up my existing patch and leave out > the bits that get added to drivers/staging. > > I'll also send Greg a patch to remove rtl8192u now that we know > that this has been broken for 7 years. Similarly, I'd include > another patch to remove PCMCIA support for libertas, as that > would otherwise be the only remaining 16-bit PCMCIA wlan card, > and I could find no indication of this one ever being popular, > unlike the USB/SDIO/SPI variants of the same device or the > other PCMCIA drivers. This was only for CF cards of which there were a couple; I still have cards but don't have a machine with CF anymore. USB/SDIO/SPI (as you point out) have much higher usage. ACK from me (if my historical libertas involvement counts for anything) on removing Libertas CF support. Dan > > This would leave only a handful of wext implementations in the > tree: ipw2x00, ps3-gelic-wireless, staging/rtl8712, staging/rtl8192e > and staging/ks7010. Since ipw2x00 is apparently still supported > in theory and was rather popular on Pentium-M based systems 20 > years ago, this may still need to be converted to cfg80211 > before you can remove support for wext style drivers altogether. > ps3-gelic-wireless and rtl8712 are also still maintained but have > a much smaller user base I assume. > > Â Â Â Â Â Arnd >
On 10/12/23 17:41, Johannes Berg wrote: > But seriously - is it worth to try to keep a wireless driver for it if > we don't even know anyone using a PS3 at all? There is still a considerable user base for the PS3, so we must keep the ps3-gelic-wireless driver. -Geoff
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. Hi Arnd, we should take into account how good the wlan connection is. This of course leads to tests on real hardware. I do have a vt6655. Please have a look at the test results below. In a nutshell it is a very bumpy connection you get with vt6655. You can have issues to connect on every channel and data is coming in waves. So sometimes you will almost not notice you have a wlan connection and then it takes very long to load the next site. Ping times up to 80 seconds. Packet losses up to 40%. So I assume all users have gone away from this module as it is not comfortable. Do you think this helps you? I do have two vt6656 hardware as well. Are you interested in tests? I can do a patch to remove vt6655. Do you think it makes sense? Thanks for your support. Bye Philipp Used AP is Archer C6 Maximum throuput is 3,3 MByte/s Build Link time in seconds Channel 1 5, >90, 4, 14, 10, 4 2 12, 2, 7, >90, 60, 60 3 3, 3, 3, 3, 3 4 >90, >90, >90, reboot, 15 5 4, 4, 50, 3, 3, 40, 6 30, 5, 5, 5, 5, 4, 7 5, 10, 50, 40, 40 8 4, 4, 4, 50, 18, 4 9 5, 3, 60, 5, 3 10 untested 11 untested 12 untested 13 untested Ping statistics: Channel 2 kernel@matrix-ESPRIMO-P710:~/Documents/git/kernels/staging$ ping 192.168.0.1 PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data. 64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=4328 ms 64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=3319 ms 64 bytes from 192.168.0.1: icmp_seq=3 ttl=64 time=2298 ms 64 bytes from 192.168.0.1: icmp_seq=4 ttl=64 time=1280 ms 64 bytes from 192.168.0.1: icmp_seq=5 ttl=64 time=256 ms 64 bytes from 192.168.0.1: icmp_seq=6 ttl=64 time=40441 ms 64 bytes from 192.168.0.1: icmp_seq=7 ttl=64 time=39428 ms 64 bytes from 192.168.0.1: icmp_seq=8 ttl=64 time=38404 ms 64 bytes from 192.168.0.1: icmp_seq=10 ttl=64 time=36378 ms 64 bytes from 192.168.0.1: icmp_seq=11 ttl=64 time=35360 ms 64 bytes from 192.168.0.1: icmp_seq=12 ttl=64 time=534 ms 64 bytes from 192.168.0.1: icmp_seq=14 ttl=64 time=0.840 ms 64 bytes from 192.168.0.1: icmp_seq=15 ttl=64 time=1.03 ms 64 bytes from 192.168.0.1: icmp_seq=16 ttl=64 time=8.89 ms 64 bytes from 192.168.0.1: icmp_seq=17 ttl=64 time=34.7 ms 64 bytes from 192.168.0.1: icmp_seq=18 ttl=64 time=337 ms 64 bytes from 192.168.0.1: icmp_seq=19 ttl=64 time=1150 ms 64 bytes from 192.168.0.1: icmp_seq=20 ttl=64 time=141 ms 64 bytes from 192.168.0.1: icmp_seq=21 ttl=64 time=1720 ms 64 bytes from 192.168.0.1: icmp_seq=22 ttl=64 time=705 ms 64 bytes from 192.168.0.1: icmp_seq=23 ttl=64 time=1018 ms 64 bytes from 192.168.0.1: icmp_seq=24 ttl=64 time=1.66 ms ^C --- 192.168.0.1 ping statistics --- 24 packets transmitted, 22 received, 8.33333% packet loss, time 57075ms rtt min/avg/max/mdev = 0.840/9415.608/40441.144/15566.854 ms, pipe 7 Channel 3 kernel@matrix-ESPRIMO-P710:~/Documents/git/kernels/staging$ ping 192.168.0.1 PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data. 64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=3053 ms 64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=2046 ms 64 bytes from 192.168.0.1: icmp_seq=3 ttl=64 time=1026 ms 64 bytes from 192.168.0.1: icmp_seq=4 ttl=64 time=2.72 ms 64 bytes from 192.168.0.1: icmp_seq=5 ttl=64 time=2467 ms 64 bytes from 192.168.0.1: icmp_seq=6 ttl=64 time=1453 ms 64 bytes from 192.168.0.1: icmp_seq=7 ttl=64 time=429 ms 64 bytes from 192.168.0.1: icmp_seq=9 ttl=64 time=19522 ms 64 bytes from 192.168.0.1: icmp_seq=10 ttl=64 time=18498 ms 64 bytes from 192.168.0.1: icmp_seq=11 ttl=64 time=17482 ms 64 bytes from 192.168.0.1: icmp_seq=12 ttl=64 time=16459 ms 64 bytes from 192.168.0.1: icmp_seq=13 ttl=64 time=15435 ms 64 bytes from 192.168.0.1: icmp_seq=14 ttl=64 time=66.1 ms 64 bytes from 192.168.0.1: icmp_seq=16 ttl=64 time=10886 ms 64 bytes from 192.168.0.1: icmp_seq=17 ttl=64 time=9862 ms 64 bytes from 192.168.0.1: icmp_seq=18 ttl=64 time=8843 ms 64 bytes from 192.168.0.1: icmp_seq=19 ttl=64 time=7821 ms 64 bytes from 192.168.0.1: icmp_seq=20 ttl=64 time=6798 ms 64 bytes from 192.168.0.1: icmp_seq=21 ttl=64 time=5774 ms 64 bytes from 192.168.0.1: icmp_seq=22 ttl=64 time=644 ms 64 bytes from 192.168.0.1: icmp_seq=23 ttl=64 time=1.18 ms 64 bytes from 192.168.0.1: icmp_seq=24 ttl=64 time=1.28 ms 64 bytes from 192.168.0.1: icmp_seq=26 ttl=64 time=21370 ms 64 bytes from 192.168.0.1: icmp_seq=27 ttl=64 time=20347 ms 64 bytes from 192.168.0.1: icmp_seq=28 ttl=64 time=19323 ms 64 bytes from 192.168.0.1: icmp_seq=29 ttl=64 time=18302 ms 64 bytes from 192.168.0.1: icmp_seq=30 ttl=64 time=17278 ms 64 bytes from 192.168.0.1: icmp_seq=31 ttl=64 time=16254 ms 64 bytes from 192.168.0.1: icmp_seq=32 ttl=64 time=885 ms 64 bytes from 192.168.0.1: icmp_seq=33 ttl=64 time=1.21 ms ^C --- 192.168.0.1 ping statistics --- 37 packets transmitted, 30 received, 18.9189% packet loss, time 69423ms rtt min/avg/max/mdev = 1.184/8744.248/21370.185/7841.585 ms, pipe 7 Channel 4 kernel@matrix-ESPRIMO-P710:~/Documents/git/kernels/staging$ ping 192.168.0.1 PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data. 64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=1.62 ms 64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=6.71 ms 64 bytes from 192.168.0.1: icmp_seq=3 ttl=64 time=1224 ms 64 bytes from 192.168.0.1: icmp_seq=4 ttl=64 time=200 ms 64 bytes from 192.168.0.1: icmp_seq=5 ttl=64 time=1202 ms 64 bytes from 192.168.0.1: icmp_seq=6 ttl=64 time=188 ms 64 bytes from 192.168.0.1: icmp_seq=7 ttl=64 time=605 ms 64 bytes from 192.168.0.1: icmp_seq=8 ttl=64 time=1120 ms 64 bytes from 192.168.0.1: icmp_seq=9 ttl=64 time=116 ms 64 bytes from 192.168.0.1: icmp_seq=11 ttl=64 time=1.42 ms 64 bytes from 192.168.0.1: icmp_seq=16 ttl=64 time=4.88 ms 64 bytes from 192.168.0.1: icmp_seq=17 ttl=64 time=8853 ms 64 bytes from 192.168.0.1: icmp_seq=18 ttl=64 time=7843 ms 64 bytes from 192.168.0.1: icmp_seq=19 ttl=64 time=6820 ms 64 bytes from 192.168.0.1: icmp_seq=20 ttl=64 time=5799 ms 64 bytes from 192.168.0.1: icmp_seq=21 ttl=64 time=4776 ms 64 bytes from 192.168.0.1: icmp_seq=22 ttl=64 time=3753 ms 64 bytes from 192.168.0.1: icmp_seq=23 ttl=64 time=671 ms 64 bytes from 192.168.0.1: icmp_seq=30 ttl=64 time=962 ms 64 bytes from 192.168.0.1: icmp_seq=31 ttl=64 time=0.850 ms 64 bytes from 192.168.0.1: icmp_seq=32 ttl=64 time=1757 ms 64 bytes from 192.168.0.1: icmp_seq=33 ttl=64 time=738 ms 64 bytes from 192.168.0.1: icmp_seq=35 ttl=64 time=6150 ms 64 bytes from 192.168.0.1: icmp_seq=36 ttl=64 time=5126 ms 64 bytes from 192.168.0.1: icmp_seq=37 ttl=64 time=4100 ms 64 bytes from 192.168.0.1: icmp_seq=38 ttl=64 time=3080 ms 64 bytes from 192.168.0.1: icmp_seq=41 ttl=64 time=3.84 ms 64 bytes from 192.168.0.1: icmp_seq=44 ttl=64 time=3874 ms 64 bytes from 192.168.0.1: icmp_seq=45 ttl=64 time=2855 ms 64 bytes from 192.168.0.1: icmp_seq=46 ttl=64 time=1837 ms 64 bytes from 192.168.0.1: icmp_seq=47 ttl=64 time=814 ms 64 bytes from 192.168.0.1: icmp_seq=49 ttl=64 time=4101 ms 64 bytes from 192.168.0.1: icmp_seq=50 ttl=64 time=3078 ms 64 bytes from 192.168.0.1: icmp_seq=51 ttl=64 time=2054 ms 64 bytes from 192.168.0.1: icmp_seq=52 ttl=64 time=1032 ms 64 bytes from 192.168.0.1: icmp_seq=53 ttl=64 time=3.99 ms 64 bytes from 192.168.0.1: icmp_seq=58 ttl=64 time=8270 ms 64 bytes from 192.168.0.1: icmp_seq=59 ttl=64 time=7246 ms 64 bytes from 192.168.0.1: icmp_seq=60 ttl=64 time=6222 ms 64 bytes from 192.168.0.1: icmp_seq=61 ttl=64 time=5195 ms 64 bytes from 192.168.0.1: icmp_seq=62 ttl=64 time=4176 ms 64 bytes from 192.168.0.1: icmp_seq=63 ttl=64 time=3155 ms 64 bytes from 192.168.0.1: icmp_seq=64 ttl=64 time=74.5 ms ^C--- 192.168.0.1 ping statistics --- 66 packets transmitted, 43 received, 34.8485% packet loss, time 70196ms rtt min/avg/max/mdev = 0.850/2769.484/8852.940/2640.961 ms, pipe 7 Channel 5 kernel@matrix-ESPRIMO-P710:~/Documents/git/kernels/staging$ ping 192.168.0.1 PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data. 64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=289 ms 64 bytes from 192.168.0.1: icmp_seq=3 ttl=64 time=2.51 ms 64 bytes from 192.168.0.1: icmp_seq=4 ttl=64 time=2108 ms 64 bytes from 192.168.0.1: icmp_seq=5 ttl=64 time=1103 ms 64 bytes from 192.168.0.1: icmp_seq=6 ttl=64 time=79.5 ms 64 bytes from 192.168.0.1: icmp_seq=7 ttl=64 time=1528 ms 64 bytes from 192.168.0.1: icmp_seq=8 ttl=64 time=514 ms 64 bytes from 192.168.0.1: icmp_seq=10 ttl=64 time=2051 ms 64 bytes from 192.168.0.1: icmp_seq=11 ttl=64 time=1023 ms 64 bytes from 192.168.0.1: icmp_seq=12 ttl=64 time=5.14 ms 64 bytes from 192.168.0.1: icmp_seq=17 ttl=64 time=4098 ms 64 bytes from 192.168.0.1: icmp_seq=18 ttl=64 time=3075 ms 64 bytes from 192.168.0.1: icmp_seq=19 ttl=64 time=2047 ms 64 bytes from 192.168.0.1: icmp_seq=20 ttl=64 time=1028 ms 64 bytes from 192.168.0.1: icmp_seq=21 ttl=64 time=7.99 ms 64 bytes from 192.168.0.1: icmp_seq=22 ttl=64 time=6.62 ms 64 bytes from 192.168.0.1: icmp_seq=23 ttl=64 time=0.961 ms 64 bytes from 192.168.0.1: icmp_seq=25 ttl=64 time=993 ms 64 bytes from 192.168.0.1: icmp_seq=26 ttl=64 time=1.64 ms 64 bytes from 192.168.0.1: icmp_seq=29 ttl=64 time=1.07 ms 64 bytes from 192.168.0.1: icmp_seq=31 ttl=64 time=1.67 ms 64 bytes from 192.168.0.1: icmp_seq=32 ttl=64 time=4091 ms 64 bytes from 192.168.0.1: icmp_seq=33 ttl=64 time=3078 ms 64 bytes from 192.168.0.1: icmp_seq=34 ttl=64 time=2054 ms 64 bytes from 192.168.0.1: icmp_seq=35 ttl=64 time=1037 ms 64 bytes from 192.168.0.1: icmp_seq=36 ttl=64 time=9.86 ms 64 bytes from 192.168.0.1: icmp_seq=38 ttl=64 time=3238 ms 64 bytes from 192.168.0.1: icmp_seq=39 ttl=64 time=2214 ms 64 bytes from 192.168.0.1: icmp_seq=40 ttl=64 time=1191 ms 64 bytes from 192.168.0.1: icmp_seq=44 ttl=64 time=1.62 ms 64 bytes from 192.168.0.1: icmp_seq=45 ttl=64 time=2.07 ms 64 bytes from 192.168.0.1: icmp_seq=47 ttl=64 time=9473 ms 64 bytes from 192.168.0.1: icmp_seq=48 ttl=64 time=8450 ms 64 bytes from 192.168.0.1: icmp_seq=49 ttl=64 time=7443 ms 64 bytes from 192.168.0.1: icmp_seq=50 ttl=64 time=6420 ms 64 bytes from 192.168.0.1: icmp_seq=51 ttl=64 time=5396 ms 64 bytes from 192.168.0.1: icmp_seq=52 ttl=64 time=264 ms 64 bytes from 192.168.0.1: icmp_seq=57 ttl=64 time=5447 ms 64 bytes from 192.168.0.1: icmp_seq=58 ttl=64 time=4423 ms 64 bytes from 192.168.0.1: icmp_seq=59 ttl=64 time=3403 ms 64 bytes from 192.168.0.1: icmp_seq=60 ttl=64 time=2379 ms 64 bytes from 192.168.0.1: icmp_seq=61 ttl=64 time=1356 ms 64 bytes from 192.168.0.1: icmp_seq=62 ttl=64 time=333 ms 64 bytes from 192.168.0.1: icmp_seq=64 ttl=64 time=4098 ms 64 bytes from 192.168.0.1: icmp_seq=65 ttl=64 time=3074 ms 64 bytes from 192.168.0.1: icmp_seq=68 ttl=64 time=3.35 ms ^C --- 192.168.0.1 ping statistics --- 73 packets transmitted, 46 received, 36.9863% packet loss, time 77231ms rtt min/avg/max/mdev = 0.961/2148.809/9473.428/2393.957 ms, pipe 6 Channel 6 kernel@matrix-ESPRIMO-P710:~/Documents/git/kernels/staging$ ping 192.168.0.1 PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data. 64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=7.30 ms 64 bytes from 192.168.0.1: icmp_seq=3 ttl=64 time=29.6 ms 64 bytes from 192.168.0.1: icmp_seq=4 ttl=64 time=0.779 ms 64 bytes from 192.168.0.1: icmp_seq=5 ttl=64 time=62.7 ms 64 bytes from 192.168.0.1: icmp_seq=6 ttl=64 time=1.02 ms 64 bytes from 192.168.0.1: icmp_seq=7 ttl=64 time=1.23 ms 64 bytes from 192.168.0.1: icmp_seq=8 ttl=64 time=69.6 ms 64 bytes from 192.168.0.1: icmp_seq=9 ttl=64 time=5125 ms 64 bytes from 192.168.0.1: icmp_seq=10 ttl=64 time=4097 ms 64 bytes from 192.168.0.1: icmp_seq=11 ttl=64 time=3073 ms 64 bytes from 192.168.0.1: icmp_seq=12 ttl=64 time=2050 ms 64 bytes from 192.168.0.1: icmp_seq=13 ttl=64 time=1026 ms 64 bytes from 192.168.0.1: icmp_seq=14 ttl=64 time=2.72 ms 64 bytes from 192.168.0.1: icmp_seq=20 ttl=64 time=1025 ms 64 bytes from 192.168.0.1: icmp_seq=21 ttl=64 time=1.27 ms 64 bytes from 192.168.0.1: icmp_seq=24 ttl=64 time=1.36 ms 64 bytes from 192.168.0.1: icmp_seq=31 ttl=64 time=3105 ms 64 bytes from 192.168.0.1: icmp_seq=32 ttl=64 time=2081 ms 64 bytes from 192.168.0.1: icmp_seq=33 ttl=64 time=1057 ms 64 bytes from 192.168.0.1: icmp_seq=34 ttl=64 time=33.6 ms 64 bytes from 192.168.0.1: icmp_seq=36 ttl=64 time=9281 ms 64 bytes from 192.168.0.1: icmp_seq=37 ttl=64 time=8257 ms 64 bytes from 192.168.0.1: icmp_seq=38 ttl=64 time=7230 ms 64 bytes from 192.168.0.1: icmp_seq=39 ttl=64 time=6211 ms 64 bytes from 192.168.0.1: icmp_seq=40 ttl=64 time=5187 ms 64 bytes from 192.168.0.1: icmp_seq=41 ttl=64 time=57.5 ms 64 bytes from 192.168.0.1: icmp_seq=43 ttl=64 time=2.21 ms 64 bytes from 192.168.0.1: icmp_seq=46 ttl=64 time=5256 ms 64 bytes from 192.168.0.1: icmp_seq=47 ttl=64 time=4232 ms 64 bytes from 192.168.0.1: icmp_seq=48 ttl=64 time=3208 ms 64 bytes from 192.168.0.1: icmp_seq=49 ttl=64 time=2184 ms 64 bytes from 192.168.0.1: icmp_seq=50 ttl=64 time=1161 ms 64 bytes from 192.168.0.1: icmp_seq=51 ttl=64 time=137 ms 64 bytes from 192.168.0.1: icmp_seq=53 ttl=64 time=2050 ms 64 bytes from 192.168.0.1: icmp_seq=54 ttl=64 time=1026 ms 64 bytes from 192.168.0.1: icmp_seq=55 ttl=64 time=2.56 ms 64 bytes from 192.168.0.1: icmp_seq=67 ttl=64 time=6337 ms 64 bytes from 192.168.0.1: icmp_seq=68 ttl=64 time=5313 ms 64 bytes from 192.168.0.1: icmp_seq=69 ttl=64 time=4290 ms 64 bytes from 192.168.0.1: icmp_seq=70 ttl=64 time=3267 ms 64 bytes from 192.168.0.1: icmp_seq=71 ttl=64 time=2243 ms 64 bytes from 192.168.0.1: icmp_seq=72 ttl=64 time=185 ms 64 bytes from 192.168.0.1: icmp_seq=74 ttl=64 time=10465 ms 64 bytes from 192.168.0.1: icmp_seq=75 ttl=64 time=9441 ms 64 bytes from 192.168.0.1: icmp_seq=76 ttl=64 time=8418 ms 64 bytes from 192.168.0.1: icmp_seq=77 ttl=64 time=7395 ms 64 bytes from 192.168.0.1: icmp_seq=78 ttl=64 time=6371 ms 64 bytes from 192.168.0.1: icmp_seq=79 ttl=64 time=217 ms ^C --- 192.168.0.1 ping statistics --- 84 packets transmitted, 48 received, 42.8571% packet loss, time 94747ms rtt min/avg/max/mdev = 0.779/2964.129/10465.412/3091.896 ms, pipe 6 Channel 7 kernel@matrix-ESPRIMO-P710:~/Documents/git/kernels/staging$ ping 192.168.0.1 PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data. 64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=1.21 ms 64 bytes from 192.168.0.1: icmp_seq=4 ttl=64 time=1438 ms 64 bytes from 192.168.0.1: icmp_seq=5 ttl=64 time=423 ms 64 bytes from 192.168.0.1: icmp_seq=6 ttl=64 time=5164 ms 64 bytes from 192.168.0.1: icmp_seq=7 ttl=64 time=4150 ms 64 bytes from 192.168.0.1: icmp_seq=8 ttl=64 time=3127 ms 64 bytes from 192.168.0.1: icmp_seq=9 ttl=64 time=2105 ms 64 bytes from 192.168.0.1: icmp_seq=10 ttl=64 time=1077 ms 64 bytes from 192.168.0.1: icmp_seq=11 ttl=64 time=58.2 ms 64 bytes from 192.168.0.1: icmp_seq=12 ttl=64 time=1464 ms 64 bytes from 192.168.0.1: icmp_seq=13 ttl=64 time=450 ms 64 bytes from 192.168.0.1: icmp_seq=15 ttl=64 time=1.23 ms 64 bytes from 192.168.0.1: icmp_seq=20 ttl=64 time=3587 ms 64 bytes from 192.168.0.1: icmp_seq=21 ttl=64 time=2567 ms 64 bytes from 192.168.0.1: icmp_seq=22 ttl=64 time=1546 ms 64 bytes from 192.168.0.1: icmp_seq=23 ttl=64 time=522 ms 64 bytes from 192.168.0.1: icmp_seq=24 ttl=64 time=2585 ms 64 bytes from 192.168.0.1: icmp_seq=25 ttl=64 time=1570 ms 64 bytes from 192.168.0.1: icmp_seq=26 ttl=64 time=546 ms 64 bytes from 192.168.0.1: icmp_seq=27 ttl=64 time=2042 ms 64 bytes from 192.168.0.1: icmp_seq=28 ttl=64 time=1026 ms 64 bytes from 192.168.0.1: icmp_seq=29 ttl=64 time=2.58 ms 64 bytes from 192.168.0.1: icmp_seq=34 ttl=64 time=1026 ms 64 bytes from 192.168.0.1: icmp_seq=35 ttl=64 time=2.20 ms 64 bytes from 192.168.0.1: icmp_seq=38 ttl=64 time=1.19 ms 64 bytes from 192.168.0.1: icmp_seq=41 ttl=64 time=4003 ms 64 bytes from 192.168.0.1: icmp_seq=42 ttl=64 time=2979 ms 64 bytes from 192.168.0.1: icmp_seq=43 ttl=64 time=1958 ms 64 bytes from 192.168.0.1: icmp_seq=44 ttl=64 time=934 ms 64 bytes from 192.168.0.1: icmp_seq=45 ttl=64 time=0.908 ms 64 bytes from 192.168.0.1: icmp_seq=48 ttl=64 time=1.65 ms 64 bytes from 192.168.0.1: icmp_seq=51 ttl=64 time=1.16 ms 64 bytes from 192.168.0.1: icmp_seq=52 ttl=64 time=1825 ms 64 bytes from 192.168.0.1: icmp_seq=53 ttl=64 time=811 ms 64 bytes from 192.168.0.1: icmp_seq=54 ttl=64 time=1081 ms 64 bytes from 192.168.0.1: icmp_seq=55 ttl=64 time=66.2 ms 64 bytes from 192.168.0.1: icmp_seq=56 ttl=64 time=2656 ms 64 bytes from 192.168.0.1: icmp_seq=61 ttl=64 time=1.16 ms 64 bytes from 192.168.0.1: icmp_seq=62 ttl=64 time=2.29 ms 64 bytes from 192.168.0.1: icmp_seq=63 ttl=64 time=2035 ms 64 bytes from 192.168.0.1: icmp_seq=64 ttl=64 time=1030 ms 64 bytes from 192.168.0.1: icmp_seq=65 ttl=64 time=3.12 ms 64 bytes from 192.168.0.1: icmp_seq=69 ttl=64 time=3080 ms 64 bytes from 192.168.0.1: icmp_seq=70 ttl=64 time=2057 ms 64 bytes from 192.168.0.1: icmp_seq=71 ttl=64 time=1033 ms 64 bytes from 192.168.0.1: icmp_seq=72 ttl=64 time=10.3 ms 64 bytes from 192.168.0.1: icmp_seq=74 ttl=64 time=1026 ms 64 bytes from 192.168.0.1: icmp_seq=75 ttl=64 time=2.20 ms 64 bytes from 192.168.0.1: icmp_seq=82 ttl=64 time=1.18 ms 64 bytes from 192.168.0.1: icmp_seq=84 ttl=64 time=1.45 ms 64 bytes from 192.168.0.1: icmp_seq=86 ttl=64 time=38.4 ms 64 bytes from 192.168.0.1: icmp_seq=87 ttl=64 time=1398 ms 64 bytes from 192.168.0.1: icmp_seq=88 ttl=64 time=388 ms 64 bytes from 192.168.0.1: icmp_seq=91 ttl=64 time=2.75 ms 64 bytes from 192.168.0.1: icmp_seq=96 ttl=64 time=1.16 ms From 192.168.0.100 icmp_seq=101 Destination Host Unreachable From 192.168.0.100 icmp_seq=102 Destination Host Unreachable From 192.168.0.100 icmp_seq=103 Destination Host Unreachable ^C --- 192.168.0.1 ping statistics --- 104 packets transmitted, 55 received, +3 errors, 47.1154% packet loss, time 104564ms rtt min/avg/max/mdev = 0.908/1180.168/5164.367/1279.558 ms, pipe 6 Channel 8 kernel@matrix-ESPRIMO-P710:~/Documents/git/kernels/staging$ ping 192.168.0.1 PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data. 64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=2.05 ms 64 bytes from 192.168.0.1: icmp_seq=4 ttl=64 time=10622 ms 64 bytes from 192.168.0.1: icmp_seq=5 ttl=64 time=9602 ms 64 bytes from 192.168.0.1: icmp_seq=6 ttl=64 time=8580 ms 64 bytes from 192.168.0.1: icmp_seq=7 ttl=64 time=7553 ms 64 bytes from 192.168.0.1: icmp_seq=8 ttl=64 time=6533 ms 64 bytes from 192.168.0.1: icmp_seq=9 ttl=64 time=379 ms 64 bytes from 192.168.0.1: icmp_seq=13 ttl=64 time=12034 ms 64 bytes from 192.168.0.1: icmp_seq=14 ttl=64 time=11010 ms 64 bytes from 192.168.0.1: icmp_seq=15 ttl=64 time=9990 ms 64 bytes from 192.168.0.1: icmp_seq=16 ttl=64 time=8967 ms 64 bytes from 192.168.0.1: icmp_seq=17 ttl=64 time=7944 ms 64 bytes from 192.168.0.1: icmp_seq=18 ttl=64 time=766 ms 64 bytes from 192.168.0.1: icmp_seq=20 ttl=64 time=1.20 ms 64 bytes from 192.168.0.1: icmp_seq=21 ttl=64 time=28892 ms 64 bytes from 192.168.0.1: icmp_seq=22 ttl=64 time=27879 ms 64 bytes from 192.168.0.1: icmp_seq=23 ttl=64 time=26859 ms 64 bytes from 192.168.0.1: icmp_seq=24 ttl=64 time=25837 ms 64 bytes from 192.168.0.1: icmp_seq=25 ttl=64 time=24813 ms 64 bytes from 192.168.0.1: icmp_seq=26 ttl=64 time=23790 ms 64 bytes from 192.168.0.1: icmp_seq=27 ttl=64 time=226 ms 64 bytes from 192.168.0.1: icmp_seq=28 ttl=64 time=28.2 ms 64 bytes from 192.168.0.1: icmp_seq=29 ttl=64 time=0.860 ms 64 bytes from 192.168.0.1: icmp_seq=30 ttl=64 time=24568 ms 64 bytes from 192.168.0.1: icmp_seq=31 ttl=64 time=23553 ms 64 bytes from 192.168.0.1: icmp_seq=32 ttl=64 time=22530 ms 64 bytes from 192.168.0.1: icmp_seq=33 ttl=64 time=21507 ms 64 bytes from 192.168.0.1: icmp_seq=34 ttl=64 time=20483 ms 64 bytes from 192.168.0.1: icmp_seq=35 ttl=64 time=19461 ms 64 bytes from 192.168.0.1: icmp_seq=36 ttl=64 time=3.59 ms 64 bytes from 192.168.0.1: icmp_seq=40 ttl=64 time=1262 ms 64 bytes from 192.168.0.1: icmp_seq=41 ttl=64 time=238 ms 64 bytes from 192.168.0.1: icmp_seq=42 ttl=64 time=5464 ms 64 bytes from 192.168.0.1: icmp_seq=43 ttl=64 time=4449 ms 64 bytes from 192.168.0.1: icmp_seq=44 ttl=64 time=3426 ms 64 bytes from 192.168.0.1: icmp_seq=45 ttl=64 time=2404 ms 64 bytes from 192.168.0.1: icmp_seq=46 ttl=64 time=1380 ms 64 bytes from 192.168.0.1: icmp_seq=47 ttl=64 time=357 ms 64 bytes from 192.168.0.1: icmp_seq=49 ttl=64 time=1026 ms 64 bytes from 192.168.0.1: icmp_seq=50 ttl=64 time=1.87 ms 64 bytes from 192.168.0.1: icmp_seq=55 ttl=64 time=9121 ms 64 bytes from 192.168.0.1: icmp_seq=56 ttl=64 time=8097 ms 64 bytes from 192.168.0.1: icmp_seq=57 ttl=64 time=7081 ms 64 bytes from 192.168.0.1: icmp_seq=58 ttl=64 time=6053 ms 64 bytes from 192.168.0.1: icmp_seq=59 ttl=64 time=5033 ms 64 bytes from 192.168.0.1: icmp_seq=60 ttl=64 time=928 ms 64 bytes from 192.168.0.1: icmp_seq=61 ttl=64 time=1.57 ms ^C --- 192.168.0.1 ping statistics --- 62 packets transmitted, 47 received, 24.1935% packet loss, time 117405ms rtt min/avg/max/mdev = 0.860/9377.356/28891.850/9451.513 ms, pipe 7 Channel 9 kernel@matrix-ESPRIMO-P710:~/Documents/git/kernels/staging$ ping 192.168.0.1 PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data. 64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=530 ms 64 bytes from 192.168.0.1: icmp_seq=2 ttl=64 time=5415 ms 64 bytes from 192.168.0.1: icmp_seq=3 ttl=64 time=4389 ms 64 bytes from 192.168.0.1: icmp_seq=4 ttl=64 time=3367 ms 64 bytes from 192.168.0.1: icmp_seq=5 ttl=64 time=2342 ms 64 bytes from 192.168.0.1: icmp_seq=6 ttl=64 time=1322 ms 64 bytes from 192.168.0.1: icmp_seq=7 ttl=64 time=298 ms 64 bytes from 192.168.0.1: icmp_seq=8 ttl=64 time=6751 ms 64 bytes from 192.168.0.1: icmp_seq=9 ttl=64 time=5737 ms 64 bytes from 192.168.0.1: icmp_seq=10 ttl=64 time=4713 ms 64 bytes from 192.168.0.1: icmp_seq=11 ttl=64 time=3686 ms 64 bytes from 192.168.0.1: icmp_seq=12 ttl=64 time=2666 ms 64 bytes from 192.168.0.1: icmp_seq=13 ttl=64 time=1642 ms 64 bytes from 192.168.0.1: icmp_seq=14 ttl=64 time=618 ms 64 bytes from 192.168.0.1: icmp_seq=15 ttl=64 time=1.98 ms 64 bytes from 192.168.0.1: icmp_seq=19 ttl=64 time=10797 ms 64 bytes from 192.168.0.1: icmp_seq=22 ttl=64 time=7726 ms 64 bytes from 192.168.0.1: icmp_seq=23 ttl=64 time=6707 ms 64 bytes from 192.168.0.1: icmp_seq=24 ttl=64 time=5683 ms 64 bytes from 192.168.0.1: icmp_seq=25 ttl=64 time=555 ms 64 bytes from 192.168.0.1: icmp_seq=31 ttl=64 time=24573 ms 64 bytes from 192.168.0.1: icmp_seq=32 ttl=64 time=23554 ms 64 bytes from 192.168.0.1: icmp_seq=33 ttl=64 time=22539 ms 64 bytes from 192.168.0.1: icmp_seq=34 ttl=64 time=21515 ms 64 bytes from 192.168.0.1: icmp_seq=35 ttl=64 time=20492 ms 64 bytes from 192.168.0.1: icmp_seq=36 ttl=64 time=1042 ms 64 bytes from 192.168.0.1: icmp_seq=37 ttl=64 time=26.6 ms 64 bytes from 192.168.0.1: icmp_seq=43 ttl=64 time=1.39 ms 64 bytes from 192.168.0.1: icmp_seq=46 ttl=64 time=1.83 ms 64 bytes from 192.168.0.1: icmp_seq=47 ttl=64 time=4576 ms 64 bytes from 192.168.0.1: icmp_seq=48 ttl=64 time=3562 ms 64 bytes from 192.168.0.1: icmp_seq=49 ttl=64 time=2538 ms 64 bytes from 192.168.0.1: icmp_seq=50 ttl=64 time=1514 ms 64 bytes from 192.168.0.1: icmp_seq=51 ttl=64 time=486 ms 64 bytes from 192.168.0.1: icmp_seq=53 ttl=64 time=56133 ms 64 bytes from 192.168.0.1: icmp_seq=54 ttl=64 time=55109 ms 64 bytes from 192.168.0.1: icmp_seq=55 ttl=64 time=54086 ms 64 bytes from 192.168.0.1: icmp_seq=56 ttl=64 time=53058 ms 64 bytes from 192.168.0.1: icmp_seq=57 ttl=64 time=52034 ms 64 bytes from 192.168.0.1: icmp_seq=58 ttl=64 time=829 ms 64 bytes from 192.168.0.1: icmp_seq=60 ttl=64 time=1021 ms 64 bytes from 192.168.0.1: icmp_seq=61 ttl=64 time=1.21 ms ^C --- 192.168.0.1 ping statistics --- 61 packets transmitted, 42 received, 31.1475% packet loss, time 133834ms rtt min/avg/max/mdev = 1.210/11277.187/56132.925/17137.608 ms, pipe 7 Channel 10 - 13 untested
On Fri, Oct 13, 2023, at 08:42, 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 should take into account how good the wlan connection is. > This of course leads to tests on real hardware. I do have a vt6655. > Please have a look at the test results below. In a nutshell it is a very > bumpy connection you get with vt6655. You can have issues to connect on > every channel and data is coming in waves. So sometimes you will almost > not notice you have a wlan connection and then it takes very long to > load the next site. Ping times up to 80 seconds. Packet losses up to > 40%. So I assume all users have gone away from this module as it is not > comfortable. > > Do you think this helps you? > > I do have two vt6656 hardware as well. Are you interested in tests? > I can do a patch to remove vt6655. Do you think it makes sense? > > Thanks for your support. Hi Philipp, My vague feeling is that bad performance on its own is not enough justification to remove the driver without some other reason. From what I can tell in the logs, Malcolm Priestley made good progress on cleaning up theses driver, converting it to mac80211 and sending improvements until 2020. At the moment, I'd suggest focusing on the drivers that still use wext (git grep -w iw_handler_def drivers), if we can show that rtl8192e, rtl8712 or ks7010 have been broken for a while, removing those would help with removing wext altogether. Arnd
On Thu, Oct 12, 2023, at 18:36, Geoff Levand wrote: > On 10/12/23 17:41, Johannes Berg wrote: >> But seriously - is it worth to try to keep a wireless driver for it if >> we don't even know anyone using a PS3 at all? > > There is still a considerable user base for the PS3, so we > must keep the ps3-gelic-wireless driver. Do you know if anyone has tried changing this driver over to the cfg80211 interface from the wireless extensions? With the series I have prepared now, it is the only driver outside of drivers/staging that still uses wext and stops us from removing that altogether. [side note: it appears that the PS3 I have is the only model without wireless networking, as I bought cheapest Asian 20GB version back in early 2007. It still has the original firmware on it and should run Linux, but I haven't tried it since at least 2009]. Arnd
On 10/13/23 10:36, Arnd Bergmann wrote: > At the moment, I'd suggest focusing on the drivers that still use wext (git grep > -w iw_handler_def drivers), if we can show that rtl8192e, rtl8712 or ks7010 have > been broken for a while, removing those would help with removing wext altogether. I do not know about the the others, but rtl8712 is still in use according to the flow of questions I see on a GitHub repo that I maintain. There has been some recent effort to convert rtl8192e to use cfg/nl/mac80211. That one is problematic as it has the same PCI_ID as RTL8192SE, but the drivers differ. Note the special code in the probe routine of drivers/net/wireless/realtek/rtlwifi/rtl8192se to detect if the wrong one has triggered the routine. That code should also be in the probe routine for RTL8192E with the test negated. I have both devices, but it has been a long time since I actually used either of them. I also have an rtl8712 device, thus I should be available for testing. Larry
On Fri, 2023-10-13 at 17:44 +0200, Arnd Bergmann wrote: > On Thu, Oct 12, 2023, at 18:36, Geoff Levand wrote: > > On 10/12/23 17:41, Johannes Berg wrote: > > > But seriously - is it worth to try to keep a wireless driver for it if > > > we don't even know anyone using a PS3 at all? > > > > There is still a considerable user base for the PS3, so we > > must keep the ps3-gelic-wireless driver. > > Do you know if anyone has tried changing this driver over to the > cfg80211 interface from the wireless extensions? I looked at that yesterday, and sadly I _think_ it's not even possible, there are some corner cases in it like "no WPA2" that don't seem to be fully covered in cfg80211/nl80211, at least not with the APIs today and with current versions of wpa_supplicant. It might still be doable because things like WPA_DRIVER_CAPA_KEY_MGMT_WPA2_PSK don't really seem to be used much in wpa_supplicant, but we'd have to carefully test that I guess. Also, it depends on the PS3 firmware version whether or not that's supported. Then again, arguably wifi without WPA2 is pretty much useless these days? johannes
On 10/13/23 17:36, Arnd Bergmann wrote: > At the moment, I'd suggest focusing on the drivers that still use wext > (git grep -w iw_handler_def drivers), if we can show that rtl8192e, > rtl8712 or ks7010 have been broken for a while, removing those would > help with removing wext altogether. Hi, __rtl8192e__ this hardware is available on ebay 13 times. ping statistics: 1191 packets transmitted, 1191 received, 0% packet loss, time 1192169ms rtt min/avg/max/mdev = 0.633/2.184/74.792/3.157 ms maximum download 12,5 MByte/s __rtl8712__ stick packard bell AW-NU120 ping statistics: 678 packets transmitted, 652 received, 3.83481% packet loss, time 678287ms rtt min/avg/max/mdev = 0.943/4.835/231.435/17.900 ms maximum download 12,5 MByte/s I would like to remove the private functions as the "wireless tools" package is deprecated. The following functions are available: kernel@matrix-ESPRIMO-P710:~/Documents/git/kernels/staging$ iwpriv wlan0 wlan0 Available private ioctls : read32 (8BE0) : set 1 int & get 0 write32 (8BE1) : set 1 int & get 0 driver_ext (8BE2) : set 0 & get 0 mp_ioctl (8BE3) : set 0 & get 0 apinfo (8BE4) : set 1 int & get 0 setpid (8BE5) : set 1 int & get 0 wps_start (8BE6) : set 1 int & get 0 chplan (8BE7) : set 1 int & get 0 What do you think about this? Thanks Bye Philipp
On Sun, Oct 15, 2023, at 20:42, Philipp Hortmann wrote: > On 10/13/23 17:36, Arnd Bergmann wrote: >> At the moment, I'd suggest focusing on the drivers that still use wext >> (git grep -w iw_handler_def drivers), if we can show that rtl8192e, >> rtl8712 or ks7010 have been broken for a while, removing those would >> help with removing wext altogether. > > > Hi, > > __rtl8192e__ > this hardware is available on ebay 13 times. > ping statistics: > 1191 packets transmitted, 1191 received, 0% packet loss, time 1192169ms > rtt min/avg/max/mdev = 0.633/2.184/74.792/3.157 ms > maximum download 12,5 MByte/s > > __rtl8712__ > stick packard bell AW-NU120 > ping statistics: > 678 packets transmitted, 652 received, 3.83481% packet loss, time 678287ms > rtt min/avg/max/mdev = 0.943/4.835/231.435/17.900 ms > maximum download 12,5 MByte/s > > I would like to remove the private functions as the "wireless tools" > package is deprecated. The following functions are available: > kernel@matrix-ESPRIMO-P710:~/Documents/git/kernels/staging$ iwpriv wlan0 > wlan0 Available private ioctls : > read32 (8BE0) : set 1 int & get 0 > write32 (8BE1) : set 1 int & get 0 > driver_ext (8BE2) : set 0 & get 0 > mp_ioctl (8BE3) : set 0 & get 0 > apinfo (8BE4) : set 1 int & get 0 > setpid (8BE5) : set 1 int & get 0 > wps_start (8BE6) : set 1 int & get 0 > chplan (8BE7) : set 1 int & get 0 > > What do you think about this? Larry is the maintainer for rtl8712, so he'd be the one to answer this. Out of the four drivers that are left using wext after my current draft removal series, only ks7010 and rtl8712 use the private handlers, so in theory we could remove the CONFIG_WEXT_PRIV first, but I'm not sure that makes any difference if the plan is to convert all wext drivers to cfg80211 anyway. Arnd
On 10/13/2023 11:02 AM, Johannes Berg wrote: > On Fri, 2023-10-13 at 17:44 +0200, Arnd Bergmann wrote: >> On Thu, Oct 12, 2023, at 18:36, Geoff Levand wrote: >>> On 10/12/23 17:41, Johannes Berg wrote: >>>> But seriously - is it worth to try to keep a wireless driver for it if >>>> we don't even know anyone using a PS3 at all? >>> >>> There is still a considerable user base for the PS3, so we >>> must keep the ps3-gelic-wireless driver. >> >> Do you know if anyone has tried changing this driver over to the >> cfg80211 interface from the wireless extensions? > > I looked at that yesterday, and sadly I _think_ it's not even possible, > there are some corner cases in it like "no WPA2" that don't seem to be > fully covered in cfg80211/nl80211, at least not with the APIs today and > with current versions of wpa_supplicant. > > It might still be doable because things like > WPA_DRIVER_CAPA_KEY_MGMT_WPA2_PSK don't really seem to be used much in > wpa_supplicant, but we'd have to carefully test that I guess. > > Also, it depends on the PS3 firmware version whether or not that's > supported. > > Then again, arguably wifi without WPA2 is pretty much useless these > days? This is a good point. It doesn't matter if the clients work if there are no Access Points to connect to. And if you do have an old one you can connect to, it will be an insecure connection. Wardriving, anyone? /jeff
diff --git a/MAINTAINERS b/MAINTAINERS index e9e30ec6748ec..826c36d421dd1 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2389,7 +2389,7 @@ F: drivers/memory/atmel* F: drivers/watchdog/sama5d4_wdt.c F: include/soc/at91/ X: drivers/input/touchscreen/atmel_mxt_ts.c -X: drivers/net/wireless/atmel/ +X: drivers/staging/wireless/atmel/ N: at91 N: atmel @@ -3298,7 +3298,7 @@ L: linux-wireless@vger.kernel.org S: Orphan W: http://www.thekelleys.org.uk/atmel W: http://atmelwlandriver.sourceforge.net/ -F: drivers/net/wireless/atmel/atmel* +F: drivers/staging/wireless/atmel/atmel* ATOMIC INFRASTRUCTURE M: Will Deacon <will@kernel.org> @@ -9630,7 +9630,7 @@ F: drivers/iio/pressure/mprls0025pa.c HOST AP DRIVER L: linux-wireless@vger.kernel.org S: Obsolete -F: drivers/net/wireless/intersil/hostap/ +F: drivers/staging/wireless/hostap/ HP BIOSCFG DRIVER M: Jorge Lopez <jorge.lopez2@hp.com> @@ -16208,7 +16208,7 @@ L: linux-wireless@vger.kernel.org S: Orphan W: https://wireless.wiki.kernel.org/en/users/Drivers/orinoco W: http://www.nongnu.org/orinoco/ -F: drivers/net/wireless/intersil/orinoco/ +F: drivers/staging/wireless/orinoco/ OV2659 OMNIVISION SENSOR DRIVER M: "Lad, Prabhakar" <prabhakar.csengg@gmail.com> @@ -18120,7 +18120,7 @@ F: include/ras/ras_event.h RAYLINK/WEBGEAR 802.11 WIRELESS LAN DRIVER L: linux-wireless@vger.kernel.org S: Orphan -F: drivers/net/wireless/legacy/ray* +F: drivers/staging/wireless/legacy/ray* RC-CORE / LIRC FRAMEWORK M: Sean Young <sean@mess.org> @@ -22594,7 +22594,7 @@ F: include/uapi/linux/usb/g_uvc.h USB WIRELESS RNDIS DRIVER (rndis_wlan) L: linux-wireless@vger.kernel.org S: Orphan -F: drivers/net/wireless/legacy/rndis_wlan.c +F: drivers/staging/wireless/legacy/rndis_wlan.c USB XHCI DRIVER M: Mathias Nyman <mathias.nyman@intel.com> @@ -22607,7 +22607,7 @@ USB ZD1201 DRIVER L: linux-wireless@vger.kernel.org S: Orphan W: http://linux-lc100020.sourceforge.net -F: drivers/net/wireless/zydas/zd1201.* +F: drivers/staging/wireless/zydas/zd1201.* USER DATAGRAM PROTOCOL (UDP) M: Willem de Bruijn <willemdebruijn.kernel@gmail.com> @@ -23419,7 +23419,7 @@ F: drivers/input/misc/wistron_btns.c WL3501 WIRELESS PCMCIA CARD DRIVER L: linux-wireless@vger.kernel.org S: Orphan -F: drivers/net/wireless/legacy/wl3501* +F: drivers/staging/wireless/legacy/wl3501* WMI BINARY MOF DRIVER M: Armin Wolf <W_Armin@gmx.de> diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig index 7555af5195ec3..35a805e10991e 100644 --- a/drivers/net/wireless/Kconfig +++ b/drivers/net/wireless/Kconfig @@ -20,9 +20,7 @@ if WLAN source "drivers/net/wireless/admtek/Kconfig" source "drivers/net/wireless/ath/Kconfig" -source "drivers/net/wireless/atmel/Kconfig" source "drivers/net/wireless/broadcom/Kconfig" -source "drivers/net/wireless/cisco/Kconfig" source "drivers/net/wireless/intel/Kconfig" source "drivers/net/wireless/intersil/Kconfig" source "drivers/net/wireless/marvell/Kconfig" @@ -38,8 +36,6 @@ source "drivers/net/wireless/ti/Kconfig" source "drivers/net/wireless/zydas/Kconfig" source "drivers/net/wireless/quantenna/Kconfig" -source "drivers/net/wireless/legacy/Kconfig" - source "drivers/net/wireless/virtual/Kconfig" endif # WLAN diff --git a/drivers/net/wireless/Makefile b/drivers/net/wireless/Makefile index 4d7374d567d18..e1c4141c60044 100644 --- a/drivers/net/wireless/Makefile +++ b/drivers/net/wireless/Makefile @@ -7,7 +7,6 @@ obj-$(CONFIG_WLAN_VENDOR_ADMTEK) += admtek/ obj-$(CONFIG_WLAN_VENDOR_ATH) += ath/ obj-$(CONFIG_WLAN_VENDOR_ATMEL) += atmel/ obj-$(CONFIG_WLAN_VENDOR_BROADCOM) += broadcom/ -obj-$(CONFIG_WLAN_VENDOR_CISCO) += cisco/ obj-$(CONFIG_WLAN_VENDOR_INTEL) += intel/ obj-$(CONFIG_WLAN_VENDOR_INTERSIL) += intersil/ obj-$(CONFIG_WLAN_VENDOR_MARVELL) += marvell/ @@ -23,5 +22,4 @@ obj-$(CONFIG_WLAN_VENDOR_ST) += st/ obj-$(CONFIG_WLAN_VENDOR_TI) += ti/ obj-$(CONFIG_WLAN_VENDOR_ZYDAS) += zydas/ -obj-$(CONFIG_WLAN) += legacy/ obj-$(CONFIG_WLAN) += virtual/ diff --git a/drivers/net/wireless/atmel/Kconfig b/drivers/net/wireless/atmel/Kconfig index bafdd57b049a1..7a2bb7a58ab7e 100644 --- a/drivers/net/wireless/atmel/Kconfig +++ b/drivers/net/wireless/atmel/Kconfig @@ -12,41 +12,6 @@ config WLAN_VENDOR_ATMEL if WLAN_VENDOR_ATMEL -config ATMEL - tristate "Atmel at76c50x chipset 802.11b support" - depends on CFG80211 && (PCI || PCMCIA) && HAS_IOPORT - select WIRELESS_EXT - select WEXT_PRIV - select FW_LOADER - select CRC32 - help - A driver 802.11b wireless cards based on the Atmel fast-vnet - chips. This driver supports standard Linux wireless extensions. - - Many cards based on this chipset do not have flash memory - and need their firmware loaded at start-up. If yours is - one of these, you will need to provide a firmware image - to be loaded into the card by the driver. The Atmel - firmware package can be downloaded from - <http://www.thekelleys.org.uk/atmel> - -config PCI_ATMEL - tristate "Atmel at76c506 PCI cards" - depends on ATMEL && PCI - help - Enable support for PCI and mini-PCI cards containing the - Atmel at76c506 chip. - -config PCMCIA_ATMEL - tristate "Atmel at76c502/at76c504 PCMCIA cards" - depends on ATMEL && PCMCIA - select WIRELESS_EXT - select FW_LOADER - select CRC32 - help - Enable support for PCMCIA cards containing the - Atmel at76c502 and at76c504 chips. - config AT76C50X_USB tristate "Atmel at76c503/at76c505/at76c505a USB cards" depends on MAC80211 && USB diff --git a/drivers/net/wireless/atmel/Makefile b/drivers/net/wireless/atmel/Makefile index 17e62805677d4..8338d7098ba60 100644 --- a/drivers/net/wireless/atmel/Makefile +++ b/drivers/net/wireless/atmel/Makefile @@ -1,6 +1,2 @@ # SPDX-License-Identifier: GPL-2.0-only -obj-$(CONFIG_ATMEL) += atmel.o -obj-$(CONFIG_PCI_ATMEL) += atmel_pci.o -obj-$(CONFIG_PCMCIA_ATMEL) += atmel_cs.o - obj-$(CONFIG_AT76C50X_USB) += at76c50x-usb.o diff --git a/drivers/net/wireless/intersil/Kconfig b/drivers/net/wireless/intersil/Kconfig index bd6bf70ece03d..201b1534a9ca2 100644 --- a/drivers/net/wireless/intersil/Kconfig +++ b/drivers/net/wireless/intersil/Kconfig @@ -12,8 +12,6 @@ config WLAN_VENDOR_INTERSIL if WLAN_VENDOR_INTERSIL -source "drivers/net/wireless/intersil/hostap/Kconfig" -source "drivers/net/wireless/intersil/orinoco/Kconfig" source "drivers/net/wireless/intersil/p54/Kconfig" endif # WLAN_VENDOR_INTERSIL diff --git a/drivers/net/wireless/intersil/Makefile b/drivers/net/wireless/intersil/Makefile index 65281d1b3d852..27e9b2869da1a 100644 --- a/drivers/net/wireless/intersil/Makefile +++ b/drivers/net/wireless/intersil/Makefile @@ -1,4 +1,2 @@ # SPDX-License-Identifier: GPL-2.0-only -obj-$(CONFIG_HOSTAP) += hostap/ -obj-$(CONFIG_HERMES) += orinoco/ obj-$(CONFIG_P54_COMMON) += p54/ diff --git a/drivers/net/wireless/zydas/Kconfig b/drivers/net/wireless/zydas/Kconfig index 08574433df66f..839e1217e855c 100644 --- a/drivers/net/wireless/zydas/Kconfig +++ b/drivers/net/wireless/zydas/Kconfig @@ -12,25 +12,6 @@ config WLAN_VENDOR_ZYDAS if WLAN_VENDOR_ZYDAS -config USB_ZD1201 - tristate "USB ZD1201 based Wireless device support" - depends on CFG80211 && USB - select WIRELESS_EXT - select WEXT_PRIV - select FW_LOADER - help - Say Y if you want to use wireless LAN adapters based on the ZyDAS - ZD1201 chip. - - This driver makes the adapter appear as a normal Ethernet interface, - typically on wlan0. - - The zd1201 device requires external firmware to be loaded. - This can be found at http://linux-lc100020.sourceforge.net/ - - To compile this driver as a module, choose M here: the - module will be called zd1201. - source "drivers/net/wireless/zydas/zd1211rw/Kconfig" endif # WLAN_VENDOR_ZYDAS diff --git a/drivers/net/wireless/zydas/Makefile b/drivers/net/wireless/zydas/Makefile index c70003d30a8fb..3e0a51db98742 100644 --- a/drivers/net/wireless/zydas/Makefile +++ b/drivers/net/wireless/zydas/Makefile @@ -1,4 +1,2 @@ # SPDX-License-Identifier: GPL-2.0-only obj-$(CONFIG_ZD1211RW) += zd1211rw/ - -obj-$(CONFIG_USB_ZD1201) += zd1201.o diff --git a/drivers/staging/Kconfig b/drivers/staging/Kconfig index f9aef39cac2e9..8206d994f144d 100644 --- a/drivers/staging/Kconfig +++ b/drivers/staging/Kconfig @@ -36,6 +36,8 @@ source "drivers/staging/rtl8723bs/Kconfig" source "drivers/staging/rtl8712/Kconfig" +source "drivers/staging/wireless/Kconfig" + source "drivers/staging/rts5208/Kconfig" source "drivers/staging/octeon/Kconfig" diff --git a/drivers/staging/Makefile b/drivers/staging/Makefile index ffa70dda481d3..43c7e7a23b296 100644 --- a/drivers/staging/Makefile +++ b/drivers/staging/Makefile @@ -13,6 +13,7 @@ obj-$(CONFIG_OCTEON_ETHERNET) += octeon/ obj-$(CONFIG_VT6655) += vt6655/ obj-$(CONFIG_VT6656) += vt6656/ obj-$(CONFIG_VME_BUS) += vme_user/ +obj-$(CONFIG_WLAN) += wireless/ obj-$(CONFIG_IIO) += iio/ obj-$(CONFIG_FB_SM750) += sm750fb/ obj-$(CONFIG_USB_EMXX) += emxx_udc/ diff --git a/drivers/staging/wireless/Kconfig b/drivers/staging/wireless/Kconfig new file mode 100644 index 0000000000000..a8ce42aa3e944 --- /dev/null +++ b/drivers/staging/wireless/Kconfig @@ -0,0 +1,11 @@ +# SPDX-License-Identifier: GPL-2.0 +if WIRELESS + +source "drivers/staging/wireless/atmel/Kconfig" +source "drivers/staging/wireless/cisco/Kconfig" +source "drivers/staging/wireless/hostap/Kconfig" +source "drivers/staging/wireless/legacy/Kconfig" +source "drivers/staging/wireless/orinoco/Kconfig" +source "drivers/staging/wireless/zydas/Kconfig" + +endif diff --git a/drivers/staging/wireless/Makefile b/drivers/staging/wireless/Makefile new file mode 100644 index 0000000000000..33179fca40953 --- /dev/null +++ b/drivers/staging/wireless/Makefile @@ -0,0 +1,8 @@ +# SPDX-License-Identifier: GPL-2.0 + +obj-y += atmel/ +obj-y += cisco/ +obj-y += hostap/ +obj-y += legacy/ +obj-y += orinoco/ +obj-y += zydas/ diff --git a/drivers/staging/wireless/TODO b/drivers/staging/wireless/TODO new file mode 100644 index 0000000000000..7a3c1b6e7db41 --- /dev/null +++ b/drivers/staging/wireless/TODO @@ -0,0 +1,11 @@ +TODO (Oct. 2023) + +These 802.11(b) wireless drivers are likely all unused and can be removed +in the near future, unless we find a reason to keep them. + +All except the rndis_wlan driver still rely on the deprecated wireless +extension ioctl interface, which in modern drivers is only provided +as an emulation layer on top of the cfg80211 interface. + +Ideally, any drivers we want to keep around should be converted to no +longer require iw_handler_def. diff --git a/drivers/staging/wireless/atmel/Kconfig b/drivers/staging/wireless/atmel/Kconfig new file mode 100644 index 0000000000000..5771c82966347 --- /dev/null +++ b/drivers/staging/wireless/atmel/Kconfig @@ -0,0 +1,35 @@ +# SPDX-License-Identifier: GPL-2.0-only +config ATMEL + tristate "Atmel at76c50x chipset 802.11b support" + depends on CFG80211 && (PCI || PCMCIA) && HAS_IOPORT + select WIRELESS_EXT + select WEXT_PRIV + select FW_LOADER + select CRC32 + help + A driver 802.11b wireless cards based on the Atmel fast-vnet + chips. This driver supports standard Linux wireless extensions. + + Many cards based on this chipset do not have flash memory + and need their firmware loaded at start-up. If yours is + one of these, you will need to provide a firmware image + to be loaded into the card by the driver. The Atmel + firmware package can be downloaded from + <http://www.thekelleys.org.uk/atmel> + +config PCI_ATMEL + tristate "Atmel at76c506 PCI cards" + depends on ATMEL && PCI + help + Enable support for PCI and mini-PCI cards containing the + Atmel at76c506 chip. + +config PCMCIA_ATMEL + tristate "Atmel at76c502/at76c504 PCMCIA cards" + depends on ATMEL && PCMCIA + select WIRELESS_EXT + select FW_LOADER + select CRC32 + help + Enable support for PCMCIA cards containing the + Atmel at76c502 and at76c504 chips. diff --git a/drivers/staging/wireless/atmel/Makefile b/drivers/staging/wireless/atmel/Makefile new file mode 100644 index 0000000000000..31d81bcd7ff7f --- /dev/null +++ b/drivers/staging/wireless/atmel/Makefile @@ -0,0 +1,6 @@ +# SPDX-License-Identifier: GPL-2.0-only +obj-$(CONFIG_ATMEL) += atmel.o +obj-$(CONFIG_PCI_ATMEL) += atmel_pci.o +obj-$(CONFIG_PCMCIA_ATMEL) += atmel_cs.o + + diff --git a/drivers/net/wireless/atmel/atmel.c b/drivers/staging/wireless/atmel/atmel.c similarity index 100% rename from drivers/net/wireless/atmel/atmel.c rename to drivers/staging/wireless/atmel/atmel.c diff --git a/drivers/net/wireless/atmel/atmel.h b/drivers/staging/wireless/atmel/atmel.h similarity index 100% rename from drivers/net/wireless/atmel/atmel.h rename to drivers/staging/wireless/atmel/atmel.h diff --git a/drivers/net/wireless/atmel/atmel_cs.c b/drivers/staging/wireless/atmel/atmel_cs.c similarity index 100% rename from drivers/net/wireless/atmel/atmel_cs.c rename to drivers/staging/wireless/atmel/atmel_cs.c diff --git a/drivers/net/wireless/atmel/atmel_pci.c b/drivers/staging/wireless/atmel/atmel_pci.c similarity index 100% rename from drivers/net/wireless/atmel/atmel_pci.c rename to drivers/staging/wireless/atmel/atmel_pci.c diff --git a/drivers/net/wireless/cisco/Kconfig b/drivers/staging/wireless/cisco/Kconfig similarity index 100% rename from drivers/net/wireless/cisco/Kconfig rename to drivers/staging/wireless/cisco/Kconfig diff --git a/drivers/net/wireless/cisco/Makefile b/drivers/staging/wireless/cisco/Makefile similarity index 100% rename from drivers/net/wireless/cisco/Makefile rename to drivers/staging/wireless/cisco/Makefile diff --git a/drivers/net/wireless/cisco/airo.c b/drivers/staging/wireless/cisco/airo.c similarity index 100% rename from drivers/net/wireless/cisco/airo.c rename to drivers/staging/wireless/cisco/airo.c diff --git a/drivers/net/wireless/cisco/airo.h b/drivers/staging/wireless/cisco/airo.h similarity index 100% rename from drivers/net/wireless/cisco/airo.h rename to drivers/staging/wireless/cisco/airo.h diff --git a/drivers/net/wireless/cisco/airo_cs.c b/drivers/staging/wireless/cisco/airo_cs.c similarity index 100% rename from drivers/net/wireless/cisco/airo_cs.c rename to drivers/staging/wireless/cisco/airo_cs.c diff --git a/drivers/net/wireless/intersil/hostap/Kconfig b/drivers/staging/wireless/hostap/Kconfig similarity index 98% rename from drivers/net/wireless/intersil/hostap/Kconfig rename to drivers/staging/wireless/hostap/Kconfig index 2edff8efbcbb1..2a7072d1e7dd6 100644 --- a/drivers/net/wireless/intersil/hostap/Kconfig +++ b/drivers/staging/wireless/hostap/Kconfig @@ -1,6 +1,7 @@ # SPDX-License-Identifier: GPL-2.0-only config HOSTAP tristate "IEEE 802.11 for Host AP (Prism2/2.5/3 and WEP/TKIP/CCMP)" + depends on (PCMCIA || PCI) && HAS_IOPORT select WIRELESS_EXT select WEXT_SPY select WEXT_PRIV diff --git a/drivers/net/wireless/intersil/hostap/Makefile b/drivers/staging/wireless/hostap/Makefile similarity index 100% rename from drivers/net/wireless/intersil/hostap/Makefile rename to drivers/staging/wireless/hostap/Makefile diff --git a/drivers/net/wireless/intersil/hostap/hostap.h b/drivers/staging/wireless/hostap/hostap.h similarity index 100% rename from drivers/net/wireless/intersil/hostap/hostap.h rename to drivers/staging/wireless/hostap/hostap.h diff --git a/drivers/net/wireless/intersil/hostap/hostap_80211.h b/drivers/staging/wireless/hostap/hostap_80211.h similarity index 100% rename from drivers/net/wireless/intersil/hostap/hostap_80211.h rename to drivers/staging/wireless/hostap/hostap_80211.h diff --git a/drivers/net/wireless/intersil/hostap/hostap_80211_rx.c b/drivers/staging/wireless/hostap/hostap_80211_rx.c similarity index 100% rename from drivers/net/wireless/intersil/hostap/hostap_80211_rx.c rename to drivers/staging/wireless/hostap/hostap_80211_rx.c diff --git a/drivers/net/wireless/intersil/hostap/hostap_80211_tx.c b/drivers/staging/wireless/hostap/hostap_80211_tx.c similarity index 100% rename from drivers/net/wireless/intersil/hostap/hostap_80211_tx.c rename to drivers/staging/wireless/hostap/hostap_80211_tx.c diff --git a/drivers/net/wireless/intersil/hostap/hostap_ap.c b/drivers/staging/wireless/hostap/hostap_ap.c similarity index 100% rename from drivers/net/wireless/intersil/hostap/hostap_ap.c rename to drivers/staging/wireless/hostap/hostap_ap.c diff --git a/drivers/net/wireless/intersil/hostap/hostap_ap.h b/drivers/staging/wireless/hostap/hostap_ap.h similarity index 100% rename from drivers/net/wireless/intersil/hostap/hostap_ap.h rename to drivers/staging/wireless/hostap/hostap_ap.h diff --git a/drivers/net/wireless/intersil/hostap/hostap_common.h b/drivers/staging/wireless/hostap/hostap_common.h similarity index 100% rename from drivers/net/wireless/intersil/hostap/hostap_common.h rename to drivers/staging/wireless/hostap/hostap_common.h diff --git a/drivers/net/wireless/intersil/hostap/hostap_config.h b/drivers/staging/wireless/hostap/hostap_config.h similarity index 100% rename from drivers/net/wireless/intersil/hostap/hostap_config.h rename to drivers/staging/wireless/hostap/hostap_config.h diff --git a/drivers/net/wireless/intersil/hostap/hostap_cs.c b/drivers/staging/wireless/hostap/hostap_cs.c similarity index 100% rename from drivers/net/wireless/intersil/hostap/hostap_cs.c rename to drivers/staging/wireless/hostap/hostap_cs.c diff --git a/drivers/net/wireless/intersil/hostap/hostap_download.c b/drivers/staging/wireless/hostap/hostap_download.c similarity index 100% rename from drivers/net/wireless/intersil/hostap/hostap_download.c rename to drivers/staging/wireless/hostap/hostap_download.c diff --git a/drivers/net/wireless/intersil/hostap/hostap_hw.c b/drivers/staging/wireless/hostap/hostap_hw.c similarity index 100% rename from drivers/net/wireless/intersil/hostap/hostap_hw.c rename to drivers/staging/wireless/hostap/hostap_hw.c diff --git a/drivers/net/wireless/intersil/hostap/hostap_info.c b/drivers/staging/wireless/hostap/hostap_info.c similarity index 100% rename from drivers/net/wireless/intersil/hostap/hostap_info.c rename to drivers/staging/wireless/hostap/hostap_info.c diff --git a/drivers/net/wireless/intersil/hostap/hostap_ioctl.c b/drivers/staging/wireless/hostap/hostap_ioctl.c similarity index 100% rename from drivers/net/wireless/intersil/hostap/hostap_ioctl.c rename to drivers/staging/wireless/hostap/hostap_ioctl.c diff --git a/drivers/net/wireless/intersil/hostap/hostap_main.c b/drivers/staging/wireless/hostap/hostap_main.c similarity index 100% rename from drivers/net/wireless/intersil/hostap/hostap_main.c rename to drivers/staging/wireless/hostap/hostap_main.c diff --git a/drivers/net/wireless/intersil/hostap/hostap_pci.c b/drivers/staging/wireless/hostap/hostap_pci.c similarity index 100% rename from drivers/net/wireless/intersil/hostap/hostap_pci.c rename to drivers/staging/wireless/hostap/hostap_pci.c diff --git a/drivers/net/wireless/intersil/hostap/hostap_plx.c b/drivers/staging/wireless/hostap/hostap_plx.c similarity index 100% rename from drivers/net/wireless/intersil/hostap/hostap_plx.c rename to drivers/staging/wireless/hostap/hostap_plx.c diff --git a/drivers/net/wireless/intersil/hostap/hostap_proc.c b/drivers/staging/wireless/hostap/hostap_proc.c similarity index 100% rename from drivers/net/wireless/intersil/hostap/hostap_proc.c rename to drivers/staging/wireless/hostap/hostap_proc.c diff --git a/drivers/net/wireless/intersil/hostap/hostap_wlan.h b/drivers/staging/wireless/hostap/hostap_wlan.h similarity index 100% rename from drivers/net/wireless/intersil/hostap/hostap_wlan.h rename to drivers/staging/wireless/hostap/hostap_wlan.h diff --git a/drivers/net/wireless/legacy/Kconfig b/drivers/staging/wireless/legacy/Kconfig similarity index 100% rename from drivers/net/wireless/legacy/Kconfig rename to drivers/staging/wireless/legacy/Kconfig diff --git a/drivers/net/wireless/legacy/Makefile b/drivers/staging/wireless/legacy/Makefile similarity index 100% rename from drivers/net/wireless/legacy/Makefile rename to drivers/staging/wireless/legacy/Makefile diff --git a/drivers/net/wireless/legacy/ray_cs.c b/drivers/staging/wireless/legacy/ray_cs.c similarity index 100% rename from drivers/net/wireless/legacy/ray_cs.c rename to drivers/staging/wireless/legacy/ray_cs.c diff --git a/drivers/net/wireless/legacy/ray_cs.h b/drivers/staging/wireless/legacy/ray_cs.h similarity index 100% rename from drivers/net/wireless/legacy/ray_cs.h rename to drivers/staging/wireless/legacy/ray_cs.h diff --git a/drivers/net/wireless/legacy/rayctl.h b/drivers/staging/wireless/legacy/rayctl.h similarity index 100% rename from drivers/net/wireless/legacy/rayctl.h rename to drivers/staging/wireless/legacy/rayctl.h diff --git a/drivers/net/wireless/legacy/rndis_wlan.c b/drivers/staging/wireless/legacy/rndis_wlan.c similarity index 100% rename from drivers/net/wireless/legacy/rndis_wlan.c rename to drivers/staging/wireless/legacy/rndis_wlan.c diff --git a/drivers/net/wireless/legacy/wl3501.h b/drivers/staging/wireless/legacy/wl3501.h similarity index 100% rename from drivers/net/wireless/legacy/wl3501.h rename to drivers/staging/wireless/legacy/wl3501.h diff --git a/drivers/net/wireless/legacy/wl3501_cs.c b/drivers/staging/wireless/legacy/wl3501_cs.c similarity index 100% rename from drivers/net/wireless/legacy/wl3501_cs.c rename to drivers/staging/wireless/legacy/wl3501_cs.c diff --git a/drivers/net/wireless/intersil/orinoco/Kconfig b/drivers/staging/wireless/orinoco/Kconfig similarity index 100% rename from drivers/net/wireless/intersil/orinoco/Kconfig rename to drivers/staging/wireless/orinoco/Kconfig diff --git a/drivers/net/wireless/intersil/orinoco/Makefile b/drivers/staging/wireless/orinoco/Makefile similarity index 100% rename from drivers/net/wireless/intersil/orinoco/Makefile rename to drivers/staging/wireless/orinoco/Makefile diff --git a/drivers/net/wireless/intersil/orinoco/airport.c b/drivers/staging/wireless/orinoco/airport.c similarity index 100% rename from drivers/net/wireless/intersil/orinoco/airport.c rename to drivers/staging/wireless/orinoco/airport.c diff --git a/drivers/net/wireless/intersil/orinoco/cfg.c b/drivers/staging/wireless/orinoco/cfg.c similarity index 100% rename from drivers/net/wireless/intersil/orinoco/cfg.c rename to drivers/staging/wireless/orinoco/cfg.c diff --git a/drivers/net/wireless/intersil/orinoco/cfg.h b/drivers/staging/wireless/orinoco/cfg.h similarity index 100% rename from drivers/net/wireless/intersil/orinoco/cfg.h rename to drivers/staging/wireless/orinoco/cfg.h diff --git a/drivers/net/wireless/intersil/orinoco/fw.c b/drivers/staging/wireless/orinoco/fw.c similarity index 100% rename from drivers/net/wireless/intersil/orinoco/fw.c rename to drivers/staging/wireless/orinoco/fw.c diff --git a/drivers/net/wireless/intersil/orinoco/fw.h b/drivers/staging/wireless/orinoco/fw.h similarity index 100% rename from drivers/net/wireless/intersil/orinoco/fw.h rename to drivers/staging/wireless/orinoco/fw.h diff --git a/drivers/net/wireless/intersil/orinoco/hermes.c b/drivers/staging/wireless/orinoco/hermes.c similarity index 100% rename from drivers/net/wireless/intersil/orinoco/hermes.c rename to drivers/staging/wireless/orinoco/hermes.c diff --git a/drivers/net/wireless/intersil/orinoco/hermes.h b/drivers/staging/wireless/orinoco/hermes.h similarity index 100% rename from drivers/net/wireless/intersil/orinoco/hermes.h rename to drivers/staging/wireless/orinoco/hermes.h diff --git a/drivers/net/wireless/intersil/orinoco/hermes_dld.c b/drivers/staging/wireless/orinoco/hermes_dld.c similarity index 100% rename from drivers/net/wireless/intersil/orinoco/hermes_dld.c rename to drivers/staging/wireless/orinoco/hermes_dld.c diff --git a/drivers/net/wireless/intersil/orinoco/hermes_dld.h b/drivers/staging/wireless/orinoco/hermes_dld.h similarity index 100% rename from drivers/net/wireless/intersil/orinoco/hermes_dld.h rename to drivers/staging/wireless/orinoco/hermes_dld.h diff --git a/drivers/net/wireless/intersil/orinoco/hermes_rid.h b/drivers/staging/wireless/orinoco/hermes_rid.h similarity index 100% rename from drivers/net/wireless/intersil/orinoco/hermes_rid.h rename to drivers/staging/wireless/orinoco/hermes_rid.h diff --git a/drivers/net/wireless/intersil/orinoco/hw.c b/drivers/staging/wireless/orinoco/hw.c similarity index 100% rename from drivers/net/wireless/intersil/orinoco/hw.c rename to drivers/staging/wireless/orinoco/hw.c diff --git a/drivers/net/wireless/intersil/orinoco/hw.h b/drivers/staging/wireless/orinoco/hw.h similarity index 100% rename from drivers/net/wireless/intersil/orinoco/hw.h rename to drivers/staging/wireless/orinoco/hw.h diff --git a/drivers/net/wireless/intersil/orinoco/main.c b/drivers/staging/wireless/orinoco/main.c similarity index 100% rename from drivers/net/wireless/intersil/orinoco/main.c rename to drivers/staging/wireless/orinoco/main.c diff --git a/drivers/net/wireless/intersil/orinoco/main.h b/drivers/staging/wireless/orinoco/main.h similarity index 100% rename from drivers/net/wireless/intersil/orinoco/main.h rename to drivers/staging/wireless/orinoco/main.h diff --git a/drivers/net/wireless/intersil/orinoco/mic.c b/drivers/staging/wireless/orinoco/mic.c similarity index 100% rename from drivers/net/wireless/intersil/orinoco/mic.c rename to drivers/staging/wireless/orinoco/mic.c diff --git a/drivers/net/wireless/intersil/orinoco/mic.h b/drivers/staging/wireless/orinoco/mic.h similarity index 100% rename from drivers/net/wireless/intersil/orinoco/mic.h rename to drivers/staging/wireless/orinoco/mic.h diff --git a/drivers/net/wireless/intersil/orinoco/orinoco.h b/drivers/staging/wireless/orinoco/orinoco.h similarity index 100% rename from drivers/net/wireless/intersil/orinoco/orinoco.h rename to drivers/staging/wireless/orinoco/orinoco.h diff --git a/drivers/net/wireless/intersil/orinoco/orinoco_cs.c b/drivers/staging/wireless/orinoco/orinoco_cs.c similarity index 100% rename from drivers/net/wireless/intersil/orinoco/orinoco_cs.c rename to drivers/staging/wireless/orinoco/orinoco_cs.c diff --git a/drivers/net/wireless/intersil/orinoco/orinoco_nortel.c b/drivers/staging/wireless/orinoco/orinoco_nortel.c similarity index 100% rename from drivers/net/wireless/intersil/orinoco/orinoco_nortel.c rename to drivers/staging/wireless/orinoco/orinoco_nortel.c diff --git a/drivers/net/wireless/intersil/orinoco/orinoco_pci.c b/drivers/staging/wireless/orinoco/orinoco_pci.c similarity index 100% rename from drivers/net/wireless/intersil/orinoco/orinoco_pci.c rename to drivers/staging/wireless/orinoco/orinoco_pci.c diff --git a/drivers/net/wireless/intersil/orinoco/orinoco_pci.h b/drivers/staging/wireless/orinoco/orinoco_pci.h similarity index 100% rename from drivers/net/wireless/intersil/orinoco/orinoco_pci.h rename to drivers/staging/wireless/orinoco/orinoco_pci.h diff --git a/drivers/net/wireless/intersil/orinoco/orinoco_plx.c b/drivers/staging/wireless/orinoco/orinoco_plx.c similarity index 100% rename from drivers/net/wireless/intersil/orinoco/orinoco_plx.c rename to drivers/staging/wireless/orinoco/orinoco_plx.c diff --git a/drivers/net/wireless/intersil/orinoco/orinoco_tmd.c b/drivers/staging/wireless/orinoco/orinoco_tmd.c similarity index 100% rename from drivers/net/wireless/intersil/orinoco/orinoco_tmd.c rename to drivers/staging/wireless/orinoco/orinoco_tmd.c diff --git a/drivers/net/wireless/intersil/orinoco/orinoco_usb.c b/drivers/staging/wireless/orinoco/orinoco_usb.c similarity index 100% rename from drivers/net/wireless/intersil/orinoco/orinoco_usb.c rename to drivers/staging/wireless/orinoco/orinoco_usb.c diff --git a/drivers/net/wireless/intersil/orinoco/scan.c b/drivers/staging/wireless/orinoco/scan.c similarity index 100% rename from drivers/net/wireless/intersil/orinoco/scan.c rename to drivers/staging/wireless/orinoco/scan.c diff --git a/drivers/net/wireless/intersil/orinoco/scan.h b/drivers/staging/wireless/orinoco/scan.h similarity index 100% rename from drivers/net/wireless/intersil/orinoco/scan.h rename to drivers/staging/wireless/orinoco/scan.h diff --git a/drivers/net/wireless/intersil/orinoco/spectrum_cs.c b/drivers/staging/wireless/orinoco/spectrum_cs.c similarity index 100% rename from drivers/net/wireless/intersil/orinoco/spectrum_cs.c rename to drivers/staging/wireless/orinoco/spectrum_cs.c diff --git a/drivers/net/wireless/intersil/orinoco/wext.c b/drivers/staging/wireless/orinoco/wext.c similarity index 100% rename from drivers/net/wireless/intersil/orinoco/wext.c rename to drivers/staging/wireless/orinoco/wext.c diff --git a/drivers/net/wireless/intersil/orinoco/wext.h b/drivers/staging/wireless/orinoco/wext.h similarity index 100% rename from drivers/net/wireless/intersil/orinoco/wext.h rename to drivers/staging/wireless/orinoco/wext.h diff --git a/drivers/staging/wireless/zydas/Kconfig b/drivers/staging/wireless/zydas/Kconfig new file mode 100644 index 0000000000000..9ff2ce3e1695a --- /dev/null +++ b/drivers/staging/wireless/zydas/Kconfig @@ -0,0 +1,20 @@ +# SPDX-License-Identifier: GPL-2.0-only + +config USB_ZD1201 + tristate "USB ZD1201 based Wireless device support" + depends on CFG80211 && USB + select WIRELESS_EXT + select WEXT_PRIV + select FW_LOADER + help + Say Y if you want to use wireless LAN adapters based on the ZyDAS + ZD1201 chip. + + This driver makes the adapter appear as a normal Ethernet interface, + typically on wlan0. + + The zd1201 device requires external firmware to be loaded. + This can be found at http://linux-lc100020.sourceforge.net/ + + To compile this driver as a module, choose M here: the + module will be called zd1201. diff --git a/drivers/staging/wireless/zydas/Makefile b/drivers/staging/wireless/zydas/Makefile new file mode 100644 index 0000000000000..5239cc17bd2ad --- /dev/null +++ b/drivers/staging/wireless/zydas/Makefile @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: GPL-2.0-only + +obj-$(CONFIG_USB_ZD1201) += zd1201.o diff --git a/drivers/net/wireless/zydas/zd1201.c b/drivers/staging/wireless/zydas/zd1201.c similarity index 100% rename from drivers/net/wireless/zydas/zd1201.c rename to drivers/staging/wireless/zydas/zd1201.c diff --git a/drivers/net/wireless/zydas/zd1201.h b/drivers/staging/wireless/zydas/zd1201.h similarity index 100% rename from drivers/net/wireless/zydas/zd1201.h rename to drivers/staging/wireless/zydas/zd1201.h