Commit Graph

1004 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
Felix Fietkau
163c87dfc2 mac80211: fix another regression in the broadcast AQL patch
Add a separate bit in struct ieee80211_tx_info to indicate airtime tracked
as broadcast/multicast. This avoids a race condition where airtime from
stations that were just removed wasn't getting subtracted from the total
PHY airtime.

Fixes: 95e633efbd ("mac80211: add AQL support for broadcast/multicast packets")
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-03-15 20:37:21 +01:00
Weijie Gao
a325c5fa01 mac80211: fix build with linux kernel 6.6
Fix build failure with linux kernel 6.6

Related kernel commits:

20b0b53aca43 (genetlink: introduce split op representation)

bffcc6882a1b (genetlink: remove userhdr from struct genl_info)

e9a688bcb193 (random: use rejection sampling for uniform bounded
random integers)

3c202d14a9d7 (prandom: remove prandom_u32_max())

3d2f20ad46f8 (wifi: iwlwifi: Use generic thermal_zone_get_trip()
function)

Signed-off-by: Weijie Gao <hackpascal@gmail.com>
2024-03-11 20:17:26 +01:00
Shiji Yang
97f542238a mac80211: rtl8xxxu: sync with linux-next 20240229
Backporting upstream patches to improve RTL8188F support.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
2024-03-09 23:42:37 +01:00
Felix Fietkau
1f5fd5cb97 mac80211: fix a regression in the broadcast AQL patch
The AQL limit for buffered broadcast packets is higher than the maximum
total pending airtime limit. This can get unicast data stuck whenever there
is too much pending broadcast data. Fix this by excluding broadcast AQL from
the total limit.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-03-08 22:46:32 +01:00
Mantas Pucka
aa6cc0a52b mac80211: ath11k: disable coldboot for ipq6018
Coldboot calibration does not work at the moment and causes failure during
wifi startup.

Signed-off-by: Mantas Pucka <mantas@8devices.com>
2024-02-21 21:42:23 +01:00
Felix Fietkau
2a752ff028 mac80211: add a fix for racy drv_sta_rc_update calls
Fixes potential crash issues in mt76 and other drivers

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-02-21 15:28:53 +01:00
Felix Fietkau
95e633efbd mac80211: add AQL support for broadcast/multicast packets
Should improve performance/reliability with lots of mcast packets

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-02-21 10:56:22 +01:00
Robert Marko
fb45887e85 mac80211: update to 6.6.15
Update backports to the latest 6.6 point release.

Signed-off-by: Robert Marko <robimarko@gmail.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-02-21 10:56:22 +01:00
Álvaro Fernández Rojas
0c45d2cfc6 mac80211: brcm: fix warning on ARCH_BCM2835
Completely disable dump_survey code on ARCH_BCM2835 to fix defined but not
used warning.
512b762ddb (commitcomment-137899352)

Fixes: 512b762ddb ("mac80211: brcm: disable dump_survey on Raspberry Pi")
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-01-27 10:30:47 +01:00
Álvaro Fernández Rojas
512b762ddb mac80211: brcm: disable dump_survey on Raspberry Pi
Enabling this causes slow iwinfo calls on Raspberry Pi and LuCI slows down
when wireless is enabled.
Fixes: https://github.com/openwrt/openwrt/issues/14013

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-01-26 18:29:22 +01:00
Álvaro Fernández Rojas
8dcc695633 mac80211: brcm: remove alternative DT firmware names patch
This patch has been reverted in the Raspberry Pi linux repository.
Also refresh the rest of the patches.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2024-01-26 18:29:22 +01:00
David Bauer
1278d47bea mac80211: avoid crashing on invalid band info
Frequent crashes have been observed on MT7916 based platforms. While the
root of these crashes are currently unknown, they happen when decoding
rate information of connected STAs in AP mode. The rate-information is
associated with a band which is not available on the PHY.

Check for this condition in order to avoid crashing the whole system.
This patch should be removed once the roout cause has been found and
fixed.

Link: https://github.com/freifunk-gluon/gluon/issues/2980

Signed-off-by: David Bauer <mail@david-bauer.net>
2024-01-07 23:06:17 +01:00
Felix Fietkau
438a97fab6 mac80211: fix a race condition related to enabling fast-xmit
fast-xmit must only be enabled after the sta has been uploaded to the driver,
otherwise it could end up passing the not-yet-uploaded sta via drv_tx calls
to the driver, leading to potential crashes because of uninitialized drv_priv
data.
Add a missing sta->uploaded check and re-check fast xmit after inserting a sta.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2024-01-04 18:01:31 +01:00
Oldřich Jedlička
3e738781a9 mac80211: fix flush during station removal
This fixes WARN_ONs when using AP_VLANs after station removal. The flush
call passed AP_VLAN vif to driver, but because these vifs are virtual and
not registered with drivers, we need to translate to the correct AP vif
first.

Fixes: openwrt#12420
Signed-off-by: Oldřich Jedlička <oldium.pro@gmail.com>
2023-12-24 10:34:46 +01:00
Rafał Miłecki
a14240d384 kernel: backport list_count_nodes()
It's needed by various stuff we backport. That includes NVMEM changes
queued for v6.8.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2023-12-15 11:44:38 +01:00
Shiji Yang
fbe48e99bd mac80211: rt2x00: correct wrong BBP register in RxDCOC calibration
This fix can reduce the total calibration time from 6 seconds to
1 second.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
2023-11-13 00:55:38 +00:00
Shiji Yang
6bcd1c2501 mac80211: sync some rt2x00 patches with wireless-next
Some local patches have been sent to upstream and they are slightly
different from the upstream version. So it's better to replace them
to avoid conflicts with the new mac80211 backport driver. The
different parts have been merged into patch 996.

This commit also includes some additional fixes:
* Fix watchdog function.
* Improve MT7620 register initialization.
* Introduce DMA busy watchdog for rt2800.

P.S.
Sometimes rt2800 series chips may fall into a DMA busy state. The
tx queues become very slow and the client cannot connect to the AP.
Usually, We can see a lot of hostapd warnings at this point:
'hostapd: IEEE 802.11: did not acknowledge authentication response'

The DMA busy watchdog can help the driver automatically recover
from this abnormal state. By the way, setting higer 'cell_density'
and disabling 'disassoc_low_ack' can significantly reduce the
probability of the DMA busy.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
2023-11-13 00:55:38 +00:00
Lech Perczak
a5ba28454b mac80211: ath9k-htc: support "chanbw" in debugfs
ath9k-htc USB-based adapters also support 5/10MHz channel bandwidth.
Move the code handling the features in debugfs to common-debug.c,
and create proper registration functions to use in debug.c and
htc_drv_debug.c, leaving only debugfs registration there.

While at that, refresh one patch that would conflict otherwise.

Tested on TP-Link Archer C7v2 (ath79) and TP-Link WN722Nv1 (AR9287)
and WN822Nv2 (AR7010+AR9287).

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
2023-11-12 16:27:16 +01:00
Lech Perczak
bd6dc4bffa mac80211: ath9k-htc: support "eeprom" in debugfs
ath9k-htc USB-based adapterssupport 5/10MHz channel bandwidth, the
same as standard ath9k ones.
Move the code handling the features in debugfs to common-debug.c,
and create proper registration functions to use in debug.c and
htc_drv_debug.c, leaving only debugfs registration there.

While at that, refresh one patch that would conflict otherwise.

Tested on TP-Link Archer C7v2 (ath79) and TP-Link WN722Nv1 (AR9287)
and WN822Nv2 (AR7010+AR9287).

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
2023-11-12 16:27:16 +01:00
Shiji Yang
2d314984b1 mac80211: ath: add struct_group for struct ath_cycle_counters
Add a struct_group to around all members in struct ath_cycle_counters.
It can help the compiler detect the intended bounds of the memcpy() and
memset().

This patch fixes the following build warning:

In function 'fortify_memset_chk',
    inlined from 'ath9k_ps_wakeup' at /home/db/openwrt/build_dir/target-mips_24kc_musl/linux-ath79_generic/backports-6.1.24/drivers/net/wireless/ath/ath9k/main.c:140:3:
./include/linux/fortify-string.h:314: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]
  314 |                         __write_overflow_field(p_size_field, size);
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
2023-10-31 21:12:15 +01:00
Zeyu Dong
4b0b90d3fa
mac80211: compile kconf with host gcc
Fix the building issue setting CC to KERNEL_CC in kernel.mk. The
kernel backports by default uses CC to compile kconf. A new patch is
added to mac80211 to compile kconf with host gcc.

Signed-off-by: Zeyu Dong <dzy201415@gmail.com>
[ refresh patches ]
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2023-10-28 21:34:23 +02:00
Christian Marangi
bea4f50207
mac80211: rt2x00: improve EEPROM load patches
Improve EEPROME load patches. Reorganize and rework them.

The current patch are bugged and with the case of MTD loading, leaks and
never free the EEPROM read values.

Also add support for loading EEPROM using NVMEM cells.

As a cleanup, change the binding to swap EEPROM read from mtd to
ralink,eeprom-swap and generilize it.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2023-10-16 14:16:55 +02:00
Robert Marko
359a6e36e9 mac80211: ath11k: sync with ath-next
Synchronize the ath11k backports with the current ath-next tree.

All of the changes are various bugfixes, there is no new major feature.
Notable bugfixes are:
* WCN6855 board name fixes
* One MSI vector booting is working again
This is rather important for most of the older platforms.

* DFS CAC state in virtual interfaces was fixed
* TX power during CAC reporting

Signed-off-by: Robert Marko <robimarko@gmail.com>
2023-10-14 08:26:56 +02:00
Robert Marko
aab2e6d9ae mac80211: backport upstream DFS CAC time export
DFS CAC time export is required for backport of a ath11k fix so lets
backport the required cfg80211 upstream commit as well.

Signed-off-by: Robert Marko <robimarko@gmail.com>
2023-10-14 08:26:56 +02:00
Shiji Yang
d152188906 mac80211: rt2x00: fix MT7620 low RSSI issue
Introducing SoC specific RSSI base value to fix the low RSSI issue
on MT7620. With this fix[1], the RSSI value reported by MT7620 will
increase by 10 dB.

[1] https://lore.kernel.org/linux-wireless/TYAP286MB031571CDB146C414A908A66DBCFEA@TYAP286MB0315.JPNP286.PROD.OUTLOOK.COM/

Fixes: https://github.com/openwrt/openwrt/issues/11036
Signed-off-by: Shiji Yang <yangshiji66@qq.com>
2023-09-23 03:30:00 +01:00
Felix Fietkau
13b24340d7 mac80211: backport upstream patch required for mt76 update
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2023-09-18 12:50:45 +02:00
Robert Marko
b33bfcf9fa
mac80211: ath11k: sync with ath-next
Synchronize the ath11k backports with the current ath-next tree.

All of the changes are various bugfixes, there is no new major feature.

Signed-off-by: Robert Marko <robimarko@gmail.com>
2023-09-17 14:44:34 +02:00
Robert Marko
10eea40f7b
mac80211: ath11k: drop upstreamed patches
Commit ed3725e15a154ebebf44e0c34806c57525483f92
("wifi: ath11k: Fix qmi_msg_handler data structure initialization")
has been present upstream since 6.1.2 but it seems Quilt refreshed it
wrongly so it appeared like a completely different patch.

Commit 7c15430822e71e90203d87e6d0cfe83fa058b0dc
("wifi: ath11k: allow system suspend to survive ath11k")
has been present upstream since 6.1.16 but somehow quilt still happily
applied it.

So, drop both of them.

Signed-off-by: Robert Marko <robimarko@gmail.com>
2023-09-17 14:44:30 +02:00
Felix Fietkau
16889141d9 mac80211: fix AP reconfiguration on DFS channels in non-ETSI regdomain
Allow grace period for DFS available after shutting down beacons on the channel

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2023-09-14 19:13:35 +02:00
Felix Fietkau
1688c47e3e mac80211: disable automatically created sta interfaces
They are not useful for anything on the system and are annoying when a PHY
is disabled in the config

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2023-09-13 11:57:06 +02:00
Felix Fietkau
20bd3502d3 mac80211: fix mesh id corruption on 32 bit systems
increase size of ifmsh->mbss_changed

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2023-09-12 15:35:24 +02:00
Felix Fietkau
e648e3ccf9 mac80211: fix build regressions on linux 6.1
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2023-09-11 18:54:13 +02:00
Felix Fietkau
f861292abc mac80211: update to version 6.5
Signed-off-by: Felix Fietkau <nbd@nbd.name>
2023-09-11 14:29:36 +02:00
Felix Fietkau
99a98b3024 mac80211: remove non-upstream antenna gain configuration patch
It seems that this was not functioning properly and was likely completely unused.
Keeping this out of tree also introduced some annoying churn when updating, because
of the iw nl80211.h sync patch.
If this is needed, it will be reintroduced when/if it is added upstream

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2023-08-30 12:28:30 +02:00
Shiji Yang
ce6ad123e7 mac80211: fix MT7620 Wi-Fi channel scanning function
During the channel scanning process, the driver will continuously
switch channels. It seems that the full RF calibration step in
rt2800_config_channel() caused the channel scanning function to
timeout. To fix it, move the RF calibration to rt2800_enable_radio()
so that it is only executed once. This commit also includes some
coding format adjustments to follow the Linux recommended style.

Fixes: 2824fa6963 ("mac80211: rework MT7620 PA/LNA RF calibration")
Signed-off-by: Shiji Yang <yangshiji66@qq.com>
2023-08-22 19:17:24 +01:00
Shiji Yang
2824fa6963 mac80211: rework MT7620 PA/LNA RF calibration
This patch makes some improvements to the MT7620 RF calibration.

1. Move MT7620 PA/LNA calibration code to dedicated functions.
2. Restore RF and BBP registers before R-Calibration.
3. Do Rx DCOC calibration again before RXIQ calibration.
4. Use SoC specific AGC initial LNA value.
5. Correct MAC_RX_EN mask in rt2800_r_calibration()[1].

[1] This change may fix the "BBP/RF register access failed" error:
ieee80211 phy0: rt2800_wait_bbp_rf_ready: Error - BBP/RF register access failed, aborting

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
2023-07-29 15:07:11 +01:00
Shiji Yang
a680ac8bcb mac80211: limit MT7620 TX power based on eeprom calibration
This patch adds basic TX power control for the MT7620 and limits its
maximum TX power. This can avoid the link speed decrease caused by
chip overheating.

Signed-off-by: Shiji Yang <yangshiji66@qq.com>
2023-07-23 12:40:12 +01:00
Felix Fietkau
8f7be2a2ba mac80211: add fix for receiving STP frames on mesh
Fix length in ethernet header

Signed-off-by: Felix Fietkau <nbd@nbd.name>
2023-07-11 14:38:20 +02:00