mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 02:50:49 +09:00
wifi: ath11k: fix writing to unintended memory region
[ Upstream commit756a7f9087] While initializing spectral, the magic value is getting written to the invalid memory address leading to random boot-up crash. This occurs due to the incorrect index increment in ath11k_dbring_fill_magic_value function. Fix it by replacing the existing logic with memset32 to ensure there is no invalid memory access. Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.4.0.1-01838-QCAHKSWPL_SILICONZ-1 Fixes:d3d358efc5("ath11k: add spectral/CFR buffer validation support") Signed-off-by: P Praneesh <quic_ppranees@quicinc.com> Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com> Link: https://lore.kernel.org/r/20230321052900.16895-1-quic_ppranees@quicinc.com Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
f43744872a
commit
cfc7ee210f
@@ -26,13 +26,13 @@ int ath11k_dbring_validate_buffer(struct ath11k *ar, void *buffer, u32 size)
|
|||||||
static void ath11k_dbring_fill_magic_value(struct ath11k *ar,
|
static void ath11k_dbring_fill_magic_value(struct ath11k *ar,
|
||||||
void *buffer, u32 size)
|
void *buffer, u32 size)
|
||||||
{
|
{
|
||||||
u32 *temp;
|
/* memset32 function fills buffer payload with the ATH11K_DB_MAGIC_VALUE
|
||||||
int idx;
|
* and the variable size is expected to be the number of u32 values
|
||||||
|
* to be stored, not the number of bytes.
|
||||||
|
*/
|
||||||
|
size = size / sizeof(u32);
|
||||||
|
|
||||||
size = size >> 2;
|
memset32(buffer, ATH11K_DB_MAGIC_VALUE, size);
|
||||||
|
|
||||||
for (idx = 0, temp = buffer; idx < size; idx++, temp++)
|
|
||||||
*temp++ = ATH11K_DB_MAGIC_VALUE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ath11k_dbring_bufs_replenish(struct ath11k *ar,
|
static int ath11k_dbring_bufs_replenish(struct ath11k *ar,
|
||||||
|
|||||||
Reference in New Issue
Block a user