Commit Graph

5151 Commits

Author SHA1 Message Date
Chukun Pan
84e47e9cc7 mac80211: realtek: rtw89: add RTL8922AE support
Add the Realtek RTL8922AE support to rtw89 package.
The 8922A is a 802.11be chip that can support 2/5/6GHz 160MHz.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/16700
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-10-16 23:13:10 +02:00
Felix Fietkau
5d962dc79b mac80211: fix letting drivers iterate over keys
Skip non-uploaded keys to avoid corner cases

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-10-13 12:56:03 +02:00
Linus Walleij
c990f6e156 linux: generic: net: dsa: mv88e6xxx LED support
This solution that is needed for some routers to provide proper
LED activity when controlled directly by the MV88E6xxx switch,
has just been merged in upstream Linux.

Make this patch 901 as other backports from earlier kernels
are in patch 896 and this is the first free number after
that.

Patch offsets in pending patches are augmented as part of
the refresh.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2024-10-12 22:07:35 +02:00
Felix Fietkau
6c35333316 mt76: update to Git HEAD (2024-10-11.1)
ecca0e77b4bc wifi: mt76: mt7915: fix omac index assignment after hardware reset

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-10-11 20:03:42 +02:00
Felix Fietkau
6b7d549dd0 mt76: update to Git HEAD (2024-10-11)
513bd7683746 Revert "wifi: mt76: mt7915: disable the second PCIe link for MT7915"
703c6b78c133 wifi: mt76: mt7915: firmware restart on devices with a second pcie link

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-10-11 18:50:47 +02:00
Felix Fietkau
3f6e087b6f mt76: update to Git HEAD (2024-10-10)
86b41a32a5ac wifi: mac80211: don't use rate mask for offchannel TX either
82a452919f52 wifi: mac80211: handle ieee80211_radar_detected() for MLO
02c07fe539b4 wifi: mt76: mt7996: fix rx filter setting for bfee functionality
a902bfa6db2f wifi: mt76: mt7915: disable the second PCIe link for MT7915
a7d48cd3ed34 wifi: mt76: mt7915: reduce the number of command retries
0d8474602a9b wifi: mt76: mt7915: decrease timeout for commonly issued MCU commands
5f6051569639 wifi: mt76: mt7915: add module param to select 5 GHz or 6 GHz on MT7916
f5bccb122305 wifi: mt76: mt7996: fix invalid interface combinations
6a1199463fc8 wifi: mt76: mt7915: Fix an error handling path in mt7915_add_interface()

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-10-10 10:53:03 +02:00
Robert Marko
c3251f5d52
kernel: netdevices: add RmNet MAP support
RmNet driver provides a transport agnostic MAP (multiplexing and
aggregation protocol) support in embedded module. Module provides
virtual network devices which can be attached to any IP-mode
physical device.

This is commonly used on Qualcomm based modems for data aggregation.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2024-10-09 21:21:57 +02:00
Thomas Richard
2760b7c8ec gpio-button-hotplug: skip disabled buttons
Ignore buttons which are disabled in the devicetree.

Reviewed-by: Rosen Penev <rosenp@gmail.com>
Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://patchwork.ozlabs.org/project/openwrt/patch/mailman.117522.1727194512.1280.openwrt-devel@lists.openwrt.org/
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-10-08 22:32:43 +02:00
Rosen Penev
15f5c7e365 ubnt-ledbar: fix compilation error
Wrong variable name from copy/paste.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16640
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-10-08 22:24:54 +02:00
Rosen Penev
3483f63c56 kernel: ubnt-ledbar: use devm_mutex_init
Allows remove the _remove function as devm calls mutex_destroy
automatically.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16615
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-10-08 19:21:43 +02:00
Janusz Dziedzic
73d3789e67 mac80211: ath12k: allow country set for WCN7850
Update channels when country set.

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16613
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-10-07 12:47:58 +02:00
Robert Marko
cc29e90d0c ath10k-ct: select mac80211 debugfs support
Trying to compile ath10k-ct without mac80211 debugfs support will result in:
openwrt/build_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/linux-ipq806x_generic/ath10k-ct-regular/ath10k-ct-2024.07.30~ac71b14d/ath10k-6.10/wmi.h:8083:2: error: #warning Please enable ATH10K-DEBUGFS kernel option for optimal support for CT firmware. [-Werror=cpp]
 8083 | #warning Please enable ATH10K-DEBUGFS kernel option for optimal support for CT firmware.
      |  ^~~~~~~
cc1: all warnings being treated as errors

So, since the driver itself is saying that debugfs is required, then
lets make ath10k-ct select mac80211 debugfs support which is selected
by default anyway.

Fixes: #16302
Link: https://github.com/openwrt/openwrt/pull/16619
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-10-06 23:19:38 +02:00
Shiji Yang
ac840d74f1 ath10k-ct: switch to version 6.10
The mac80211 driver backport has been updated to version 6.11. Let's
also push ath10k-ct driver forward. The unsupported feature
'NL80211_EXT_FEATURE_ETHTOOL_VDEV_STATS' has been dropped since it
looks like something for debugging and not supported by the mainline.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
Link: https://github.com/openwrt/openwrt/pull/16514
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-10-06 13:54:31 +02:00
Rosen Penev
5ee75b6bb2 kernel: ws2812b: use devm for mutex_init
Allows removal of _remove function.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16587
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-10-06 12:21:51 +02:00
Rosen Penev
e15aab2a17 kernel: leds-ws2812b: remove sub 6.6 support
5.15 and 6.1 are gone.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16587
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-10-06 12:21:51 +02:00
Rosen Penev
63a92188fb kernel: leds-ws2812b: use devm functions
Avoids having to free manually.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16587
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-10-06 12:21:51 +02:00
Felix Fietkau
ec61ccc0d3 mac80211: backport upstream DFS fixes
Mostly MLO related

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-10-05 09:45:41 +02:00
Felix Fietkau
b9e8013716 mac80211: update to version 6.11.2
Adds a number of minor fixes

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-10-04 19:18:16 +02:00
Felix Fietkau
abe020a035 mt76: add missing eeprom file for mt7992
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-10-04 10:42:12 +02:00
Rosen Penev
d3e5a4d0a1 kernel: ubnt-ledbar: return directly
Removes ret variable.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16508
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-10-03 16:39:38 +02:00
Rosen Penev
f09d973d14 kernel: ubnt-ledbar: use dev_err_probe
Handles EPROBE_DEFER and simplifies the code.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16508
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-10-03 16:39:38 +02:00
Manuel Fombuena
71da76158e kernel: packages: kmod-pstore: remove deprecated Kconfig options
The following options no longer exist in 6.6:

PSTORE_COMPRESS_DEFAULT
PSTORE_DEFLATE_COMPRESS
CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/pstore/Kconfig?h=v6.6

Signed-off-by: Manuel Fombuena <fombuena@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/16579
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-10-03 14:26:07 +02:00
Marek Puzyniak
b5ffbe7c75 mt76: mark mt7925 11BE capable
Build hostapd with 11BE support for
both mt7925e and mt7925u.

Signed-off-by: Marek Puzyniak <marek.puzyniak@holisticon.pl>
Link: https://github.com/openwrt/openwrt/pull/16571
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-10-03 12:55:23 +02:00
Janusz Dziedzic
3280f9e8f7 mac80211: mark ath12k 80211BE capable
Build hostapd with 80211BE suport.

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16571
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-10-03 12:55:23 +02:00
Janusz Dziedzic
7ebd9069f4 mt76: mark mt7996e 11BE capable
Build hostapd with 11BE support.

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@gmail.com>
2024-10-02 15:12:18 +02:00
Felix Fietkau
a9540a4e33 mac80211: do not pass a stopped vif to the driver on get_txpower
Fixes potential crashes in various drivers when checking the status of
interfaces that are down

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-10-02 12:39:34 +02:00
Chukun Pan
4eaa254018 mt76: add missing eeprom for mt7992 firmware
Avoid the following errors:
[    9.219272] mt7996e 0000:01:00.0: Direct firmware load for mediatek/mt7996/mt7992_eeprom_2i5i.bin failed with error -2
[    9.229975] mt7996e 0000:01:00.0: Falling back to sysfs fallback for: mediatek/mt7996/mt7992_eeprom_2i5i.bin

Fixes: 2f7d22d ("mt76: update to Git HEAD (2024-09-29)")
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
2024-09-30 13:14:06 +02:00
Felix Fietkau
2422dddf7a mac80211: reorder patches in subsys/
Close some patch numbering gaps left behind by updates

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-09-30 11:32:38 +02:00
Felix Fietkau
fe017a07ff mt76: remove leftover api update patch
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-09-29 20:16:24 +02:00
Felix Fietkau
161823196f mt76: fix typo in last update
Fix broken dependency for mt7992 firmware

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-09-29 20:02:43 +02:00
Felix Fietkau
2f7d22dc6f mt76: update to Git HEAD (2024-09-29)
1231d45dcb5e wifi: mt76: mt7915: check devm_kasprintf() returned value
042082027b3f wifi: mt76: mt7921: Check devm_kasprintf() returned value
4a95c1a81eee wifi: mt76: Avoid multiple -Wflex-array-member-not-at-end warnings
5fdb1841f726 wifi: mt76: mt7925: fix a potential association failure upon resuming
eeb51b527377 wifi: mt76: mt7925: convert comma to semicolon
d4b3b302ceb9 wifi: mt76: mt7615: check devm_kasprintf() returned value
922e515bd8e0 wifi: mt76: mt7925: fix a potential array-index-out-of-bounds issue for clc
bec8cb851d99 wifi: mt76: mt7925: replace chan config with extend txpower config for clc
d10ce9d65dac wifi: mt76: remove mt76_calculate_default_rate()
6685a2f4c217 wifi: mt76: mt7996: remove phy->monitor_vif
a2a9d9826277 wifi: mt76: do not increase mcu skb refcount if retry is not supported
059342ca6a68 wifi: mt76: move mt76_tm_policy to from testmode.h to mt76.h
8bef11443290 wifi: mac80211: inform the low level if drv_stop() is a suspend
4b16d2bfdcbd wifi: mac80211: handle color change per link
4529cddb6718 wifi: mt76: mt7996: extend flexibility of mt7996_mcu_get_eeprom()
4364571e4b2b wifi: mt76: mt7996: add support for more variants
8c86aa304ea1 wifi: mt76: mt7996: set correct background radar capability
addfbd141863 firmware: add latest mt7996 + mt7992 firmware
5ba4981f8b92 wifi: mt76: mt792x: add P2P_DEVICE support
dc32780c7fcd wifi: mt76: mt7921s: fix a potential firmware freeze during startup
7b5d653ea90e wifi: mt76: mt7925: fix off by one in mt7925_load_clc()
1e57d2da94c9 wifi: mt76: mt7615: Convert comma to semicolon
7aca94abac47 wifi: mt76: mt7915: fix slot time for 5/6GHz
e3e6d490ab90 wifi: mt76: mt7915: Fix mesh scan on MT7916 DBDC
ee693260c521 firmware: move mt7996 firmware to the right place
867accf4f4aa wifi: mt76: mt7996: Add eht radiotap tlv
7c4d6e403381 wifi: mt76: Fix EHT NSS radiotap reporting.
71c3949fa8ac wifi: mt76: mt7921: fix a potential scan no APs
61641da04c9e mt76: mt76u_vendor_request: Do not print error messages when -EPROTO
680bc70f161f wifi: mt76: mt7921: fix using incorrect group cipher after disconnection.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-09-29 18:09:22 +02:00
Shiji Yang
a4c95f1444 mac80211: remove outdated patches
The only supported kernel in the main branch now is version 6.6. It's
time to clean up these useless codes and patches.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
2024-09-27 08:19:19 +02:00
Shiji Yang
f03163adc5 mac80211: fix build error on kernel 6.6
The virtio_find_vqs() ABI has been changed since the 6.11 kernel.
Switch back to using the old ABI to fix the build error:

../mac80211-regular/backports-6.11/drivers/net/wireless/virtual/mac80211_hwsim.c: In function 'init_vqs':
../mac80211-regular/backports-6.11/drivers/net/wireless/virtual/mac80211_hwsim.c:6632:31: error: array type has incomplete element type 'struct virtqueue_info'
 6632 |         struct virtqueue_info vqs_info[HWSIM_NUM_VQS] = {
      |                               ^~~~~~~~
../mac80211-regular/backports-6.11/drivers/net/wireless/virtual/mac80211_hwsim.c:6637:16: error: too few arguments to function 'virtio_find_vqs'
 6637 |         return virtio_find_vqs(vdev, HWSIM_NUM_VQS,
      |                ^~~~~~~~~~~~~~~
In file included from ../mac80211-regular/backports-6.11/drivers/net/wireless/virtual/mac80211_hwsim.c:38:
./include/linux/virtio_config.h:224:5: note: declared here
  224 | int virtio_find_vqs(struct virtio_device *vdev, unsigned nvqs,
      |     ^~~~~~~~~~~~~~~
../mac80211-regular/backports-6.11/drivers/net/wireless/virtual/mac80211_hwsim.c:6632:31: error: unused variable 'vqs_info' [-Werror=unused-variable]
 6632 |         struct virtqueue_info vqs_info[HWSIM_NUM_VQS] = {
      |                               ^~~~~~~~
../mac80211-regular/backports-6.11/drivers/net/wireless/virtual/mac80211_hwsim.c:6639:1: error: control reaches end of non-void function [-Werror=return-type]
 6639 | }
      | ^

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
2024-09-27 08:19:19 +02:00
Felix Fietkau
384d079fd8 mac80211: update to version 6.11
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-09-26 10:55:11 +02:00
Janusz Dziedzic
bffcc3c775 mac80211: ath12k: add PCI_SUPPORT dependency
Always depend on PCI and don't build on platforms
without PCI.

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16475
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-09-24 12:27:35 +02:00
Chukun Pan
b83c7448d3 kernel: r8126: add CONFLICT to rss variant
The rss variant should conflict with the default.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/16460
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-09-24 09:11:58 +02:00
Chukun Pan
d39078c785 kernel: r8125: add CONFLICT to rss variant
The rss variant should conflict with the default.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/16460
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-09-24 09:11:58 +02:00
Felix Fietkau
1f4bd694aa mac80211: introduce EHT rate support in AQL airtime
Backport required by mt76 for decent throughput with EHT rates

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-09-24 09:04:30 +02:00
Rosen Penev
7c9998f713 gpio-button-hotplug: use dev_err_probe
Avoids having to handle EPROBE_DEFER manually.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16456
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-09-23 18:22:07 +02:00
Janusz Dziedzic
935b2b7dce mac80211: ath12k: prevent ltssm crash
Fix ltssm crashes on BPI-Rx boards.
Seems read32/write32 using wrong address which
is not a problem on x86/64 PCI controllers.
But have issues on BPI-Rx boards.

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/15945
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-09-23 00:34:08 +02:00
Janusz Dziedzic
2314d509e3 mac80211: add ath12k PCI support
Add upstream ath12k 802.11BE driver support.
Allow to build and use it from openwrt.

Tested on BPI-R4/BPI-R64 with:
 - Qualcomm Technologies, Inc WCN785x Wi-Fi 7(802.11be) 320MHz 2x2 [FastConnect 7800] (rev 01)

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/15945
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-09-23 00:34:08 +02:00
Janusz Dziedzic
3b11647da0 mac80211: ath: add qcom-qmi-helpers as package
Allow to build ath11k and other drivers using
qcom-qmi-helpers together (eg. ath12k).

Signed-off-by: Janusz Dziedzic <janusz.dziedzic@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/15945
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-09-23 00:30:17 +02:00
Shiji Yang
f813609d31 kernel: usb: improve support for ath79 target
1. Remove outdated symbol CONFIG_USB_OHCI_ATH79.
The ath79 OHCI USB was already supported by the generic driver
kmod-usb-ohci. And this kernel symbol has been dropped since
upstream commit:
53d473fc1e38 ("usb: host: Remove the deprecated ATH79 USB host config options")

2. Add ath79 USB phy package to the OHCI dependencies.
Both EHCI and OHCI require it on the ath79 target.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
Link: https://github.com/openwrt/openwrt/pull/16380
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-09-22 23:58:47 +02:00
Shiji Yang
9a157292e2 mac80211: rt2x00: fix eeprom load issue for PCIe NICs
The support for assigning PCIe eeprom via device tree was
accidentally removed when adding NVMEM eeprom patches.

Fixes: bea4f50207 ("mac80211: rt2x00: improve EEPROM load patches")
Signed-off-by: Shiji Yang <yangshiji66@qq.com>
Link: https://github.com/openwrt/openwrt/pull/16318
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-09-22 19:12:16 +02:00
Oskari Lemmela
9bd01741eb kernel: modules: add irq support for pca953x
Enable interrupt controller support for PCA953x kernel module

Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
Link: https://github.com/openwrt/openwrt/pull/15926
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-09-22 18:42:34 +02:00
Oskari Lemmela
2f96b67b8f kernel: netdevices: add leds support
Compile LED support to swconfig and phy modules

Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
Link: https://github.com/openwrt/openwrt/pull/15926
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-09-22 18:42:34 +02:00
Oskari Lemmela
bdd2d685db kernel: netdevices: add dsa support
Add support for building DSA switch drivers as kernel modules.

Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
Link: https://github.com/openwrt/openwrt/pull/15926
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-09-22 18:42:34 +02:00
Oskari Lemmela
7e5f971126 kernel: netdevices: add phy modules
Add support for building multiple phy drivers as kernel modules

Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
Link: https://github.com/openwrt/openwrt/pull/15926
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-09-22 18:42:34 +02:00
Oskari Lemmela
eadb804955 kernel: netdevices: add ag71xx modules
Add support for building both upstream and downstream ag71xx drivers
as modules.

Signed-off-by: Oskari Lemmela <oskari@lemmela.net>
Link: https://github.com/openwrt/openwrt/pull/15926
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-09-22 18:42:34 +02:00
Antonio Flores
5e769878ad mac80211: CVE-2024-46760: rtw88: schedule rx work after everything is set up
link: https://lore.kernel.org/all/2024091842-CVE-2024-46760-1eb3@gregkh
Description
===========

In the Linux kernel, the following vulnerability has been resolved:

wifi: rtw88: usb: schedule rx work after everything is set up

Right now it's possible to hit NULL pointer dereference in
rtw_rx_fill_rx_status on hw object and/or its fields because
initialization routine can start getting USB replies before
rtw_dev is fully setup.

The stack trace looks like this:

rtw_rx_fill_rx_status
rtw8821c_query_rx_desc
rtw_usb_rx_handler
...
queue_work
rtw_usb_read_port_complete
...
usb_submit_urb
rtw_usb_rx_resubmit
rtw_usb_init_rx
rtw_usb_probe

So while we do the async stuff rtw_usb_probe continues and calls
rtw_register_hw, which does all kinds of initialization (e.g.
via ieee80211_register_hw) that rtw_rx_fill_rx_status relies on.

Fix this by moving the first usb_submit_urb after everything
is set up.

For me, this bug manifested as:
[    8.893177] rtw_8821cu 1-1:1.2: band wrong, packet dropped
[    8.910904] rtw_8821cu 1-1:1.2: hw->conf.chandef.chan NULL in rtw_rx_fill_rx_status
because I'm using Larry's backport of rtw88 driver with the NULL
checks in rtw_rx_fill_rx_status.

The Linux kernel CVE team has assigned CVE-2024-46760 to this issue.

Affected and fixed versions
===========================

	Fixed in 6.6.51 with commit c83d464b82a8
	Fixed in 6.10.10 with commit 25eaef533bf3
	Fixed in 6.11 with commit adc539784c98

Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.

Unaffected versions might change over time as fixes are backported to
older supported kernel versions.  The official CVE entry at
	https://cve.org/CVERecord/?id=CVE-2024-46760
will be updated if fixes are backported, please check that for the most
up to date information about this issue.

Affected files
==============

The file(s) affected by this issue are:
	drivers/net/wireless/realtek/rtw88/usb.c

Mitigation
==========

The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes.  Individual
changes are never tested alone, but rather are part of a larger kernel
release.  Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all.  If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
	https://git.kernel.org/stable/c/c83d464b82a8ad62ec9077637f75d73fe955635a
	https://git.kernel.org/stable/c/25eaef533bf3ccc6fee5067aac16f41f280e343e
	https://git.kernel.org/stable/c/adc539784c98a7cc602cbf557debfc2e7b9be8b3

Signed-off-by: Antonio Flores <antflores627@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16420
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-09-21 13:28:30 +02:00