• Valentine Fatiev's avatar
    IB/mlx5: Unmap DMA addr from HCA before IOMMU · dd9a4034
    Valentine Fatiev authored
    The function that puts back the MR in cache also removes the DMA address
    from the HCA. Therefore we need to call this function before we remove
    the DMA mapping from MMU. Otherwise the HCA may access a memory that
    is no longer DMA mapped.
    
    Call trace:
    NMI: IOCK error (debug interrupt?) for reason 71 on CPU 0.
    CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.19.0-rc6+ #4
    Hardware name: HP ProLiant DL360p Gen8, BIOS P71 08/20/2012
    RIP: 0010:intel_idle+0x73/0x120
    Code: 80 5c 01 00 0f ae 38 0f ae f0 31 d2 65 48 8b 04 25 80 5c 01 00 48 89 d1 0f 60 02
    RSP: 0018:ffffffff9a403e38 EFLAGS: 00000046
    RAX: 0000000000000030 RBX: 0000000000000005 RCX: 0000000000000001
    RDX: 0000000000000000 RSI: ffffffff9a5790c0 RDI: 0000000000000000
    RBP: 0000000000000030 R08: 0000000000000000 R09: 0000000000007cf9
    R10: 000000000000030a R11: 0000000000000018 R12: 0000000000000000
    R13: ffffffff9a5792b8 R14: ffffffff9a5790c0 R15: 0000002b48471e4d
    FS:  0000000000000000(0000) GS:ffff9c6caf400000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00007f5737185000 CR3: 0000000590c0a002 CR4: 00000000000606f0
    Call Trace:
     cpuidle_enter_state+0x7e/0x2e0
     do_idle+0x1ed/0x290
     cpu_startup_entry+0x6f/0x80
     start_kernel+0x524/0x544
     ? set_init_arg+0x55/0x55
     secondary_startup_64+0xa4/0xb0
    DMAR: DRHD: handling fault status reg 2
    DMAR: [DMA Read] Request device [04:00.0] fault addr b34d2000 [fault reason 06] PTE Read access is not set
    DMAR: [DMA Read] Request device [01:00.2] fault addr bff8b000 [fault reason 06] PTE Read access is not set
    
    Fixes: f3f134f5 ("RDMA/mlx5: Fix crash while accessing garbage pointer and freed memory")
    Signed-off-by: default avatarValentine Fatiev <valentinef@mellanox.com>
    Reviewed-by: default avatarMoni Shoua <monis@mellanox.com>
    Signed-off-by: default avatarLeon Romanovsky <leonro@mellanox.com>
    Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
    dd9a4034
mr.c 48.2 KB