Patch "bnxt_en: Fix double DMA unmapping for XDP_REDIRECT" has been added to the 6.10-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    bnxt_en: Fix double DMA unmapping for XDP_REDIRECT

to the 6.10-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     bnxt_en-fix-double-dma-unmapping-for-xdp_redirect.patch
and it can be found in the queue-6.10 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 4805ced0781d9aae13b104073e7d4ba25077c997
Author: Somnath Kotur <somnath.kotur@xxxxxxxxxxxx>
Date:   Tue Aug 20 13:34:15 2024 -0700

    bnxt_en: Fix double DMA unmapping for XDP_REDIRECT
    
    [ Upstream commit 8baeef7616d5194045c5a6b97fd1246b87c55b13 ]
    
    Remove the dma_unmap_page_attrs() call in the driver's XDP_REDIRECT
    code path.  This should have been removed when we let the page pool
    handle the DMA mapping.  This bug causes the warning:
    
    WARNING: CPU: 7 PID: 59 at drivers/iommu/dma-iommu.c:1198 iommu_dma_unmap_page+0xd5/0x100
    CPU: 7 PID: 59 Comm: ksoftirqd/7 Tainted: G        W          6.8.0-1010-gcp #11-Ubuntu
    Hardware name: Dell Inc. PowerEdge R7525/0PYVT1, BIOS 2.15.2 04/02/2024
    RIP: 0010:iommu_dma_unmap_page+0xd5/0x100
    Code: 89 ee 48 89 df e8 cb f2 69 ff 48 83 c4 08 5b 41 5c 41 5d 41 5e 41 5f 5d 31 c0 31 d2 31 c9 31 f6 31 ff 45 31 c0 e9 ab 17 71 00 <0f> 0b 48 83 c4 08 5b 41 5c 41 5d 41 5e 41 5f 5d 31 c0 31 d2 31 c9
    RSP: 0018:ffffab1fc0597a48 EFLAGS: 00010246
    RAX: 0000000000000000 RBX: ffff99ff838280c8 RCX: 0000000000000000
    RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
    RBP: ffffab1fc0597a78 R08: 0000000000000002 R09: ffffab1fc0597c1c
    R10: ffffab1fc0597cd3 R11: ffff99ffe375acd8 R12: 00000000e65b9000
    R13: 0000000000000050 R14: 0000000000001000 R15: 0000000000000002
    FS:  0000000000000000(0000) GS:ffff9a06efb80000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 0000565c34c37210 CR3: 00000005c7e3e000 CR4: 0000000000350ef0
    ? show_regs+0x6d/0x80
    ? __warn+0x89/0x150
    ? iommu_dma_unmap_page+0xd5/0x100
    ? report_bug+0x16a/0x190
    ? handle_bug+0x51/0xa0
    ? exc_invalid_op+0x18/0x80
    ? iommu_dma_unmap_page+0xd5/0x100
    ? iommu_dma_unmap_page+0x35/0x100
    dma_unmap_page_attrs+0x55/0x220
    ? bpf_prog_4d7e87c0d30db711_xdp_dispatcher+0x64/0x9f
    bnxt_rx_xdp+0x237/0x520 [bnxt_en]
    bnxt_rx_pkt+0x640/0xdd0 [bnxt_en]
    __bnxt_poll_work+0x1a1/0x3d0 [bnxt_en]
    bnxt_poll+0xaa/0x1e0 [bnxt_en]
    __napi_poll+0x33/0x1e0
    net_rx_action+0x18a/0x2f0
    
    Fixes: 578fcfd26e2a ("bnxt_en: Let the page pool manage the DMA mapping")
    Reviewed-by: Andy Gospodarek <andrew.gospodarek@xxxxxxxxxxxx>
    Reviewed-by: Kalesh AP <kalesh-anakkur.purayil@xxxxxxxxxxxx>
    Signed-off-by: Somnath Kotur <somnath.kotur@xxxxxxxxxxxx>
    Signed-off-by: Michael Chan <michael.chan@xxxxxxxxxxxx>
    Reviewed-by: Jacob Keller <jacob.e.keller@xxxxxxxxx>
    Link: https://patch.msgid.link/20240820203415.168178-1-michael.chan@xxxxxxxxxxxx
    Signed-off-by: Jakub Kicinski <kuba@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c
index 345681d5007e3..f88b641533fcc 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c
@@ -297,11 +297,6 @@ bool bnxt_rx_xdp(struct bnxt *bp, struct bnxt_rx_ring_info *rxr, u16 cons,
 		 * redirect is coming from a frame received by the
 		 * bnxt_en driver.
 		 */
-		rx_buf = &rxr->rx_buf_ring[cons];
-		mapping = rx_buf->mapping - bp->rx_dma_offset;
-		dma_unmap_page_attrs(&pdev->dev, mapping,
-				     BNXT_RX_PAGE_SIZE, bp->rx_dir,
-				     DMA_ATTR_WEAK_ORDERING);
 
 		/* if we are unable to allocate a new buffer, abort and reuse */
 		if (bnxt_alloc_rx_data(bp, rxr, rxr->rx_prod, GFP_ATOMIC)) {




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux