Harshitha Prem <quic_hprem@xxxxxxxxxxx> wrote: > When max virtual ap interfaces are configured in all the bands with > ACS and hostapd restart is done every 60s, a crash is observed at > random times. > > In the above scenario, a fragmented packet is received for self peer, > for which rx_tid and rx_frags are not initialized in datapath. > While handling this fragment, crash is observed as the rx_frag list > is uninitialized and when we walk in ath12k_dp_rx_h_sort_frags, > skb null leads to exception. > > To address this, before processing received fragments we check > dp_setup_done flag is set to ensure that peer has completed its > dp peer setup for fragment queue, else ignore processing the > fragments. > > Call trace: > PC points to "ath12k_dp_process_rx_err+0x4e8/0xfcc [ath12k]" > LR points to "ath12k_dp_process_rx_err+0x480/0xfcc [ath12k]". > The Backtrace obtained is as follows: > ath12k_dp_process_rx_err+0x4e8/0xfcc [ath12k] > ath12k_dp_service_srng+0x78/0x260 [ath12k] > ath12k_pci_write32+0x990/0xb0c [ath12k] > __napi_poll+0x30/0xa4 > net_rx_action+0x118/0x270 > __do_softirq+0x10c/0x244 > irq_exit+0x64/0xb4 > __handle_domain_irq+0x88/0xac > gic_handle_irq+0x74/0xbc > el1_irq+0xf0/0x1c0 > arch_cpu_idle+0x10/0x18 > do_idle+0x104/0x248 > cpu_startup_entry+0x20/0x64 > rest_init+0xd0/0xdc > arch_call_rest_init+0xc/0x14 > > Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.0.1-00029-QCAHKSWPL_SILICONZ-1 > > Signed-off-by: Harshitha Prem <quic_hprem@xxxxxxxxxxx> > Signed-off-by: Kalle Valo <quic_kvalo@xxxxxxxxxxx> 2 patches applied to ath-next branch of ath.git, thanks. bbc86757ca62 wifi: ath12k: Ignore fragments from uninitialized peer in dp d48f55e773dc wifi: ath12k: fix undefined behavior with __fls in dp -- https://patchwork.kernel.org/project/linux-wireless/patch/20230821130343.29495-2-quic_hprem@xxxxxxxxxxx/ https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches