~vicamo/+git/ubuntu-kernel:bug-2043542/mt7925/v6.5.12-upstream-cherry-pick

Last commit made on 2023-11-28
Get this branch:
git clone -b bug-2043542/mt7925/v6.5.12-upstream-cherry-pick https://git.launchpad.net/~vicamo/+git/ubuntu-kernel
Only You-Sheng Yang can upload to this branch. If you are You-Sheng Yang please log in for upload directions.

Branch merges

Branch information

Name:
bug-2043542/mt7925/v6.5.12-upstream-cherry-pick
Repository:
lp:~vicamo/+git/ubuntu-kernel

Recent commits

e66fd25... by Deren Wu

UBUNTU: SAUCE: backport: mt7925: revert _ieee80211_set_sband_iftype_data()

BugLink: https://bugs.launchpad.net/bugs/2043542

Signed-off-by: Deren Wu <email address hidden>
Signed-off-by: You-Sheng Yang <email address hidden>

0fe9bbb... by MingYen Hsieh

wifi: mt76: mt7921: fix kernel panic by accessing invalid 6GHz channel info

BugLink: https://bugs.launchpad.net/bugs/2043542

When the chip not support 6GHz capability, the channels of 6GHz information
should not be updated. This caused a crash:

[ 19.442078] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000014
[ 19.457535] Mem abort info:
[ 19.465329] ESR = 0x0000000096000004
[ 19.473295] EC = 0x25: DABT (current EL), IL = 32 bits
[ 19.482354] SET = 0, FnV = 0
[ 19.489143] EA = 0, S1PTW = 0
[ 19.495991] FSC = 0x04: level 0 translation fault
[ 19.504554] Data abort info:
[ 19.511111] ISV = 0, ISS = 0x00000004, ISS2 = 0x00000000
[ 19.520269] CM = 0, WnR = 0, TnD = 0, TagAccess = 0
[ 19.528988] GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
[ 19.537960] user pgtable: 4k pages, 48-bit VAs, pgdp=00000001027a9000
[ 19.548014] [0000000000000014] pgd=0000000000000000, p4d=000000000000
[ 19.558429] Internal error: Oops: 0000000096000004 [#1] PREEMPT SMP
[ 19.568270] Modules linked in: mt7921e mt7921_common mt792x_lib
mt76_connac_lib mt76 mac80211 btusb btintel cfg80211 btmtk snd_sof_ipc_msg_
btrtl snd_sof_ipc_flood_test btbcm bluetooth snd_sof_mt8195 uvcvideo
mtk_adsp_common snd_sof_xtensa_dsp uvc snd_sof_of snd_sof videobuf2_vmalloc
ecdh_generic ecc snd_sof_utils cros_ec_lid_angle cros_ec_sensors crct10dif_
cros_ec_sensors_core cros_usbpd_logger crypto_user fuse ip_tables ipv6
[ 19.614237] CPU: 1 PID: 105 Comm: kworker/1:1 Not tainted 6.6.0-rc6-next-20231017+ #324
[ 19.625957] Hardware name: Acer Tomato (rev2) board (DT)
[ 19.634970] Workqueue: events mt7921_init_work [mt7921_common]
[ 19.644522] pstate: 60400009 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTY
[ 19.655182] pc : mt7921_regd_notifier+0x180/0x290 [mt7921_common]
[ 19.664983] lr : mt7921_regd_notifier+0xd4/0x290 [mt7921_common]
[ 19.674679] sp : ffff800080acba80
[ 19.681649] x29: ffff800080acba80 x28: 0000000000000000 x27: ffff4faf
[ 19.692483] x26: 0000000000000000 x25: 0000000000000000 x24: ffff4faf
[ 19.703294] x23: 00000000ffffe926 x22: ffff4faf16031fa0 x21: 00000000
[ 19.714108] x20: 000000000000001c x19: ffff4faf16ba6f40 x18: 00000000
[ 19.724928] x17: 0000000000000000 x16: ffffac6b891c2750 x15: ffff8000
[ 19.735722] x14: 0000000000000180 x13: 0000000000000000 x12: 00000000
[ 19.746478] x11: 0000000000000002 x10: ffff4faf01c21780 x9 : ffffac6b
[ 19.757214] x8 : 00000000006c0000 x7 : ffffac6b6b020cf0 x6 : ffffac6b
[ 19.767945] x5 : ffffac6b6b020d00 x4 : ffffac6b6b020cf8 x3 : ffff4faf
[ 19.778648] x2 : 0000000000000000 x1 : 000000000000001c x0 : 00000000
[ 19.789366] Call trace:
[ 19.795381] mt7921_regd_notifier+0x180/0x290 [mt7921_common]
[ 19.804675] wiphy_update_regulatory+0x2bc/0xa08 [cfg80211]
[ 19.813864] wiphy_regulatory_register+0x4c/0x88 [cfg80211]
[ 19.823029] wiphy_register+0x75c/0x8d0 [cfg80211]
[ 19.831446] ieee80211_register_hw+0x70c/0xc10 [mac80211]
[ 19.840479] mt76_register_device+0x168/0x2e8 [mt76]
[ 19.849008] mt7921_init_work+0xdc/0x250 [mt7921_common]
[ 19.857817] process_one_work+0x148/0x3c0
[ 19.865292] worker_thread+0x32c/0x450
[ 19.872489] kthread+0x11c/0x128
[ 19.879173] ret_from_fork+0x10/0x20
[ 19.886153] Code: f0000041 9100a021 94000aef aa0003f9 (b9401780)
[ 19.895634] ---[ end trace 0000000000000000 ]---

Reported-by: AngeloGioacchino Del Regno <email address hidden>
Closes: https://<email address hidden>/
Fixes: 09382d8f8641 ("wifi: mt76: mt7921: update the channel usage when the regd domain changed")
Signed-off-by: Ming Yen Hsieh <email address hidden>
Signed-off-by: Deren Wu <email address hidden>
Tested-by: AngeloGioacchino Del Regno <email address hidden>
Reviewed-by: AngeloGioacchino Del Regno <email address hidden>
Signed-off-by: Kalle Valo <email address hidden>
Link: https://lore.kernel.org/r/<email address hidden>
(cherry picked from commit 169b7acb847e8dc656cd2289a91ff668f72405a0)
Signed-off-by: You-Sheng Yang <email address hidden>

ae682c6... by Kees Cook

wifi: mt76: Annotate struct mt76_rx_tid with __counted_by

BugLink: https://bugs.launchpad.net/bugs/2043542

Prepare for the coming implementation by GCC and Clang of the __counted_by
attribute. Flexible array members annotated with __counted_by can have
their accesses bounds-checked at run-time checking via CONFIG_UBSAN_BOUNDS
(for array indexing) and CONFIG_FORTIFY_SOURCE (for strcpy/memcpy-family
functions).

As found with Coccinelle[1], add __counted_by for struct mt76_rx_tid.

[1] https://github.com/kees/kernel-tools/blob/trunk/coccinelle/examples/counted_by.cocci

Cc: Felix Fietkau <email address hidden>
Cc: Lorenzo Bianconi <email address hidden>
Cc: Ryder Lee <email address hidden>
Cc: Shayne Chen <email address hidden>
Cc: Sean Wang <email address hidden>
Cc: Kalle Valo <email address hidden>
Cc: Matthias Brugger <email address hidden>
Cc: AngeloGioacchino Del Regno <email address hidden>
Cc: <email address hidden>
Cc: <email address hidden>
Cc: <email address hidden>
Signed-off-by: Kees Cook <email address hidden>
Reviewed-by: Gustavo A. R. Silva <email address hidden>
Signed-off-by: Felix Fietkau <email address hidden>
(cherry picked from commit bd94d501c0c99753497f8396e96738a560bac10e)
Signed-off-by: You-Sheng Yang <email address hidden>

485766f... by MingYen Hsieh

wifi: mt76: mt7921: update the channel usage when the regd domain changed

BugLink: https://bugs.launchpad.net/bugs/2043542

The 5.9/6GHz channel license of a certain platform device has been
regulated in various countries. That may be difference with standard
Liunx regulatory domain settings. In this case, when .reg_notifier()
called for regulatory change, mt792x chipset should update the channel
usage based on clc or dts configurations.

Channel would be disabled by following cases.
* clc report the particular UNII-x is disabled.
* dts enabled and the channel is not configured.

Signed-off-by: Ming Yen Hsieh <email address hidden>
Co-developed-by: Deren Wu <email address hidden>
Signed-off-by: Deren Wu <email address hidden>
Signed-off-by: Felix Fietkau <email address hidden>
(cherry picked from commit 09382d8f8641bc12fffc41a93eb9b37be0e653c0)
Signed-off-by: You-Sheng Yang <email address hidden>

2792c76... by MingYen Hsieh

wifi: mt76: mt7921: get regulatory information from the clc event

BugLink: https://bugs.launchpad.net/bugs/2043542

The clc event can report the radio configuration for the corresponding
country and the driver would take it as regulatory information of a
certain platform device.

This patch would change the clc commnad from no-waiting to waiting for
event. For backward compatible, we also add a new nic capability tag
to indicate the firmware did support this new clc event from now on.

Signed-off-by: Ming Yen Hsieh <email address hidden>
Co-developed-by: Deren Wu <email address hidden>
Signed-off-by: Deren Wu <email address hidden>
Signed-off-by: Felix Fietkau <email address hidden>
(cherry picked from commit 4fc8df50fd41c2762d893211487be0ecb24c6a05)
Signed-off-by: You-Sheng Yang <email address hidden>

b21cf9f... by MingYen Hsieh

wifi: mt76: mt7921: add 6GHz power type support for clc

BugLink: https://bugs.launchpad.net/bugs/2043542

There are several power type should be supported in 6GHz band. mt7921
apply 6GHz power type from AP settings and clc will setup the
corresponding regulatory power.

Signed-off-by: Ming Yen Hsieh <email address hidden>
Co-developed-by: Deren Wu <email address hidden>
Signed-off-by: Deren Wu <email address hidden>
Signed-off-by: Felix Fietkau <email address hidden>
(cherry picked from commit 51ba0e3a15eb1643116a93674e230e11b9499592)
Signed-off-by: You-Sheng Yang <email address hidden>

7a18ed1... by MingYen Hsieh

wifi: mt76: mt7921: enable set txpower for UNII-4

BugLink: https://bugs.launchpad.net/bugs/2043542

support power config for channel 165/173/177

Signed-off-by: Ming Yen Hsieh <email address hidden>
Signed-off-by: Felix Fietkau <email address hidden>
(cherry picked from commit 7801da3388567c78f79d5ed96a5527de264fdef7)
Signed-off-by: You-Sheng Yang <email address hidden>

6ab5aec... by Deren Wu

wifi: mt76: mt7921: move connac nic capability handling to mt7921

BugLink: https://bugs.launchpad.net/bugs/2043542

mt76_connac_mcu_get_nic_capability() is used by mt7921 only. It
would be better to put the code in chip folder. And we can provide
more chip capability information in mt792x_phy without making
mt76_phy much bigger.

The three functions would be moved to mt7921 folder and renamed.
mt76_connac_mcu_parse_tx_resource()
mt76_connac_mcu_parse_phy_cap()
mt76_connac_mcu_get_nic_capability()

Signed-off-by: Deren Wu <email address hidden>
Signed-off-by: Felix Fietkau <email address hidden>
(cherry picked from commit dab35009fc1c6dc1598e832016594161988d8f68)
Signed-off-by: You-Sheng Yang <email address hidden>

045e7df... by mtkapsoc

wifi: mt76: reduce spin_lock_bh held up in mt76_dma_rx_cleanup

BugLink: https://bugs.launchpad.net/bugs/2043542

mt76_dma_rx_cleanup would be frequenetly called up to reset the dma rings
to be freshed as new ones when switching back from the deep sleep mode to
the active mode on mt7921 and mt7922.

Shrink the scope of spin_lock_bh in mt76_dma_rx_cleanup being held up
to allow the kernel scheduler to be able to switch other tasks in time
by reducing the latency.

Signed-off-by: Sean Wang <email address hidden>
Signed-off-by: Felix Fietkau <email address hidden>
(cherry picked from commit ef444ad00474bc5ebbcd4f6a2ea87f6fbe7977ce)
Signed-off-by: You-Sheng Yang <email address hidden>

c3eed0d... by Benjamin Lin <email address hidden>

wifi: mt76: mt7996: remove periodic MPDU TXS request

BugLink: https://bugs.launchpad.net/bugs/2043542

Remove periodic MPDU TXS request. Get TID and FrameType from SKB
instead of TXWI, which is empty for Data Frame after MPDU TXS request
is removed, hence prohibiting the establishment of TX BA session.

Signed-off-by: Benjamin Lin <email address hidden>
Signed-off-by: Yi-Chia Hsieh <email address hidden>
Signed-off-by: Money Wang <email address hidden>
Signed-off-by: Peter Chiu <email address hidden>
Signed-off-by: Evelyn Tsai <email address hidden>
Signed-off-by: Ryder Lee <email address hidden>
Signed-off-by: Felix Fietkau <email address hidden>
(cherry picked from commit 9585316a2aaf773a67846bdc8bbdd4df1e9622fa)
Signed-off-by: You-Sheng Yang <email address hidden>