Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

net: wan/fsl_ucc_hdlc: Fix dma_free_coherent() in uhdlc_memclean()

The priv->rx_buffer and priv->tx_buffer are alloc'd together as
contiguous buffers in uhdlc_init() but freed as two buffers in
uhdlc_memclean().

Change the cleanup to only call dma_free_coherent() once on the whole
buffer.

Reviewed-by: Christophe Leroy (CS GROUP) <chleroy@kernel.org>
Fixes: c19b6d246a35 ("drivers/net: support hdlc function for QE-UCC")
Cc: <stable@vger.kernel.org>
Signed-off-by: Thomas Fourier <fourier.thomas@gmail.com>
Link: https://patch.msgid.link/20260206085334.21195-2-fourier.thomas@gmail.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>

authored by

Thomas Fourier and committed by
Paolo Abeni
36bd7d5d 308e7e4d

+2 -6
+2 -6
drivers/net/wan/fsl_ucc_hdlc.c
··· 790 790 791 791 if (priv->rx_buffer) { 792 792 dma_free_coherent(priv->dev, 793 - RX_BD_RING_LEN * MAX_RX_BUF_LENGTH, 793 + (RX_BD_RING_LEN + TX_BD_RING_LEN) * MAX_RX_BUF_LENGTH, 794 794 priv->rx_buffer, priv->dma_rx_addr); 795 795 priv->rx_buffer = NULL; 796 796 priv->dma_rx_addr = 0; 797 - } 798 797 799 - if (priv->tx_buffer) { 800 - dma_free_coherent(priv->dev, 801 - TX_BD_RING_LEN * MAX_RX_BUF_LENGTH, 802 - priv->tx_buffer, priv->dma_tx_addr); 803 798 priv->tx_buffer = NULL; 804 799 priv->dma_tx_addr = 0; 800 + 805 801 } 806 802 } 807 803