• Sagi Grimberg's avatar
    iser-target: Fix NULL dereference in SW mode DIF · c52c1599
    Sagi Grimberg authored
    commit 302cc7c3 upstream.
    
    Fallback to software mode DIF if HCA does not support
    PI (without crashing obviously). It is still possible to
    run with backend protection and an unprotected frontend,
    so looking at the command prot_op is not enough. Check
    device PI capability on a per-IO basis (isert_prot_cmd
    inline static) to determine if we need to handle protection
    information.
    
    Trace:
    BUG: unable to handle kernel NULL pointer dereference at 0000000000000010
    IP: [<ffffffffa037f8b1>] isert_reg_sig_mr+0x351/0x3b0 [ib_isert]
    Call Trace:
     [<ffffffff812b003a>] ? swiotlb_map_sg_attrs+0x7a/0x130
     [<ffffffffa038184d>] isert_reg_rdma+0x2fd/0x370 [ib_isert]
     [<ffffffff8108f2ec>] ? idle_balance+0x6c/0x2c0
     [<ffffffffa0382b68>] isert_put_datain+0x68/0x210 [ib_isert]
     [<ffffffffa02acf5b>] lio_queue_data_in+0x2b/0x30 [iscsi_target_mod]
     [<ffffffffa02306eb>] target_complete_ok_work+0x21b/0x310 [target_core_mod]
     [<ffffffff8106ece2>] process_one_work+0x182/0x3b0
     [<ffffffff8106fda0>] worker_thread+0x120/0x3c0
     [<ffffffff8106fc80>] ? maybe_create_worker+0x190/0x190
     [<ffffffff8107594e>] kthread+0xce/0xf0
     [<ffffffff81075880>] ? kthread_freezable_should_stop+0x70/0x70
     [<ffffffff8159a22c>] ret_from_fork+0x7c/0xb0
     [<ffffffff81075880>] ? kthread_freezable_should_stop+0x70/0x70
    Reported-by: default avatarSlava Shwartsman <valyushash@gmail.com>
    Signed-off-by: default avatarSagi Grimberg <sagig@mellanox.com>
    Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: default avatarLuis Henriques <luis.henriques@canonical.com>
    c52c1599
ib_isert.c 95.7 KB