Search Linux Wireless

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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxx>
---

actual code patch LGTM




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux