Commit Graph

1202 Commits

Author SHA1 Message Date
Tianling Shen
b3a41b80d4
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2024-10-06 15:08:12 +08: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
Tianling Shen
40a0abec18
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2024-10-05 14:09:00 +08: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
Tianling Shen
acbc0165f4
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2024-10-02 20:25:37 +08: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
Tianling Shen
4664782500
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2024-10-01 14:50:54 +08: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
Tianling Shen
a148d38ced
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2024-09-27 15:14:03 +08: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
Tianling Shen
ad09da8e6b
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2024-09-24 16:47:24 +08: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
Tianling Shen
e197182f1e
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2024-09-23 16:03:08 +08:00
Tianling Shen
42621d3144
mac80211: backport upstreamed accepted AP6275P support
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2024-09-23 15:35:40 +08: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
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
Tianling Shen
010d34e80c
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2024-09-21 20:24:11 +08: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
Tianling Shen
87a65ed282
mac80211: backport latest AP6275P patches
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2024-08-08 02:19:49 +08:00
Tianling Shen
992e9ec072
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2024-07-22 23:01:52 +08:00
Sean Khan
02e8285051 mac80211: fix kconf build warnings
This patch cleans up the following warnings during build:

"warning: format not a string literal"

```
conf.c: In function 'conf_askvalue':
conf.c:89:17: warning: format not a string literal and no format arguments [-Wformat-security]
    89 |                 printf(_("(NEW) "));
      |                 ^~~~~~
conf.c: In function 'conf_choice':
conf.c:285:33: warning: format not a string literal and no format arguments [-Wformat-security]
  285 |                                 printf(_(" (NEW)"));
      |                                 ^~~~~~
conf.c: In function 'check_conf':
conf.c:440:41: warning: format not a string literal and no format arguments [-Wformat-security]
  440 |                                         printf(_("*\n* Restart config...\n*\n"));
      |                                         ^~~~~~
conf.c: In function 'main':
conf.c:617:41: warning: format not a string literal and no format arguments [-Wformat-security]
  617 |                                         _("\n*** The configuration requires explicit update.\n\n"));
      |                                         ^
conf.c:669:25: warning: format not a string literal and no format arguments [-Wformat-security]
  669 |                         fprintf(stderr, _("\n*** Error during writing of the configuration.\n\n"));
      |                         ^~~~~~~
conf.c:673:25: warning: format not a string literal and no format arguments [-Wformat-security]
  673 |                         fprintf(stderr, _("\n*** Error during update of the configuration.\n\n"));
      |                         ^~~~~~~
conf.c:684:25: warning: format not a string literal and no format arguments [-Wformat-security]
  684 |                         fprintf(stderr, _("\n*** Error during writing of the configuration.\n\n"));
      |                         ^~~~~~~
```

And POSIX Yacc warnings
```
lex -ozconf.lex.c -L zconf.l
yacc -ozconf.tab.c -t -l zconf.y
zconf.y:34.1-7: warning: POSIX Yacc does not support %expect [-Wyacc]
    34 | %expect 32
      | ^~~~~~~
zconf.y:97.1-11: warning: POSIX Yacc does not support %destructor [-Wyacc]
    97 | %destructor {
      | ^~~~~~~~~~~
gcc -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -DKBUILD_NO_NLS   -c -o zconf.tab.o zconf.tab.c
gcc   conf.o zconf.tab.o   -o conf
```

After:

gcc -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -DKBUILD_NO_NLS   -c -o conf.o conf.c
yacc -Wno-yacc -ozconf.tab.c -t -l zconf.y
gcc -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -DKBUILD_NO_NLS   -c -o zconf.tab.o zconf.tab.c
gcc   conf.o zconf.tab.o   -o conf

Signed-off-by: Sean Khan <datapronix@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/15953
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-07-21 14:01:21 +02:00
Tianling Shen
6594944214
mac80211: refresh patches
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2024-07-15 11:28:47 +08:00
Tianling Shen
0f106d5619
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2024-07-15 11:14:50 +08:00
Shiji Yang
192afd31e3 mac80211: rt2x00: remove upstreamed patch
This BBP register fix patch has already been upstreamed. Ref:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.9.9&id=50da74e1e8b682853d1e07fc8bbe3a0774ae5e09

Fixes: 1bfcc1ea8a ("mac80211: update to version 6.9.9")
Signed-off-by: Shiji Yang <yangshiji66@qq.com>
2024-07-13 09:28:17 +02:00
Felix Fietkau
1bfcc1ea8a mac80211: update to version 6.9.9
Brings lots of driver updates and API changes needed for mt76 updates.
Disable iwlwifi and ath11k on 5.15, since backport is too difficult,
and the only remaining targets won't need those drivers.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-07-12 16:38:28 +02:00
Tianling Shen
e7571a6be7
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2024-07-12 00:52:09 +08:00
Tianling Shen
543aa00d9d
mac80211: add AP6275P (BCM43752A2) support
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2024-07-11 22:12:53 +08:00
Felix Fietkau
c640f7b937 mac80211: clear vif private data in order to fix accidental reuse
Fixes potential issues when bringing an interface down and then up again

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-07-11 15:07:58 +02:00
Tianling Shen
db35b0ef9f
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2024-06-21 02:27:01 +08:00
Christian Marangi
e6e4d90b69
mac80211: backport upstream patch for tim->virtual_map flex array warn
Backport upstream patch for tim->virtual_map flex array warning for
invalid write.

This has been notice with the bump of ath10k-ct to version 6.7.

Link: https://github.com/openwrt/openwrt/pull/15760
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-06-19 23:38:27 +02:00
Tianling Shen
62f7ce033b
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2024-06-18 22:10:50 +08:00
Christian Marangi
0134270319
mac80211: backport RX timestamp flags patch
Backport RX timestamp flags patch needed for ath10k-ct to compile with
newer versions.

Link: https://github.com/openwrt/openwrt/pull/15735
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-06-18 14:09:42 +02:00
Christian Marangi
6b71ab630a
mac80211: ath10k: replace LEDs patch with upstream patch
LEDs support for ath10k has finally merged upstream hence replace it
with the upstream version.

Link: https://github.com/openwrt/openwrt/pull/15735
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-06-18 14:09:40 +02:00
Christian Marangi
29b98a0192
Revert "mac80211: ath10k: replace LEDs patch with upstream patch"
This reverts commit dc9c5d1ee7.

Additional file for ath10k-ct slipped in, revert for a better version
pushed later.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-06-17 18:33:25 +02:00
Christian Marangi
dc9c5d1ee7
mac80211: ath10k: replace LEDs patch with upstream patch
LEDs support for ath10k has finally merged upstream hence replace it
with the upstream version.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-06-17 18:23:44 +02:00
Tianling Shen
5e63e0a0a3
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2024-06-17 16:21:53 +08:00
Rosen Penev
6b03050192 mac80211: remove mtd-cal-data
All usages of mtd-cal-data have been removed. To avoid submissions that
rely on this deprecated behavior, remove it.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/15671
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-06-13 18:10:27 +02:00
Tianling Shen
e8c6664a26
Merge Offcial Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2024-06-07 16:37:21 +08:00
Felix Fietkau
b9650de249 mac80211: backport an upstream patch needed by mt76 for AES_GMAC key support
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-06-07 06:02:13 +02:00
Tianling Shen
252d16387c
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2024-04-22 15:04:31 +08:00
Robert Marko
b0422af1b3
mac80211: ath11k: re-enable ipq807x coldboot calibration
It seems that move to kernel 6.6 somehow fixed the remoteproc restart so
now it properly restarts and thus coldboot calibration works as well.

ipq60xx still seems to be broken in a different way so keep it disabled.

Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-04-18 11:55:36 +02:00
Tianling Shen
9a28409897
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2024-04-16 15:32:01 +08:00
Robert Marko
5fe0d296c1 mac80211: ath11k: support DT property to limit channels
Limiting allowed channels per device may be required and is commonly
supported on other drivers, so include a pending patch to add support for
the same.

Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-04-13 20:05:01 +02:00
Felix Fietkau
ab9a29a320 mac80211: improve mesh fast tx patch
Change hash key struct size for faster lookup.
Fix clearing cache entries for forwarding

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-04-13 16:33:45 +02:00
Tianling Shen
4d22a8a2c4
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2024-03-24 21:24:08 +08:00
Mieczyslaw Nalewaj
bce7b4f8e5 mac80211: carl9170: re-fix fortified-memset warning
The carl9170_tx_release() function sometimes triggers a fortified-memset
warning in my randconfig builds:

In file included from include/linux/string.h:254,
                 from drivers/net/wireless/ath/carl9170/tx.c:40:
In function 'fortify_memset_chk',
    inlined from 'carl9170_tx_release' at drivers/net/wireless/ath/carl9170/tx.c:283:2,
    inlined from 'kref_put' at include/linux/kref.h:65:3,
    inlined from 'carl9170_tx_put_skb' at drivers/net/wireless/ath/carl9170/tx.c:342:9:
include/linux/fortify-string.h:493:25: error: call to '__write_overflow_field' declared with attribute warning: detected write beyond size of field (1st parameter); maybe use struct_group()? [-Werror=attribute-warning]
  493 |                         __write_overflow_field(p_size_field, size);

Kees previously tried to avoid this by using memset_after(), but it seems
this does not fully address the problem. I noticed that the memset_after()
here is done on a different part of the union (status) than the original
cast was from (rate_driver_data), which may confuse the compiler.

Unfortunately, the memset_after() trick does not work on driver_rates[]
because that is part of an anonymous struct, and I could not get
struct_group() to do this either. Using two separate memset() calls
on the two members does address the warning though.

Signed-off-by: Mieczyslaw Nalewaj <namiltd@yahoo.com>
2024-03-23 14:26:05 +01:00
Tianling Shen
c578dc1bcd
Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
2024-03-17 00:51:01 +08:00
Felix Fietkau
dea42f67ab mac80211: fix a crash triggered by sta disconnect with per-sta VLANs
Reported-by: ranygh@riseup.net
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-03-16 08:50:52 +01:00