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

Last commit made on 2023-11-28
Get this branch:
git clone -b bug-2043542/mt7925/v6.5.12 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
Repository:
lp:~vicamo/+git/ubuntu-kernel

Recent commits

10c4e58... by Deren Wu

backport: mt7925: revert _ieee80211_set_sband_iftype_data()

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

3f155fb... by MingYen Hsieh

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

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>

d331c06... by Kees Cook

wifi: mt76: Annotate struct mt76_rx_tid with __counted_by

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>

ebeea5f... by MingYen Hsieh

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

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>

848c3be... by MingYen Hsieh

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

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>

33c2810... by MingYen Hsieh

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

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>

4f2c090... by MingYen Hsieh

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

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>

dc1bd33... by Deren Wu

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

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>

47839dc... by mtkapsoc

wifi: mt76: reduce spin_lock_bh held up in mt76_dma_rx_cleanup

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>

276d0d2... by Benjamin Lin <email address hidden>

wifi: mt76: mt7996: remove periodic MPDU TXS request

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>