lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ef342a0e-5f04-442c-aa4a-3375c6023547@oss.qualcomm.com>
Date: Tue, 6 Jan 2026 18:01:18 +0800
From: Baochen Qiang <baochen.qiang@....qualcomm.com>
To: Thomas Fourier <fourier.thomas@...il.com>
Cc: stable@...r.kernel.org, Jeff Johnson <jjohnson@...nel.org>,
        Pradeep Kumar Chitrapu <quic_pradeepc@...cinc.com>,
        Sriram R <quic_srirrama@...cinc.com>, Kalle Valo <kvalo@...nel.org>,
        Wen Gong <quic_wgong@...cinc.com>, linux-wireless@...r.kernel.org,
        ath12k@...ts.infradead.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH net] wifi: ath12k: fix dma_free_coherent() pointer



On 1/6/2026 4:49 PM, Thomas Fourier wrote:
> dma_alloc_coherent() allocates a DMA mapped buffer and stores the
> addresses in XXX_unaligned fields.  Those should be reused when freeing
> the buffer rather than the aligned addresses.
> 
> Fixes: d889913205cf ("wifi: ath12k: driver for Qualcomm Wi-Fi 7 devices")
> Cc: <stable@...r.kernel.org>
> Signed-off-by: Thomas Fourier <fourier.thomas@...il.com>
> ---
>  drivers/net/wireless/ath/ath12k/ce.c | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/net/wireless/ath/ath12k/ce.c b/drivers/net/wireless/ath/ath12k/ce.c
> index 9a63608838ac..4aea58446838 100644
> --- a/drivers/net/wireless/ath/ath12k/ce.c
> +++ b/drivers/net/wireless/ath/ath12k/ce.c
> @@ -984,8 +984,8 @@ void ath12k_ce_free_pipes(struct ath12k_base *ab)
>  			dma_free_coherent(ab->dev,
>  					  pipe->src_ring->nentries * desc_sz +
>  					  CE_DESC_RING_ALIGN,
> -					  pipe->src_ring->base_addr_owner_space,
> -					  pipe->src_ring->base_addr_ce_space);
> +					  pipe->src_ring->base_addr_owner_space_unaligned,
> +					  pipe->src_ring->base_addr_ce_space_unaligned);
>  			kfree(pipe->src_ring);
>  			pipe->src_ring = NULL;
>  		}
> @@ -995,8 +995,8 @@ void ath12k_ce_free_pipes(struct ath12k_base *ab)
>  			dma_free_coherent(ab->dev,
>  					  pipe->dest_ring->nentries * desc_sz +
>  					  CE_DESC_RING_ALIGN,
> -					  pipe->dest_ring->base_addr_owner_space,
> -					  pipe->dest_ring->base_addr_ce_space);
> +					  pipe->dest_ring->base_addr_owner_space_unaligned,
> +					  pipe->dest_ring->base_addr_ce_space_unaligned);
>  			kfree(pipe->dest_ring);
>  			pipe->dest_ring = NULL;
>  		}
> @@ -1007,8 +1007,8 @@ void ath12k_ce_free_pipes(struct ath12k_base *ab)
>  			dma_free_coherent(ab->dev,
>  					  pipe->status_ring->nentries * desc_sz +
>  					  CE_DESC_RING_ALIGN,
> -					  pipe->status_ring->base_addr_owner_space,
> -					  pipe->status_ring->base_addr_ce_space);
> +					  pipe->status_ring->base_addr_owner_space_unaligned,
> +					  pipe->status_ring->base_addr_ce_space_unaligned);
>  			kfree(pipe->status_ring);
>  			pipe->status_ring = NULL;
>  		}

Reviewed-by: Baochen Qiang <baochen.qiang@....qualcomm.com>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ