mbox series

[v2,0/5] wifi: ath12k: Add support to enable debugfs_htt_stats

Message ID 20240510050806.514126-1-quic_rgnanase@quicinc.com
Headers show
Series wifi: ath12k: Add support to enable debugfs_htt_stats | expand

Message

Ramya Gnanasekar May 10, 2024, 5:08 a.m. UTC
Bring in the basic infrastructure necessary for enabling htt_stats via debugfs.
Patch series bring support to request stats type to firmware, dump the stats
and request to reset the stats from firmware.

Schema with one ath12k device:

ath12k
`-- pci-0000:06:00.0
    |-- mac0
        `-- htt_stats
        |-- htt_stats_type
        |-- htt_stats_reset

Dinesh Karthikeyan (3):
  wifi: ath12k: Add support to enable debugfs_htt_stats
  wifi: ath12k: Add htt_stats_dump file ops support
  wifi: ath12k: Add support to parse requested stats_type

Lingbo Kong (1):
  wifi: ath12k: Fix Pdev id in HTT stats request for WCN7850

Ramya Gnanasekar (1):
  wifi: ath12k: Dump additional Tx PDEV HTT stats

 drivers/net/wireless/ath/ath12k/Makefile      |   2 +-
 drivers/net/wireless/ath/ath12k/core.h        |  11 +
 drivers/net/wireless/ath/ath12k/debugfs.c     |   3 +
 .../wireless/ath/ath12k/debugfs_htt_stats.c   | 714 ++++++++++++++++++
 .../wireless/ath/ath12k/debugfs_htt_stats.h   | 300 ++++++++
 drivers/net/wireless/ath/ath12k/dp_rx.c       |  10 +-
 drivers/net/wireless/ath/ath12k/dp_rx.h       |   4 +
 drivers/net/wireless/ath/ath12k/dp_tx.c       |   8 +-
 drivers/net/wireless/ath/ath12k/mac.c         |  61 ++
 drivers/net/wireless/ath/ath12k/mac.h         |   3 +
 10 files changed, 1110 insertions(+), 6 deletions(-)
 create mode 100644 drivers/net/wireless/ath/ath12k/debugfs_htt_stats.c
 create mode 100644 drivers/net/wireless/ath/ath12k/debugfs_htt_stats.h


base-commit: 1025c616ee13372f3803b158abb1d87ef368ae3d

Comments

Jeff Johnson May 10, 2024, 7:53 p.m. UTC | #1
On 5/9/2024 10:08 PM, Ramya Gnanasekar wrote:
> From: Dinesh Karthikeyan <quic_dinek@quicinc.com>
> 
> Add dump_htt_stats file operation to dump the stats value requested
> for the requested stats_type.
> Stats sent from firmware will be cumulative. Hence add debugfs to reset
> the requested stats type.
> 
> Example with one ath12k device:
> 
> ath12k
> `-- pci-0000:06:00.0
>     |-- mac0
>         `-- htt_stats
>         |-- htt_stats_type
>         |-- htt_stats_reset
> 
> Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1
> Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3
> 
> Signed-off-by: Dinesh Karthikeyan <quic_dinek@quicinc.com>
> Co-developed-by: Ramya Gnanasekar <quic_rgnanase@quicinc.com>
> Signed-off-by: Ramya Gnanasekar <quic_rgnanase@quicinc.com>

Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
Jeff Johnson May 10, 2024, 7:53 p.m. UTC | #2
On 5/9/2024 10:08 PM, Ramya Gnanasekar wrote:
> From: Lingbo Kong <quic_lingbok@quicinc.com>
> 
> Pdev id from mac phy capabilities will be sent as a part of
> HTT stats request to firmware. This causes issue with single pdev
> devices where fimrware does not respond to the stats request
> sent from host.
> 
> Single pdev devices firmware expects pdev id as 1 for 5GHz/6GHz
> phy and 2 for 2GHz band. Handle pdev id for single phy device
> while sending HTT stats request message to firmware.
> 
> Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1
> Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3
> 
> Signed-off-by: Lingbo Kong <quic_lingbok@quicinc.com>
> Signed-off-by: Ramya Gnanasekar <quic_rgnanase@quicinc.com>

Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
Jeff Johnson May 10, 2024, 7:53 p.m. UTC | #3
On 5/9/2024 10:08 PM, Ramya Gnanasekar wrote:
> From: Dinesh Karthikeyan <quic_dinek@quicinc.com>
> 
> Add extended htt stats parser and print the corresponding TLVs associated
> with the requested htt_stats_type.
> Add support for TX PDEV related htt stats.
> 
> Sample output:
> -------------
> echo 1 > /sys/kernel/debug/ath12k/pci-0000\:06\:00.0/mac0/htt_stats_type
> cat /sys/kernel/debug/ath12k/pci-0000\:06\:00.0/mac0/htt_stats
> HTT_TX_PDEV_STATS_CMN_TLV:
> mac_id = 0
> comp_delivered = 0
> self_triggers = 256
> hw_queued = 275
> hw_reaped = 275
> underrun = 241
> hw_paused = 0
> hw_flush = 0
> hw_filt = 1
> tx_abort = 0
> ppdu_ok = 246
> mpdu_requeued = 0
> tx_xretry = 0
> data_rc = 3
> mpdu_dropped_xretry = 0
> illegal_rate_phy_err = 0
> cont_xretry = 0
> tx_timeout = 0
> tx_time_dur_data = 0
> pdev_resets = 0
> phy_underrun = 0
> txop_ovf = 0
> seq_posted = 247
> seq_failed_queueing = 0
> seq_completed = 247
> seq_restarted = 0
> seq_txop_repost_stop = 0
> next_seq_cancel = 0
> dl_mu_mimo_seq_posted = 0
> dl_mu_ofdma_seq_posted = 0
> ul_mu_mimo_seq_posted = 0
> ul_mu_ofdma_seq_posted = 0
> mu_mimo_peer_blacklisted = 0
> seq_qdepth_repost_stop = 0
> seq_min_msdu_repost_stop = 0
> mu_seq_min_msdu_repost_stop = 0
> seq_switch_hw_paused = 0
> next_seq_posted_dsr = 0
> seq_posted_isr = 0
> seq_ctrl_cached = 0
> mpdu_count_tqm = 0
> msdu_count_tqm = 0
> mpdu_removed_tqm = 0
> msdu_removed_tqm = 0
> remove_mpdus_max_retries = 0
> mpdus_sw_flush = 0
> mpdus_hw_filter = 0
> mpdus_truncated = 0
> mpdus_ack_failed = 0
> mpdus_expired = 0
> mpdus_seq_hw_retry = 0
> ack_tlv_proc = 0
> coex_abort_mpdu_cnt_valid = 0
> coex_abort_mpdu_cnt = 5
> num_total_ppdus_tried_ota = 5
> num_data_ppdus_tried_ota = 0
> local_ctrl_mgmt_enqued = 247
> local_ctrl_mgmt_freed = 247
> local_data_enqued = 0
> local_data_freed = 0
> mpdu_tried = 0
> isr_wait_seq_posted = 0
> tx_active_dur_us_low = 0
> tx_active_dur_us_high = 0
> fes_offsets_err_cnt = 0
> 
> HTT_TX_PDEV_STATS_URRN_TLV:
> urrn_stats =  0:0, 1:241, 2:0,
> 
> HTT_TX_PDEV_STATS_SIFS_TLV:
> sifs_status =  0:0, 1:0, 2:0, 3:0, 4:0, 5:0, 6:0, 7:0, 8:0,
> 
> HTT_TX_PDEV_STATS_FLUSH_TLV:
> flush_errs =  0:0, 1:0, 2:0, 3:0, 4:0, 5:0, 6:0, 7:0, 8:0, 9:0, 10:0,
> 11:0, 12:0, 13:0, 14:0, 15:0, 16:0, 17:0, 18:0, 19:0, 20:0, 21:0, 22:0,
> 23:0, 24:0, 25:0, 26:0, 27:0, 28:0, 29:0, 30:0, 31:0, 32:0, 33:0, 34:0,
> 35:0, 36:0, 37:0, 38:0, 39:0, 40:0, 41:0, 42:0, 43:0, 44:0, 45:0, 46:0,
> 47:0, 48:0, 49:0, 50:0, 51:0, 52:0, 53:0, 54:0, 55:0, 56:0, 57:0, 58:0,
> 59:0, 60:0, 61:0, 62:0, 63:0, 64:0, 65:0, 66:0, 67:0, 68:0, 69:0, 70:0,
> 71:0, 72:0, 73:0, 74:0, 75:0, 76:0, 77:0, 78:0, 79:0, 80:0, 81:0, 82:0,
> 83:0, 84:0, 85:0, 86:0, 87:0, 88:0, 89:0, 90:0, 91:0, 92:0, 93:0, 94:0,
> 95:0, 96:0, 97:0, 98:0, 99:0, 100:0, 101:0, 102:0, 103:0, 104:0, 105:0,
> 106:0, 107:0, 108:0, 109:0, 110:0, 111:0, 112:0, 113:0, 114:0, 115:0,
> 116:0, 117:0, 118:0, 119:0, 120:0, 121:0, 122:0, 123:0, 124:0, 125:0,
> 126:0, 127:0,
> 
> Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1
> Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3
> 
> Signed-off-by: Dinesh Karthikeyan <quic_dinek@quicinc.com>
> Co-developed-by: Ramya Gnanasekar <quic_rgnanase@quicinc.com>
> Signed-off-by: Ramya Gnanasekar <quic_rgnanase@quicinc.com>

Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
Kalle Valo May 21, 2024, 7:40 a.m. UTC | #4
Ramya Gnanasekar <quic_rgnanase@quicinc.com> writes:

> Bring in the basic infrastructure necessary for enabling htt_stats via debugfs.
> Patch series bring support to request stats type to firmware, dump the stats
> and request to reset the stats from firmware.
>
> Schema with one ath12k device:
>
> ath12k
> `-- pci-0000:06:00.0
>     |-- mac0
>         `-- htt_stats
>         |-- htt_stats_type
>         |-- htt_stats_reset
>
> Dinesh Karthikeyan (3):
>   wifi: ath12k: Add support to enable debugfs_htt_stats
>   wifi: ath12k: Add htt_stats_dump file ops support
>   wifi: ath12k: Add support to parse requested stats_type
>
> Lingbo Kong (1):
>   wifi: ath12k: Fix Pdev id in HTT stats request for WCN7850
>
> Ramya Gnanasekar (1):
>   wifi: ath12k: Dump additional Tx PDEV HTT stats

I did a quick test with WCN7850:

cd /sys/kernel/debug/ath12k/pci-0000:06:00.0/mac0
echo 1 > htt_stats_type 
cat htt_stats

And in the dmesg I see:

[  178.634501] ==================================================================
[  178.634870] BUG: KASAN: slab-out-of-bounds in skip_spaces+0x105/0x110
[  178.635156] Read of size 1 at addr ffff888109d4696a by task bash/1474
[  178.635367] 
[  178.635513] CPU: 1 PID: 1474 Comm: bash Not tainted 6.9.0-wt-ath+ #1523
[  178.635747] Hardware name: Intel(R) Client Systems NUC8i7HVK/NUC8i7HVB, BIOS HNKBLi70.86A.0067.2021.0528.1339 05/28/2021
[  178.636078] Call Trace:
[  178.636238]  <TASK>
[  178.636393]  dump_stack_lvl+0x7d/0xe0
[  178.636578]  print_address_description.constprop.0+0x33/0x3a0
[  178.636786]  print_report+0xb5/0x260
[  178.637004]  ? kasan_complete_mode_report_info+0x3c/0x1a0
[  178.637211]  kasan_report+0xd8/0x110
[  178.637353]  ? skip_spaces+0x105/0x110
[  178.637392]  ? skip_spaces+0x105/0x110
[  178.637433]  __asan_report_load1_noabort+0x14/0x20
[  178.637488]  skip_spaces+0x105/0x110
[  178.637526]  vsscanf+0x3e9/0x3100
[  178.637573]  ? ip6_compressed_string+0xb80/0xb80
[  178.637614]  ? debug_smp_processor_id+0x17/0x20
[  178.637655]  ? __lock_release.isra.0+0x49c/0xae0
[  178.637696]  ? reacquire_held_locks+0x4d0/0x4d0
[  178.637736]  ? lock_sync+0x1a0/0x1a0
[  178.637774]  sscanf+0xa6/0xd0
[  178.637809]  ? vsscanf+0x3100/0x3100
[  178.637846]  ? __might_fault+0x119/0x170
[  178.637933]  ? __might_fault+0xc0/0x170
[  178.637983]  ? __kasan_check_write+0x14/0x20
[  178.638023]  ath12k_write_htt_stats_type+0x122/0x330 [ath12k]
[  178.638092]  ? ath12k_open_htt_stats+0xbe0/0xbe0 [ath12k]
[  178.638515]  full_proxy_write+0xf8/0x180
[  178.638563]  vfs_write+0x220/0x1200
[  178.638601]  ? do_user_addr_fault+0x3f5/0xbb0
[  178.638640]  ? reacquire_held_locks+0x220/0x4d0
[  178.638680]  ? kernel_write+0x680/0x680
[  178.638720]  ? __kasan_check_read+0x11/0x20
[  178.638757]  ? __fget_light+0x53/0x1e0
[  178.638796]  ksys_write+0x10e/0x230
[  178.638833]  ? __ia32_sys_read+0xa0/0xa0
[  178.638917]  ? debug_smp_processor_id+0x17/0x20
[  178.638959]  __x64_sys_write+0x6d/0xa0
[  178.638997]  ? lockdep_hardirqs_on+0x7d/0x100
[  178.639036]  x64_sys_call+0x9cf/0x9e0
[  178.639073]  do_syscall_64+0x65/0x130
[  178.639111]  entry_SYSCALL_64_after_hwframe+0x4b/0x53
[  178.639721] RIP: 0033:0x7f35ca96b297
[  178.640363] Code: 64 89 02 48 c7 c0 ff ff ff ff eb bb 0f 1f 80 00 00 00 00 f3 0f 1e fa 64 8b 04 25 18 00 00 00 85 c0 75 10 b8 01 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 51 c3 48 83 ec 28 48 89 54 24 18 48 89 74 24
[  178.641642] RSP: 002b:00007fff7addfa38 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
[  178.642327] RAX: ffffffffffffffda RBX: 0000000000000002 RCX: 00007f35ca96b297
[  178.643013] RDX: 0000000000000002 RSI: 000055c737df4390 RDI: 0000000000000001
[  178.643652] RBP: 000055c737df4390 R08: 000000000000000a R09: 0000000000000001
[  178.644332] R10: 000055c703828017 R11: 0000000000000246 R12: 0000000000000002
[  178.645010] R13: 00007f35caa4a6a0 R14: 00007f35caa464a0 R15: 00007f35caa458a0
[  178.645643]  </TASK>
[  178.646321] 
[  178.646984] Allocated by task 1474 on cpu 1 at 178.634368s:
[  178.647616]  kasan_save_stack+0x26/0x50
[  178.648290]  kasan_save_track+0x18/0x60
[  178.648955]  kasan_save_alloc_info+0x37/0x40
[  178.649560]  __kasan_kmalloc+0x90/0xa0
[  178.650197]  __kmalloc+0x1be/0x3f0
[  178.650765]  ath12k_write_htt_stats_type+0xc1/0x330 [ath12k]
[  178.651408]  full_proxy_write+0xf8/0x180
[  178.652029]  vfs_write+0x220/0x1200
[  178.652583]  ksys_write+0x10e/0x230
[  178.653181]  __x64_sys_write+0x6d/0xa0
[  178.653726]  x64_sys_call+0x9cf/0x9e0
[  178.654319]  do_syscall_64+0x65/0x130
[  178.654844]  entry_SYSCALL_64_after_hwframe+0x4b/0x53
[  178.655410] 
[  178.655970] The buggy address belongs to the object at ffff888109d46968#012[  178.655970]  which belongs to the cache kmalloc-8 of size 8
[  178.657054] The buggy address is located 0 bytes to the right of#012[  178.657054]  allocated 2-byte region [ffff888109d46968, ffff888109d4696a)
[  178.658142] 
[  178.658668] The buggy address belongs to the physical page:
[  178.659256] page: refcount:1 mapcount:0 mapping:0000000000000000 index:0xffff888109d46a08 pfn:0x109d46
[  178.659824] flags: 0x200000000000a00(workingset|slab|node=0|zone=2)
[  178.660438] page_type: 0xffffffff()
[  178.661053] raw: 0200000000000a00 ffff88810004c3c0 ffffea0004275850 ffff8881000403d0
[  178.661637] raw: ffff888109d46a08 0000000000190010 00000001ffffffff 0000000000000000
[  178.662265] page dumped because: kasan: bad access detected
[  178.662872] 
[  178.663475] Memory state around the buggy address:
[  178.664108]  ffff888109d46800: fc fc fc fc fc fa fc fc fc fc fc fc fc fc fc fc
[  178.664710]  ffff888109d46880: fc fc fc fc fc fc fc fc fc fa fc fc fc fc fc fc
[  178.665972] >ffff888109d46900: fc fc fc fc fc fc fc fc fc fc fc fc fc 02 fc fc
[  178.666571]                                                           ^
[  178.667223]  ffff888109d46980: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[  178.667836]  ffff888109d46a00: fc fa fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[  178.668488] ==================================================================
[  178.669233] Disabling lock debugging due to kernel taint
Ramya Gnanasekar May 27, 2024, 10:44 a.m. UTC | #5
On 5/21/2024 1:10 PM, Kalle Valo wrote:
> Ramya Gnanasekar <quic_rgnanase@quicinc.com> writes:
> 
>> Bring in the basic infrastructure necessary for enabling htt_stats via debugfs.
>> Patch series bring support to request stats type to firmware, dump the stats
>> and request to reset the stats from firmware.
>>
>> Schema with one ath12k device:
>>
>> ath12k
>> `-- pci-0000:06:00.0
>>     |-- mac0
>>         `-- htt_stats
>>         |-- htt_stats_type
>>         |-- htt_stats_reset
>>
>> Dinesh Karthikeyan (3):
>>   wifi: ath12k: Add support to enable debugfs_htt_stats
>>   wifi: ath12k: Add htt_stats_dump file ops support
>>   wifi: ath12k: Add support to parse requested stats_type
>>
>> Lingbo Kong (1):
>>   wifi: ath12k: Fix Pdev id in HTT stats request for WCN7850
>>
>> Ramya Gnanasekar (1):
>>   wifi: ath12k: Dump additional Tx PDEV HTT stats
> 
> I did a quick test with WCN7850:
> 
> cd /sys/kernel/debug/ath12k/pci-0000:06:00.0/mac0
> echo 1 > htt_stats_type 
> cat htt_stats
> 
> And in the dmesg I see:
> 
> [  178.634501] ==================================================================
> [  178.634870] BUG: KASAN: slab-out-of-bounds in skip_spaces+0x105/0x110
> [  178.635156] Read of size 1 at addr ffff888109d4696a by task bash/1474
> [  178.635367] 
> [  178.635513] CPU: 1 PID: 1474 Comm: bash Not tainted 6.9.0-wt-ath+ #1523
> [  178.635747] Hardware name: Intel(R) Client Systems NUC8i7HVK/NUC8i7HVB, BIOS HNKBLi70.86A.0067.2021.0528.1339 05/28/2021
> [  178.636078] Call Trace:
> [  178.636238]  <TASK>
> [  178.636393]  dump_stack_lvl+0x7d/0xe0
> [  178.636578]  print_address_description.constprop.0+0x33/0x3a0
> [  178.636786]  print_report+0xb5/0x260
> [  178.637004]  ? kasan_complete_mode_report_info+0x3c/0x1a0
> [  178.637211]  kasan_report+0xd8/0x110
> [  178.637353]  ? skip_spaces+0x105/0x110
> [  178.637392]  ? skip_spaces+0x105/0x110
> [  178.637433]  __asan_report_load1_noabort+0x14/0x20
> [  178.637488]  skip_spaces+0x105/0x110
> [  178.637526]  vsscanf+0x3e9/0x3100
> [  178.637573]  ? ip6_compressed_string+0xb80/0xb80
> [  178.637614]  ? debug_smp_processor_id+0x17/0x20
> [  178.637655]  ? __lock_release.isra.0+0x49c/0xae0
> [  178.637696]  ? reacquire_held_locks+0x4d0/0x4d0
> [  178.637736]  ? lock_sync+0x1a0/0x1a0
> [  178.637774]  sscanf+0xa6/0xd0
> [  178.637809]  ? vsscanf+0x3100/0x3100
> [  178.637846]  ? __might_fault+0x119/0x170
> [  178.637933]  ? __might_fault+0xc0/0x170
> [  178.637983]  ? __kasan_check_write+0x14/0x20
> [  178.638023]  ath12k_write_htt_stats_type+0x122/0x330 [ath12k]
> [  178.638092]  ? ath12k_open_htt_stats+0xbe0/0xbe0 [ath12k]
> [  178.638515]  full_proxy_write+0xf8/0x180
> [  178.638563]  vfs_write+0x220/0x1200
> [  178.638601]  ? do_user_addr_fault+0x3f5/0xbb0
> [  178.638640]  ? reacquire_held_locks+0x220/0x4d0
> [  178.638680]  ? kernel_write+0x680/0x680
> [  178.638720]  ? __kasan_check_read+0x11/0x20
> [  178.638757]  ? __fget_light+0x53/0x1e0
> [  178.638796]  ksys_write+0x10e/0x230
> [  178.638833]  ? __ia32_sys_read+0xa0/0xa0
> [  178.638917]  ? debug_smp_processor_id+0x17/0x20
> [  178.638959]  __x64_sys_write+0x6d/0xa0
> [  178.638997]  ? lockdep_hardirqs_on+0x7d/0x100
> [  178.639036]  x64_sys_call+0x9cf/0x9e0
> [  178.639073]  do_syscall_64+0x65/0x130
> [  178.639111]  entry_SYSCALL_64_after_hwframe+0x4b/0x53
> [  178.639721] RIP: 0033:0x7f35ca96b297
> [  178.640363] Code: 64 89 02 48 c7 c0 ff ff ff ff eb bb 0f 1f 80 00 00 00 00 f3 0f 1e fa 64 8b 04 25 18 00 00 00 85 c0 75 10 b8 01 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 51 c3 48 83 ec 28 48 89 54 24 18 48 89 74 24
> [  178.641642] RSP: 002b:00007fff7addfa38 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
> [  178.642327] RAX: ffffffffffffffda RBX: 0000000000000002 RCX: 00007f35ca96b297
> [  178.643013] RDX: 0000000000000002 RSI: 000055c737df4390 RDI: 0000000000000001
> [  178.643652] RBP: 000055c737df4390 R08: 000000000000000a R09: 0000000000000001
> [  178.644332] R10: 000055c703828017 R11: 0000000000000246 R12: 0000000000000002
> [  178.645010] R13: 00007f35caa4a6a0 R14: 00007f35caa464a0 R15: 00007f35caa458a0
> [  178.645643]  </TASK>
> [  178.646321] 
> [  178.646984] Allocated by task 1474 on cpu 1 at 178.634368s:
> [  178.647616]  kasan_save_stack+0x26/0x50
> [  178.648290]  kasan_save_track+0x18/0x60
> [  178.648955]  kasan_save_alloc_info+0x37/0x40
> [  178.649560]  __kasan_kmalloc+0x90/0xa0
> [  178.650197]  __kmalloc+0x1be/0x3f0
> [  178.650765]  ath12k_write_htt_stats_type+0xc1/0x330 [ath12k]
> [  178.651408]  full_proxy_write+0xf8/0x180
> [  178.652029]  vfs_write+0x220/0x1200
> [  178.652583]  ksys_write+0x10e/0x230
> [  178.653181]  __x64_sys_write+0x6d/0xa0
> [  178.653726]  x64_sys_call+0x9cf/0x9e0
> [  178.654319]  do_syscall_64+0x65/0x130
> [  178.654844]  entry_SYSCALL_64_after_hwframe+0x4b/0x53
> [  178.655410] 
> [  178.655970] The buggy address belongs to the object at ffff888109d46968#012[  178.655970]  which belongs to the cache kmalloc-8 of size 8
> [  178.657054] The buggy address is located 0 bytes to the right of#012[  178.657054]  allocated 2-byte region [ffff888109d46968, ffff888109d4696a)
> [  178.658142] 
> [  178.658668] The buggy address belongs to the physical page:
> [  178.659256] page: refcount:1 mapcount:0 mapping:0000000000000000 index:0xffff888109d46a08 pfn:0x109d46
> [  178.659824] flags: 0x200000000000a00(workingset|slab|node=0|zone=2)
> [  178.660438] page_type: 0xffffffff()
> [  178.661053] raw: 0200000000000a00 ffff88810004c3c0 ffffea0004275850 ffff8881000403d0
> [  178.661637] raw: ffff888109d46a08 0000000000190010 00000001ffffffff 0000000000000000
> [  178.662265] page dumped because: kasan: bad access detected
> [  178.662872] 
> [  178.663475] Memory state around the buggy address:
> [  178.664108]  ffff888109d46800: fc fc fc fc fc fa fc fc fc fc fc fc fc fc fc fc
> [  178.664710]  ffff888109d46880: fc fc fc fc fc fc fc fc fc fa fc fc fc fc fc fc
> [  178.665972] >ffff888109d46900: fc fc fc fc fc fc fc fc fc fc fc fc fc 02 fc fc
> [  178.666571]                                                           ^
> [  178.667223]  ffff888109d46980: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
> [  178.667836]  ffff888109d46a00: fc fa fc fc fc fc fc fc fc fc fc fc fc fc fc fc
> [  178.668488] ==================================================================
> [  178.669233] Disabling lock debugging due to kernel taint
> 

Thanks Kalle. I was not facing this in QCN9274. May be I will check my
.config to confirm whether KASAN config is enabled.