wifi: ath12k: check M3 buffer size as well whey trying to reuse it
authorBaochen Qiang <quic_bqiang@quicinc.com>
Thu, 25 Apr 2024 02:17:40 +0000 (10:17 +0800)
committerKalle Valo <quic_kvalo@quicinc.com>
Tue, 30 Apr 2024 13:34:00 +0000 (16:34 +0300)
commit05090ae82f44570fefddb4e1be1d7e5770d6de40
treedd807f2e78e0b15fd72ef9f5041fed5855d7090d
parentb6dd09b3dac89b45d1ea3e3bd035a3859c0369a0
wifi: ath12k: check M3 buffer size as well whey trying to reuse it

Currently in recovery/resume cases, we do not free M3 buffer but
instead will reuse it. This is done by checking m3_mem->vaddr: if it
is not NULL we believe M3 buffer is ready and go ahead to reuse it.

Note that m3_mem->size is not checked. This is safe for now because
currently M3 reuse logic only gets executed in recovery/resume cases
and the size keeps unchanged in either of them.

However ideally the size should be checked as well, to make the code
safer. So add the check there. Now if that check fails, free old M3
buffer and reallocate a new one.

Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.30

Fixes: 303c017821d8 ("wifi: ath12k: fix kernel crash during resume")
Signed-off-by: Baochen Qiang <quic_bqiang@quicinc.com>
Acked-by: Jeff Johnson <quic_jjohnson@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://msgid.link/20240425021740.29221-1-quic_bqiang@quicinc.com
drivers/net/wireless/ath/ath12k/qmi.c