On 6/1/2022 3:39 PM, Johannes Berg wrote:
From: Johannes Berg <johannes.berg@xxxxxxxxx>
Make the channel context code MLO aware, along with some
functions that it uses, so that the chan.c file is now
MLD-clean and no longer uses deflink/bss_conf/etc.
Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
...
diff --git a/net/mac80211/rate.c b/net/mac80211/rate.c
index f22381127948..b268088585eb 100644
--- a/net/mac80211/rate.c
+++ b/net/mac80211/rate.c
@@ -90,14 +90,17 @@ void rate_control_tx_status(struct ieee80211_local *local,
}
void rate_control_rate_update(struct ieee80211_local *local,
- struct ieee80211_supported_band *sband,
- struct sta_info *sta, u32 changed)
+ struct ieee80211_supported_band *sband,
+ struct sta_info *sta, unsigned int link_id,
+ u32 changed)
{
struct rate_control_ref *ref = local->rate_ctrl;
struct ieee80211_sta *ista = &sta->sta;
void *priv_sta = sta->rate_ctrl_priv;
struct ieee80211_chanctx_conf *chanctx_conf;
+ WARN_ON(link_id != 0);
+
if (ref && ref->ops->rate_update) {
rcu_read_lock();
Why link_id must = 0 here?
Now I hit a warning here.
[421752.744684] wlan0: [link 1] AP 02:03:7f:01:52:26 changed bandwidth,
new config is 6435.000 MHz, width 1 (6435.000/0 MHz)
[421752.744760] ------------[ cut here ]------------
[421752.744762] WARNING: CPU: 4 PID: 3844301 at net/mac80211/rate.c:104
rate_control_rate_update+0xe2/0x100 [mac80211]
[421752.744833] Modules linked in: tls cpuid rfcomm ccm michael_mic cmac
algif_hash algif_skcipher af_alg qrtr_mhi bnep intel_rapl_msr
intel_rapl_common snd_hda_codec_realtek snd_hda_codec_generic
ledtrig_audio edac_mce_amd snd_hda_codec_hdmi snd_hda_intel
snd_intel_dspcfg qrtr snd_hda_codec kvm_amd snd_hda_core binfmt_misc
ath12k snd_hwdep kvm snd_pcm mhi irqbypass qmi_helpers nls_iso8859_1
snd_seq_midi crct10dif_pclmul btusb snd_seq_midi_event
ghash_clmulni_intel mac80211 snd_rawmidi btrtl aesni_intel crypto_simd
snd_seq cryptd btbcm btintel snd_seq_device rapl input_leds bluetooth
joydev wmi_bmof serio_raw snd_timer cfg80211 k10temp ecdh_generic ecc
snd libarc4 ccp soundcore ucsi_acpi typec_ucsi typec mac_hid cm32181
industrialio sch_fq_codel msr parport_pc ppdev lp parport ramoops
reed_solomon drm efi_pstore ip_tables x_tables autofs4 ax88179_178a
usbnet mii hid_generic usbhid hid crc32_pclmul nvme ahci i2c_piix4
libahci nvme_core wmi video
[421752.744982] CPU: 4 PID: 3844301 Comm: kworker/u32:2 Kdump: loaded
Tainted: G W 6.0.0-rc2+ #3
[421752.744989] Hardware name: AMD Celadon-RN/Celadon-RN, BIOS RCD0080A
09/04/2019
[421752.744993] Workqueue: phy0 ieee80211_iface_work [mac80211]
[421752.745048] RIP: 0010:rate_control_rate_update+0xe2/0x100 [mac80211]
[421752.745100] Code: e8 f3 a3 33 d0 48 8b 73 50 44 89 f1 4c 89 ea 4c 89
ff e8 71 16 fe ff 48 83 c4 20 5b 41 5c 41 5d 41 5e 41 5f 5d e9 de 24 20
d1 <0f> 0b e9 4c ff ff ff 0f 0b e8 c0 a3 33 d0 eb dd 0f 1f 40 00 66 2e
[421752.745104] RSP: 0018:ffffadc0911efab0 EFLAGS: 00010202
[421752.745109] RAX: 0000000000000000 RBX: ffff9e8619b20000 RCX:
0000000000000001
[421752.745112] RDX: ffff9e8619b20000 RSI: ffff9e8412ac3610 RDI:
ffff9e8412ac08e0
[421752.745115] RBP: ffffadc0911efaf8 R08: 0000000000000001 R09:
c000000100b1fe35
[421752.745117] R10: ffff9e8412ac04f0 R11: ffffadc0911ef9c0 R12:
0000000000000000
[421752.745120] R13: ffff9e8619b20ab0 R14: 0000000000000001 R15:
ffff9e8412ac08e0
[421752.745123] FS: 0000000000000000(0000) GS:ffff9e86ff700000(0000)
knlGS:0000000000000000
[421752.745127] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[421752.745130] CR2: 00007f03cdb34538 CR3: 00000002f020a000 CR4:
0000000000350ee0
[421752.745133] Call Trace:
[421752.745137] <TASK>
[421752.745147] ieee80211_chan_bw_change+0x100/0x130 [mac80211]
[421752.745213] ieee80211_change_chanctx+0x51/0x2a0 [mac80211]
[421752.745263] ieee80211_recalc_chanctx_chantype+0x133/0x180 [mac80211]
[421752.745287] ieee80211_link_change_bandwidth+0xf5/0x180 [mac80211]
[421752.745306] ieee80211_rx_mgmt_beacon+0xc82/0x1b30 [mac80211]
[421752.745333] ? update_load_avg+0x224/0x770
[421752.745338] ? update_load_avg+0x224/0x770
[421752.745339] ? native_send_call_func_single_ipi+0x1e/0x30
[421752.745344] ieee80211_sta_rx_queued_mgmt+0x173/0xad0 [mac80211]
[421752.745364] ? newidle_balance+0x256/0x410
[421752.745367] ? preempt_count_add+0x7c/0xc0
[421752.745370] ? _raw_spin_lock_irqsave+0x28/0x60
[421752.745375] ieee80211_iface_work+0x2fc/0x400 [mac80211]
[421752.745395] process_one_work+0x227/0x440
[421752.745398] worker_thread+0x31/0x3e0
[421752.745400] ? process_one_work+0x440/0x440
[421752.745402] kthread+0xfe/0x130
[421752.745404] ? kthread_complete_and_exit+0x20/0x20
[421752.745407] ret_from_fork+0x22/0x30
[421752.745412] </TASK>
[421752.745412] ---[ end trace 0000000000000000 ]---
...