• Bart Van Assche's avatar
    IB/srpt: Fix the RDMA completion handlers · 19f57298
    Bart Van Assche authored
    Avoid that the following kernel crash is triggered when processing
    an RDMA completion:
    
    BUG: unable to handle kernel paging request at 0000000100000198
    IP: [<ffffffff810a4ea2>] __lock_acquire+0xa2/0x560
    Call Trace:
     [<ffffffff810a53c2>] lock_acquire+0x62/0x80
     [<ffffffff8151bd33>] _raw_spin_lock_irqsave+0x43/0x60
     [<ffffffffa04fd437>] srpt_rdma_read_done+0x57/0x120 [ib_srpt]
     [<ffffffffa0144dd3>] __ib_process_cq+0x43/0xc0 [ib_core]
     [<ffffffffa0145115>] ib_cq_poll_work+0x25/0x70 [ib_core]
     [<ffffffff8107184d>] process_one_work+0x1bd/0x460
     [<ffffffff81073148>] worker_thread+0x118/0x420
     [<ffffffff81078454>] kthread+0xe4/0x100
     [<ffffffff8151cbbf>] ret_from_fork+0x3f/0x70
    
    Fixes: commit 59fae4de ("IB/srpt: chain RDMA READ/WRITE requests").
    Signed-off-by: default avatarBart Van Assche <bart.vanassche@sandisk.com>
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    Reviewed-by: default avatarSagi Grimberg <sagig@mellanox.com>
    Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
    19f57298
ib_srpt.c 94.6 KB