[PATCH 1/2] wifi: ath12k: Ignore fragments from uninitialized peer in dp

Harshitha Prem quic_hprem at quicinc.com
Fri Aug 11 02:17:40 PDT 2023



On 8/9/2023 11:41 PM, Jeff Johnson wrote:
> On 8/8/2023 9:27 PM, Harshitha Prem 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.
> 
> nit: please fill the paragraph to 70+ columns
> 
>>
>> 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 uninitialised and when we walk in ath12k_dp_rx_h_sort_frags,
> 
> nit: s/uninitialised /uninitialized/
> 
>> 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 at quicinc.com>
>> ---
> 
> actual code patch LGTM
> 
Thank you Jeff. Sure, will update the commit message.

Thanks,
Harshitha



More information about the ath12k mailing list