2024-01-22 11:52:54

by Kang Yang

[permalink] [raw]
Subject: [PATCH v3 00/10] wifi: ath12k: P2P support for WCN7850

Add P2P support for WCN7850.

Kang Yang (10):
wifi: ath12k: change interface combination for P2P mode
wifi: ath12k: add P2P IE in beacon template
wifi: ath12k: implement handling of P2P NoA event
wifi: ath12k: implement remain on channel for P2P mode
wifi: ath12k: change WLAN_SCAN_PARAMS_MAX_IE_LEN from 256 to 512
wifi: ath12k: allow specific mgmt frame tx while vdev is not up
wifi: ath12k: fix broken structure wmi_vdev_create_cmd
wifi: ath12k: move peer delete after vdev stop of station for WCN7850
wifi: ath12k: designating channel frequency for ROC scan
wifi: ath12k: advertise P2P dev support for WCN7850

v3: rebase on new ath-tag, use ath12k_ah_to_ar() get ar(Karthikeyan).
v2:
1. add Tested-on tag of QCN9274.
2. update copyright in patch #1, #2, #4 and #10.

drivers/net/wireless/ath/ath12k/Makefile | 3 +-
drivers/net/wireless/ath/ath12k/core.c | 1 +
drivers/net/wireless/ath/ath12k/hw.c | 7 +-
drivers/net/wireless/ath/ath12k/mac.c | 366 +++++++++++++++++++----
drivers/net/wireless/ath/ath12k/p2p.c | 142 +++++++++
drivers/net/wireless/ath/ath12k/p2p.h | 23 ++
drivers/net/wireless/ath/ath12k/wmi.c | 116 ++++++-
drivers/net/wireless/ath/ath12k/wmi.h | 50 +++-
8 files changed, 643 insertions(+), 65 deletions(-)
create mode 100644 drivers/net/wireless/ath/ath12k/p2p.c
create mode 100644 drivers/net/wireless/ath/ath12k/p2p.h


base-commit: 8ff464a183f92836d7fd99edceef50a89d8ea797
--
2.34.1



2024-01-22 12:12:49

by Kang Yang

[permalink] [raw]
Subject: [PATCH v3 08/10] wifi: ath12k: move peer delete after vdev stop of station for WCN7850

In current code, when STA/P2P Client connect to AP/P2P GO, the WMI
command sequence is:

peer_create->vdev_start->vdev_up

And sequence of STA/P2P Client disconnect from AP/P2P GO is:

peer_delete->vdev_down->vdev_stop

This sequence of disconnect is not opposite of connect. For STA or P2P
GO, bss peer is not needed by firmware during handling vdev stop
command. So with this sequence, STA and P2P GO can work normally.

But for P2P Client, firmware needs bss peer in some functions during
handling vdev stop command. The opposite sequence of disconnect should
be:

vdev_down->vdev_stop->peer_delete

So change the sequence of disconnect as above opposite sequence for
WCN7850.

Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3
Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1

Signed-off-by: Kang Yang <[email protected]>
---

v3: no change.
v2: add Tested-on tag of QCN9274.

---
drivers/net/wireless/ath/ath12k/mac.c | 99 +++++++++++++++------------
1 file changed, 54 insertions(+), 45 deletions(-)

diff --git a/drivers/net/wireless/ath/ath12k/mac.c b/drivers/net/wireless/ath/ath12k/mac.c
index 65ac1d0b52a4..10aa8b20ef7a 100644
--- a/drivers/net/wireless/ath/ath12k/mac.c
+++ b/drivers/net/wireless/ath/ath12k/mac.c
@@ -1083,6 +1083,46 @@ static int ath12k_mac_monitor_stop(struct ath12k *ar)
return ret;
}

+static int ath12k_mac_vdev_stop(struct ath12k_vif *arvif)
+{
+ struct ath12k *ar = arvif->ar;
+ int ret;
+
+ lockdep_assert_held(&ar->conf_mutex);
+
+ reinit_completion(&ar->vdev_setup_done);
+
+ ret = ath12k_wmi_vdev_stop(ar, arvif->vdev_id);
+ if (ret) {
+ ath12k_warn(ar->ab, "failed to stop WMI vdev %i: %d\n",
+ arvif->vdev_id, ret);
+ goto err;
+ }
+
+ ret = ath12k_mac_vdev_setup_sync(ar);
+ if (ret) {
+ ath12k_warn(ar->ab, "failed to synchronize setup for vdev %i: %d\n",
+ arvif->vdev_id, ret);
+ goto err;
+ }
+
+ WARN_ON(ar->num_started_vdevs == 0);
+
+ ar->num_started_vdevs--;
+ ath12k_dbg(ar->ab, ATH12K_DBG_MAC, "vdev %pM stopped, vdev_id %d\n",
+ arvif->vif->addr, arvif->vdev_id);
+
+ if (test_bit(ATH12K_CAC_RUNNING, &ar->dev_flags)) {
+ clear_bit(ATH12K_CAC_RUNNING, &ar->dev_flags);
+ ath12k_dbg(ar->ab, ATH12K_DBG_MAC, "CAC Stopped for vdev %d\n",
+ arvif->vdev_id);
+ }
+
+ return 0;
+err:
+ return ret;
+}
+
static int ath12k_mac_config(struct ath12k *ar, u32 changed)
{
struct ieee80211_hw *hw = ath12k_ar_to_hw(ar);
@@ -3905,6 +3945,13 @@ static int ath12k_mac_op_sta_state(struct ieee80211_hw *hw,
sta->addr, arvif->vdev_id);
} else if ((old_state == IEEE80211_STA_NONE &&
new_state == IEEE80211_STA_NOTEXIST)) {
+ if (arvif->vdev_type == WMI_VDEV_TYPE_STA) {
+ ath12k_bss_disassoc(ar, arvif);
+ ret = ath12k_mac_vdev_stop(arvif);
+ if (ret)
+ ath12k_warn(ar->ab, "failed to stop vdev %i: %d\n",
+ arvif->vdev_id, ret);
+ }
ath12k_dp_peer_cleanup(ar, arvif->vdev_id, sta->addr);

ret = ath12k_peer_delete(ar, arvif->vdev_id, sta->addr);
@@ -6336,46 +6383,6 @@ ath12k_mac_vdev_start_restart(struct ath12k_vif *arvif,
return 0;
}

-static int ath12k_mac_vdev_stop(struct ath12k_vif *arvif)
-{
- struct ath12k *ar = arvif->ar;
- int ret;
-
- lockdep_assert_held(&ar->conf_mutex);
-
- reinit_completion(&ar->vdev_setup_done);
-
- ret = ath12k_wmi_vdev_stop(ar, arvif->vdev_id);
- if (ret) {
- ath12k_warn(ar->ab, "failed to stop WMI vdev %i: %d\n",
- arvif->vdev_id, ret);
- goto err;
- }
-
- ret = ath12k_mac_vdev_setup_sync(ar);
- if (ret) {
- ath12k_warn(ar->ab, "failed to synchronize setup for vdev %i: %d\n",
- arvif->vdev_id, ret);
- goto err;
- }
-
- WARN_ON(ar->num_started_vdevs == 0);
-
- ar->num_started_vdevs--;
- ath12k_dbg(ar->ab, ATH12K_DBG_MAC, "vdev %pM stopped, vdev_id %d\n",
- arvif->vif->addr, arvif->vdev_id);
-
- if (test_bit(ATH12K_CAC_RUNNING, &ar->dev_flags)) {
- clear_bit(ATH12K_CAC_RUNNING, &ar->dev_flags);
- ath12k_dbg(ar->ab, ATH12K_DBG_MAC, "CAC Stopped for vdev %d\n",
- arvif->vdev_id);
- }
-
- return 0;
-err:
- return ret;
-}
-
static int ath12k_mac_vdev_start(struct ath12k_vif *arvif,
struct ieee80211_chanctx_conf *ctx)
{
@@ -6742,11 +6749,13 @@ ath12k_mac_op_unassign_vif_chanctx(struct ieee80211_hw *hw,
arvif->is_started = false;
}

- ret = ath12k_mac_vdev_stop(arvif);
- if (ret)
- ath12k_warn(ab, "failed to stop vdev %i: %d\n",
- arvif->vdev_id, ret);
-
+ if (arvif->vdev_type != WMI_VDEV_TYPE_STA) {
+ ath12k_bss_disassoc(ar, arvif);
+ ret = ath12k_mac_vdev_stop(arvif);
+ if (ret)
+ ath12k_warn(ab, "failed to stop vdev %i: %d\n",
+ arvif->vdev_id, ret);
+ }
arvif->is_started = false;

if (ab->hw_params->vdev_start_delay &&
--
2.34.1


2024-01-22 20:04:47

by Jeff Johnson

[permalink] [raw]
Subject: Re: [PATCH v3 00/10] wifi: ath12k: P2P support for WCN7850

On 1/22/2024 3:38 AM, Kang Yang wrote:
> Add P2P support for WCN7850.
>
> Kang Yang (10):
> wifi: ath12k: change interface combination for P2P mode
> wifi: ath12k: add P2P IE in beacon template
> wifi: ath12k: implement handling of P2P NoA event
> wifi: ath12k: implement remain on channel for P2P mode
> wifi: ath12k: change WLAN_SCAN_PARAMS_MAX_IE_LEN from 256 to 512
> wifi: ath12k: allow specific mgmt frame tx while vdev is not up
> wifi: ath12k: fix broken structure wmi_vdev_create_cmd
> wifi: ath12k: move peer delete after vdev stop of station for WCN7850
> wifi: ath12k: designating channel frequency for ROC scan
> wifi: ath12k: advertise P2P dev support for WCN7850
>
> v3: rebase on new ath-tag, use ath12k_ah_to_ar() get ar(Karthikeyan).
> v2:
> 1. add Tested-on tag of QCN9274.
> 2. update copyright in patch #1, #2, #4 and #10.
>
> drivers/net/wireless/ath/ath12k/Makefile | 3 +-
> drivers/net/wireless/ath/ath12k/core.c | 1 +
> drivers/net/wireless/ath/ath12k/hw.c | 7 +-
> drivers/net/wireless/ath/ath12k/mac.c | 366 +++++++++++++++++++----
> drivers/net/wireless/ath/ath12k/p2p.c | 142 +++++++++
> drivers/net/wireless/ath/ath12k/p2p.h | 23 ++
> drivers/net/wireless/ath/ath12k/wmi.c | 116 ++++++-
> drivers/net/wireless/ath/ath12k/wmi.h | 50 +++-
> 8 files changed, 643 insertions(+), 65 deletions(-)
> create mode 100644 drivers/net/wireless/ath/ath12k/p2p.c
> create mode 100644 drivers/net/wireless/ath/ath12k/p2p.h
>
>
> base-commit: 8ff464a183f92836d7fd99edceef50a89d8ea797
Acked-by: Jeff Johnson <[email protected]>


2024-01-25 14:44:54

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH v3 00/10] wifi: ath12k: P2P support for WCN7850

Kang Yang <[email protected]> writes:

> Add P2P support for WCN7850.
>
> Kang Yang (10):
> wifi: ath12k: change interface combination for P2P mode
> wifi: ath12k: add P2P IE in beacon template
> wifi: ath12k: implement handling of P2P NoA event
> wifi: ath12k: implement remain on channel for P2P mode
> wifi: ath12k: change WLAN_SCAN_PARAMS_MAX_IE_LEN from 256 to 512
> wifi: ath12k: allow specific mgmt frame tx while vdev is not up
> wifi: ath12k: fix broken structure wmi_vdev_create_cmd
> wifi: ath12k: move peer delete after vdev stop of station for WCN7850
> wifi: ath12k: designating channel frequency for ROC scan
> wifi: ath12k: advertise P2P dev support for WCN7850
>
> v3: rebase on new ath-tag, use ath12k_ah_to_ar() get ar(Karthikeyan).
> v2:
> 1. add Tested-on tag of QCN9274.
> 2. update copyright in patch #1, #2, #4 and #10.

I have not been able to run any p2p tests yet but during rmmod with
WCN7850 I now see:

[ 136.260660] ------------[ cut here ]------------
[ 136.260909] UBSAN: shift-out-of-bounds in drivers/net/wireless/ath/ath12k/mac.c:6005:38
[ 136.261008] shift exponent 255 is too large for 64-bit type 'long long int'
[ 136.261096] CPU: 1 PID: 1993 Comm: rmmod Not tainted 6.8.0-rc1-wt-ath+ #1262
[ 136.261180] Hardware name: Intel(R) Client Systems NUC8i7HVK/NUC8i7HVB, BIOS HNKBLi70.86A.0067.2021.0528.1339 05/28/2021
[ 136.261261] Call Trace:
[ 136.261343] <TASK>
[ 136.261427] dump_stack_lvl+0x82/0xc0
[ 136.261513] dump_stack+0x10/0x20
[ 136.261597] __ubsan_handle_shift_out_of_bounds+0x13f/0x300
[ 136.261711] ath12k_mac_op_remove_interface.cold+0x17/0x86 [ath12k]
[ 136.261941] drv_remove_interface+0x215/0x4a0 [mac80211]
[ 136.262102] ieee80211_do_stop+0xfe4/0x2390 [mac80211]
[ 136.262258] ? trace_contention_end+0xe2/0x110
[ 136.262359] ? ieee80211_del_virtual_monitor+0x60/0x60 [mac80211]
[ 136.262507] ? mutex_lock_io_nested+0x1260/0x1260
[ 136.262610] ? debug_smp_processor_id+0x17/0x20
[ 136.262702] ? trace_contention_end+0xe2/0x110
[ 136.262792] ieee80211_sdata_stop+0x4d/0x70 [mac80211]
[ 136.262961] ieee80211_stop_p2p_device+0xd/0x10 [mac80211]
[ 136.263127] cfg80211_stop_p2p_device+0x18e/0x580 [cfg80211]
[ 136.263282] cfg80211_shutdown_all_interfaces+0x10c/0x190 [cfg80211]
[ 136.263434] ieee80211_remove_interfaces+0xc7/0x8f0 [mac80211]
[ 136.263611] ? __wait_for_common+0x42f/0x6d0
[ 136.263702] ? ieee80211_sdata_stop+0x70/0x70 [mac80211]
[ 136.263881] ieee80211_unregister_hw+0x4f/0x380 [mac80211]
[ 136.264045] ath12k_mac_hw_unregister+0x7a/0x250 [ath12k]
[ 136.264155] ath12k_mac_unregister+0x7f/0xc0 [ath12k]
[ 136.264265] ath12k_core_deinit+0x2e/0x130 [ath12k]
[ 136.264372] ath12k_pci_remove+0xad/0x1a0 [ath12k]
[ 136.264478] pci_device_remove+0x93/0x1b0
[ 136.264567] device_remove+0xbf/0x150
[ 136.264662] device_release_driver_internal+0x3c3/0x580
[ 136.264746] ? __kasan_check_read+0x11/0x20
[ 136.264836] driver_detach+0xc4/0x190
[ 136.264924] bus_remove_driver+0x130/0x2a0
[ 136.265012] driver_unregister+0x68/0x90
[ 136.265095] pci_unregister_driver+0x24/0x240
[ 136.265177] ? find_module_all+0x13e/0x1c0
[ 136.265267] ath12k_pci_exit+0x10/0x20 [ath12k]
[ 136.265372] __do_sys_delete_module+0x32d/0x540
[ 136.265454] ? module_flags+0x300/0x300
[ 136.265708] ? kmem_cache_free+0xea/0x3a0
[ 136.265795] ? __fput+0x404/0xa50
[ 136.265887] ? debug_smp_processor_id+0x17/0x20
[ 136.265983] __x64_sys_delete_module+0x4f/0x70
[ 136.266064] do_syscall_64+0x66/0x130
[ 136.266149] entry_SYSCALL_64_after_hwframe+0x46/0x4e
[ 136.266256] RIP: 0033:0x7efe74591c8b
[ 136.266347] Code: 73 01 c3 48 8b 0d 05 c2 0c 00 f7 d8 64 89 01 48 83 c8 ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa b8 b0 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d d5 c1 0c 00 f7 d8 64 89 01 48
[ 136.266435] RSP: 002b:00007ffea9c34cb8 EFLAGS: 00000206 ORIG_RAX: 00000000000000b0
[ 136.266550] RAX: ffffffffffffffda RBX: 000055db95b4c7e0 RCX: 00007efe74591c8b
[ 136.266679] RDX: 000000000000000a RSI: 0000000000000800 RDI: 000055db95b4c848
[ 136.266808] RBP: 00007ffea9c34d18 R08: 0000000000000000 R09: 0000000000000000
[ 136.266934] R10: 00007efe7460dac0 R11: 0000000000000206 R12: 00007ffea9c34ef0
[ 136.267062] R13: 00007ffea9c36ebf R14: 000055db95b4b2a0 R15: 000055db95b4c7e0
[ 136.267221] </TASK>
[ 136.267390] ---[ end trace ]---

--
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

2024-01-26 10:21:24

by Kang Yang

[permalink] [raw]
Subject: Re: [PATCH v3 00/10] wifi: ath12k: P2P support for WCN7850



On 1/25/2024 10:44 PM, Kalle Valo wrote:
> Kang Yang <[email protected]> writes:
>
>> Add P2P support for WCN7850.
>>
>> Kang Yang (10):
>> wifi: ath12k: change interface combination for P2P mode
>> wifi: ath12k: add P2P IE in beacon template
>> wifi: ath12k: implement handling of P2P NoA event
>> wifi: ath12k: implement remain on channel for P2P mode
>> wifi: ath12k: change WLAN_SCAN_PARAMS_MAX_IE_LEN from 256 to 512
>> wifi: ath12k: allow specific mgmt frame tx while vdev is not up
>> wifi: ath12k: fix broken structure wmi_vdev_create_cmd
>> wifi: ath12k: move peer delete after vdev stop of station for WCN7850
>> wifi: ath12k: designating channel frequency for ROC scan
>> wifi: ath12k: advertise P2P dev support for WCN7850
>>
>> v3: rebase on new ath-tag, use ath12k_ah_to_ar() get ar(Karthikeyan).
>> v2:
>> 1. add Tested-on tag of QCN9274.
>> 2. update copyright in patch #1, #2, #4 and #10.
>
> I have not been able to run any p2p tests yet but during rmmod with
> WCN7850 I now see:
>
> [ 136.260660] ------------[ cut here ]------------
> [ 136.260909] UBSAN: shift-out-of-bounds in drivers/net/wireless/ath/ath12k/mac.c:6005:38
> [ 136.261008] shift exponent 255 is too large for 64-bit type 'long long int'


It seems you enable CONFIG_UBSAN, CONFIG_UBSAN_SANITIZE_ALL and other
CONFIG_UBSAN_XXX.

I will add them to my config file and debug this warning.

It's been a long time since the last update of kernel config. Can you
share the new one if convenient?


> [ 136.261096] CPU: 1 PID: 1993 Comm: rmmod Not tainted 6.8.0-rc1-wt-ath+ #1262
> [ 136.261180] Hardware name: Intel(R) Client Systems NUC8i7HVK/NUC8i7HVB, BIOS HNKBLi70.86A.0067.2021.0528.1339 05/28/2021
> [ 136.261261] Call Trace:
> [ 136.261343] <TASK>
> [ 136.261427] dump_stack_lvl+0x82/0xc0
> [ 136.261513] dump_stack+0x10/0x20
> [ 136.261597] __ubsan_handle_shift_out_of_bounds+0x13f/0x300
> [ 136.261711] ath12k_mac_op_remove_interface.cold+0x17/0x86 [ath12k]
> [ 136.261941] drv_remove_interface+0x215/0x4a0 [mac80211]
> [ 136.262102] ieee80211_do_stop+0xfe4/0x2390 [mac80211]
> [ 136.262258] ? trace_contention_end+0xe2/0x110
> [ 136.262359] ? ieee80211_del_virtual_monitor+0x60/0x60 [mac80211]
> [ 136.262507] ? mutex_lock_io_nested+0x1260/0x1260
> [ 136.262610] ? debug_smp_processor_id+0x17/0x20
> [ 136.262702] ? trace_contention_end+0xe2/0x110
> [ 136.262792] ieee80211_sdata_stop+0x4d/0x70 [mac80211]
> [ 136.262961] ieee80211_stop_p2p_device+0xd/0x10 [mac80211]
> [ 136.263127] cfg80211_stop_p2p_device+0x18e/0x580 [cfg80211]
> [ 136.263282] cfg80211_shutdown_all_interfaces+0x10c/0x190 [cfg80211]
> [ 136.263434] ieee80211_remove_interfaces+0xc7/0x8f0 [mac80211]
> [ 136.263611] ? __wait_for_common+0x42f/0x6d0
> [ 136.263702] ? ieee80211_sdata_stop+0x70/0x70 [mac80211]
> [ 136.263881] ieee80211_unregister_hw+0x4f/0x380 [mac80211]
> [ 136.264045] ath12k_mac_hw_unregister+0x7a/0x250 [ath12k]
> [ 136.264155] ath12k_mac_unregister+0x7f/0xc0 [ath12k]
> [ 136.264265] ath12k_core_deinit+0x2e/0x130 [ath12k]
> [ 136.264372] ath12k_pci_remove+0xad/0x1a0 [ath12k]
> [ 136.264478] pci_device_remove+0x93/0x1b0
> [ 136.264567] device_remove+0xbf/0x150
> [ 136.264662] device_release_driver_internal+0x3c3/0x580
> [ 136.264746] ? __kasan_check_read+0x11/0x20
> [ 136.264836] driver_detach+0xc4/0x190
> [ 136.264924] bus_remove_driver+0x130/0x2a0
> [ 136.265012] driver_unregister+0x68/0x90
> [ 136.265095] pci_unregister_driver+0x24/0x240
> [ 136.265177] ? find_module_all+0x13e/0x1c0
> [ 136.265267] ath12k_pci_exit+0x10/0x20 [ath12k]
> [ 136.265372] __do_sys_delete_module+0x32d/0x540
> [ 136.265454] ? module_flags+0x300/0x300
> [ 136.265708] ? kmem_cache_free+0xea/0x3a0
> [ 136.265795] ? __fput+0x404/0xa50
> [ 136.265887] ? debug_smp_processor_id+0x17/0x20
> [ 136.265983] __x64_sys_delete_module+0x4f/0x70
> [ 136.266064] do_syscall_64+0x66/0x130
> [ 136.266149] entry_SYSCALL_64_after_hwframe+0x46/0x4e
> [ 136.266256] RIP: 0033:0x7efe74591c8b
> [ 136.266347] Code: 73 01 c3 48 8b 0d 05 c2 0c 00 f7 d8 64 89 01 48 83 c8 ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa b8 b0 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d d5 c1 0c 00 f7 d8 64 89 01 48
> [ 136.266435] RSP: 002b:00007ffea9c34cb8 EFLAGS: 00000206 ORIG_RAX: 00000000000000b0
> [ 136.266550] RAX: ffffffffffffffda RBX: 000055db95b4c7e0 RCX: 00007efe74591c8b
> [ 136.266679] RDX: 000000000000000a RSI: 0000000000000800 RDI: 000055db95b4c848
> [ 136.266808] RBP: 00007ffea9c34d18 R08: 0000000000000000 R09: 0000000000000000
> [ 136.266934] R10: 00007efe7460dac0 R11: 0000000000000206 R12: 00007ffea9c34ef0
> [ 136.267062] R13: 00007ffea9c36ebf R14: 000055db95b4b2a0 R15: 000055db95b4c7e0
> [ 136.267221] </TASK>
> [ 136.267390] ---[ end trace ]---
>

2024-01-29 13:02:21

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH v3 00/10] wifi: ath12k: P2P support for WCN7850

Kang Yang <[email protected]> writes:

> On 1/25/2024 10:44 PM, Kalle Valo wrote:
>> Kang Yang <[email protected]> writes:
>>
>>> Add P2P support for WCN7850.
>>>
>>> Kang Yang (10):
>>> wifi: ath12k: change interface combination for P2P mode
>>> wifi: ath12k: add P2P IE in beacon template
>>> wifi: ath12k: implement handling of P2P NoA event
>>> wifi: ath12k: implement remain on channel for P2P mode
>>> wifi: ath12k: change WLAN_SCAN_PARAMS_MAX_IE_LEN from 256 to 512
>>> wifi: ath12k: allow specific mgmt frame tx while vdev is not up
>>> wifi: ath12k: fix broken structure wmi_vdev_create_cmd
>>> wifi: ath12k: move peer delete after vdev stop of station for WCN7850
>>> wifi: ath12k: designating channel frequency for ROC scan
>>> wifi: ath12k: advertise P2P dev support for WCN7850
>>>
>>> v3: rebase on new ath-tag, use ath12k_ah_to_ar() get ar(Karthikeyan).
>>> v2:
>>> 1. add Tested-on tag of QCN9274.
>>> 2. update copyright in patch #1, #2, #4 and #10.
>> I have not been able to run any p2p tests yet but during rmmod with
>> WCN7850 I now see:
>> [ 136.260660] ------------[ cut here ]------------
>> [ 136.260909] UBSAN: shift-out-of-bounds in
>> drivers/net/wireless/ath/ath12k/mac.c:6005:38
>> [ 136.261008] shift exponent 255 is too large for 64-bit type 'long long int'
>
>
> It seems you enable CONFIG_UBSAN, CONFIG_UBSAN_SANITIZE_ALL and other
> CONFIG_UBSAN_XXX.

Yes, I try to enable debug facilities as much as possible. They are
really good at finding issues in the code.

> I will add them to my config file and debug this warning.

Thanks.

> It's been a long time since the last update of kernel config. Can you
> share the new one if convenient?

Yeah, it is. I updated it now.

--
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

2024-01-30 07:02:44

by Kang Yang

[permalink] [raw]
Subject: Re: [PATCH v3 00/10] wifi: ath12k: P2P support for WCN7850



On 1/29/24 9:02 PM, Kalle Valo <[email protected]> wrote:
> Kang Yang <[email protected]> writes:
>
> > On 1/25/2024 10:44 PM, Kalle Valo wrote:
> >> Kang Yang <[email protected]> writes:
> >>
> >>> Add P2P support for WCN7850.
> >>>
> >>> Kang Yang (10):
> >>> wifi: ath12k: change interface combination for P2P mode
> >>> wifi: ath12k: add P2P IE in beacon template
> >>> wifi: ath12k: implement handling of P2P NoA event
> >>> wifi: ath12k: implement remain on channel for P2P mode
> >>> wifi: ath12k: change WLAN_SCAN_PARAMS_MAX_IE_LEN from 256 to 512
> >>> wifi: ath12k: allow specific mgmt frame tx while vdev is not up
> >>> wifi: ath12k: fix broken structure wmi_vdev_create_cmd
> >>> wifi: ath12k: move peer delete after vdev stop of station for WCN7850
> >>> wifi: ath12k: designating channel frequency for ROC scan
> >>> wifi: ath12k: advertise P2P dev support for WCN7850
> >>>
> >>> v3: rebase on new ath-tag, use ath12k_ah_to_ar() get ar(Karthikeyan).
> >>> v2:
> >>> 1. add Tested-on tag of QCN9274.
> >>> 2. update copyright in patch #1, #2, #4 and #10.
> >> I have not been able to run any p2p tests yet but during rmmod with
> >> WCN7850 I now see:
> >> [ 136.260660] ------------[ cut here ]------------
> >> [ 136.260909] UBSAN: shift-out-of-bounds in
> >> drivers/net/wireless/ath/ath12k/mac.c:6005:38
> >> [ 136.261008] shift exponent 255 is too large for 64-bit type 'long long int'
> >
> >
> > It seems you enable CONFIG_UBSAN, CONFIG_UBSAN_SANITIZE_ALL and other
> > CONFIG_UBSAN_XXX.
>
> Yes, I try to enable debug facilities as much as possible. They are
> really good at finding issues in the code.
>
> > I will add them to my config file and debug this warning.
>
> Thanks.
>

Now, i fix this warning with new patch '[PATCH v6 02/11] wifi: ath12k: fix incorrect logic of calculating vdev_stats_id'.

Please ignore this version.


> > It's been a long time since the last update of kernel config. Can you
> > share the new one if convenient?
>
> Yeah, it is. I updated it now.
>
>