net: qcom/emac: specify the correct size when mapping a DMA buffer
Subsystems (3)
PATCH 1/1 net: qcom/emac: specify the correct size when mapping a DMA buffer
When mapping the RX DMA buffers, the driver was accidentally specifying zero for the buffer length. Under normal circumstances, SWIOTLB does not need to allocate a bounce buffer, so the address is just mapped without checking the size field. This is why the error was not detected earlier.
--- drivers/net/ethernet/qualcomm/emac/emac-mac.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
drivers/net/ethernet/qualcomm/emac/emac-mac.c +2 -1
@@ -898,7 +898,8 @@ static void emac_mac_rx_descs_refill(struct emac_adapter *adpt, curr_rxbuf->dma_addr =dma_map_single (adpt->netdev->dev.parent, skb->data, - curr_rxbuf->length,DMA_FROM_DEVICE ); + adpt->rxbuf_size,DMA_FROM_DEVICE ); + ret =dma_mapping_error (adpt->netdev->dev.parent, curr_rxbuf->dma_addr);if (ret) {
Signature · 3 lines
Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm Technologies, Inc. Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project.
David Miller
maintainerFrom: Timur Tabi <[email protected]>
Date: Fri, 22 Sep 2017 15:32:44 -0500
Quoted 8 lines
When mapping the RX DMA buffers, the driver was accidentally specifying zero for the buffer length. Under normal circumstances, SWIOTLB does not need to allocate a bounce buffer, so the address is just mapped without checking the size field. This is why the error was not detected earlier.
Fixes b9b17debc69d ("net: emac: emac gigabit ethernet controller driver")Signed-off-by Timur Tabi <[email protected]>
Applied and queued up for -stable, thanks.