<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers/infiniband, branch v3.10.7</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>iscsi-target: Fix iscsit_sequence_cmd reject handling for iser</title>
<updated>2013-08-04T08:51:17+00:00</updated>
<author>
<name>Nicholas Bellinger</name>
<email>nab@linux-iscsi.org</email>
</author>
<published>2013-07-30T04:04:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=adb97c299904814edb0bb26ae894139ca46ae446'/>
<id>adb97c299904814edb0bb26ae894139ca46ae446</id>
<content type='text'>
commit 561bf15892375597ee59d473a704a3e634c4f311 upstream

This patch moves ISCSI_OP_REJECT failures into iscsit_sequence_cmd()
in order to avoid external iscsit_reject_cmd() reject usage for all
PDU types.

It also updates PDU specific handlers for traditional iscsi-target
code to not reset the session after posting a ISCSI_OP_REJECT during
setup.

(v2: Fix CMDSN_LOWER_THAN_EXP for ISCSI_OP_SCSI to call
     target_put_sess_cmd() after iscsit_sequence_cmd() failure)

Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
Cc: Or Gerlitz &lt;ogerlitz@mellanox.com&gt;
Cc: Mike Christie &lt;michaelc@cs.wisc.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 561bf15892375597ee59d473a704a3e634c4f311 upstream

This patch moves ISCSI_OP_REJECT failures into iscsit_sequence_cmd()
in order to avoid external iscsit_reject_cmd() reject usage for all
PDU types.

It also updates PDU specific handlers for traditional iscsi-target
code to not reset the session after posting a ISCSI_OP_REJECT during
setup.

(v2: Fix CMDSN_LOWER_THAN_EXP for ISCSI_OP_SCSI to call
     target_put_sess_cmd() after iscsit_sequence_cmd() failure)

Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
Cc: Or Gerlitz &lt;ogerlitz@mellanox.com&gt;
Cc: Mike Christie &lt;michaelc@cs.wisc.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>iscsi-target: Fix iscsit_add_reject* usage for iser</title>
<updated>2013-08-04T08:51:17+00:00</updated>
<author>
<name>Nicholas Bellinger</name>
<email>nab@linux-iscsi.org</email>
</author>
<published>2013-07-30T04:04:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=1aa58ccd029fc75c115ae35c3fcb4d43043c0725'/>
<id>1aa58ccd029fc75c115ae35c3fcb4d43043c0725</id>
<content type='text'>
commit ba159914086f06532079fc15141f46ffe7e04a41 upstream

This patch changes iscsit_add_reject() + iscsit_add_reject_from_cmd()
usage to not sleep on iscsi_cmd-&gt;reject_comp to address a free-after-use
usage bug in v3.10 with iser-target code.

It saves -&gt;reject_reason for use within iscsit_build_reject() so the
correct value for both transport cases.  It also drops the legacy
fail_conn parameter usage throughput iscsi-target code and adds
two iscsit_add_reject_cmd() and iscsit_reject_cmd helper functions,
along with various small cleanups.

(v2: Re-enable target_put_sess_cmd() to be called from
     iscsit_add_reject_from_cmd() for rejects invoked after
     target_get_sess_cmd() has been called)

Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
Cc: Or Gerlitz &lt;ogerlitz@mellanox.com&gt;
Cc: Mike Christie &lt;michaelc@cs.wisc.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit ba159914086f06532079fc15141f46ffe7e04a41 upstream

This patch changes iscsit_add_reject() + iscsit_add_reject_from_cmd()
usage to not sleep on iscsi_cmd-&gt;reject_comp to address a free-after-use
usage bug in v3.10 with iser-target code.

It saves -&gt;reject_reason for use within iscsit_build_reject() so the
correct value for both transport cases.  It also drops the legacy
fail_conn parameter usage throughput iscsi-target code and adds
two iscsit_add_reject_cmd() and iscsit_reject_cmd helper functions,
along with various small cleanups.

(v2: Re-enable target_put_sess_cmd() to be called from
     iscsit_add_reject_from_cmd() for rejects invoked after
     target_get_sess_cmd() has been called)

Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
Cc: Or Gerlitz &lt;ogerlitz@mellanox.com&gt;
Cc: Mike Christie &lt;michaelc@cs.wisc.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>iscsi-target: Fix ISCSI_OP_SCSI_TMFUNC handling for iser</title>
<updated>2013-08-04T08:50:34+00:00</updated>
<author>
<name>Nicholas Bellinger</name>
<email>nab@linux-iscsi.org</email>
</author>
<published>2013-07-03T10:11:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=c6ccbb9b6e24e35d71fd8706dfc5a8eab07f6937'/>
<id>c6ccbb9b6e24e35d71fd8706dfc5a8eab07f6937</id>
<content type='text'>
commit 186a9647019587b3784694894c4d136fd00cfd7b upstream.

This patch adds target_get_sess_cmd reference counting for
iscsit_handle_task_mgt_cmd(), and adds a target_put_sess_cmd()
for the failure case.

It also fixes a bug where ISCSI_OP_SCSI_TMFUNC type commands
where leaking iscsi_cmd-&gt;i_conn_node and eventually triggering
an OOPs during struct isert_conn shutdown.

Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 186a9647019587b3784694894c4d136fd00cfd7b upstream.

This patch adds target_get_sess_cmd reference counting for
iscsit_handle_task_mgt_cmd(), and adds a target_put_sess_cmd()
for the failure case.

It also fixes a bug where ISCSI_OP_SCSI_TMFUNC type commands
where leaking iscsi_cmd-&gt;i_conn_node and eventually triggering
an OOPs during struct isert_conn shutdown.

Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>iser-target: Fix session reset bug with RDMA_CM_EVENT_DISCONNECTED</title>
<updated>2013-08-04T08:50:33+00:00</updated>
<author>
<name>Nicholas Bellinger</name>
<email>nab@linux-iscsi.org</email>
</author>
<published>2013-07-03T10:05:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=d9e507c05ca19ad2ec166577edd8b47e17c8961e'/>
<id>d9e507c05ca19ad2ec166577edd8b47e17c8961e</id>
<content type='text'>
commit b2cb96494d83b894a43ba8b9023eead8ff50684b upstream.

This patch addresses a bug where RDMA_CM_EVENT_DISCONNECTED may occur
before the connection shutdown has been completed by rx/tx threads,
that causes isert_free_conn() to wait indefinately on -&gt;conn_wait.

This patch allows isert_disconnect_work code to invoke rdma_disconnect
when isert_disconnect_work() process context is started by client
session reset before isert_free_conn() code has been reached.

It also adds isert_conn-&gt;conn_mutex protection for -&gt;state within
isert_disconnect_work(), isert_cq_comp_err() and isert_free_conn()
code, along with isert_check_state() for wait_event usage.

(v2: Add explicit iscsit_cause_connection_reinstatement call
     during isert_disconnect_work() to force conn reset)

Cc: Or Gerlitz &lt;ogerlitz@mellanox.com&gt;
Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit b2cb96494d83b894a43ba8b9023eead8ff50684b upstream.

This patch addresses a bug where RDMA_CM_EVENT_DISCONNECTED may occur
before the connection shutdown has been completed by rx/tx threads,
that causes isert_free_conn() to wait indefinately on -&gt;conn_wait.

This patch allows isert_disconnect_work code to invoke rdma_disconnect
when isert_disconnect_work() process context is started by client
session reset before isert_free_conn() code has been reached.

It also adds isert_conn-&gt;conn_mutex protection for -&gt;state within
isert_disconnect_work(), isert_cq_comp_err() and isert_free_conn()
code, along with isert_check_state() for wait_event usage.

(v2: Add explicit iscsit_cause_connection_reinstatement call
     during isert_disconnect_work() to force conn reset)

Cc: Or Gerlitz &lt;ogerlitz@mellanox.com&gt;
Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>iser-target: Fix isert_put_reject payload buffer post</title>
<updated>2013-08-04T08:50:32+00:00</updated>
<author>
<name>Nicholas Bellinger</name>
<email>nab@linux-iscsi.org</email>
</author>
<published>2013-06-26T09:31:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=fff98879381243f59b6e9f630d55312aa34a89c9'/>
<id>fff98879381243f59b6e9f630d55312aa34a89c9</id>
<content type='text'>
commit 3df8f68aaf7ebe3d136a22262b41b350b0a1858b upstream.

This patch adds the missing isert_put_reject() logic to post
a outgoing payload buffer to hold the 48 bytes of original PDU
header request payload for the rejected cmd.

It also fixes ISTATE_SEND_REJECT handling in isert_response_completion()
-&gt; isert_do_control_comp() code, and drops incorrect iscsi_cmd_t-&gt;reject_comp
usage.

Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
Cc: Or Gerlitz &lt;ogerlitz@mellanox.com&gt;
Cc: Mike Christie &lt;michaelc@cs.wisc.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 3df8f68aaf7ebe3d136a22262b41b350b0a1858b upstream.

This patch adds the missing isert_put_reject() logic to post
a outgoing payload buffer to hold the 48 bytes of original PDU
header request payload for the rejected cmd.

It also fixes ISTATE_SEND_REJECT handling in isert_response_completion()
-&gt; isert_do_control_comp() code, and drops incorrect iscsi_cmd_t-&gt;reject_comp
usage.

Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
Cc: Or Gerlitz &lt;ogerlitz@mellanox.com&gt;
Cc: Mike Christie &lt;michaelc@cs.wisc.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branches 'iser' and 'qib' into for-next</title>
<updated>2013-06-05T00:06:46+00:00</updated>
<author>
<name>Roland Dreier</name>
<email>roland@purestorage.com</email>
</author>
<published>2013-06-05T00:06:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=c9a2433a901250637e05539ef111b91dbc52edb8'/>
<id>c9a2433a901250637e05539ef111b91dbc52edb8</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>IB/qib: Fix lockdep splat in qib_alloc_lkey()</title>
<updated>2013-06-05T00:05:20+00:00</updated>
<author>
<name>Mike Marciniszyn</name>
<email>mike.marciniszyn@intel.com</email>
</author>
<published>2013-05-17T12:40:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=f3bdf34465307fc3f6967a9202a921e11505b2e6'/>
<id>f3bdf34465307fc3f6967a9202a921e11505b2e6</id>
<content type='text'>
The following backtrace is reported with CONFIG_PROVE_RCU:

    drivers/infiniband/hw/qib/qib_keys.c:64 suspicious rcu_dereference_check() usage!
    other info that might help us debug this:
    rcu_scheduler_active = 1, debug_locks = 1
    4 locks held by kworker/0:1/56:
    #0:  (events){.+.+.+}, at: [&lt;ffffffff8107a4f5&gt;] process_one_work+0x165/0x4a0
    #1:  ((&amp;wfc.work)){+.+.+.}, at: [&lt;ffffffff8107a4f5&gt;] process_one_work+0x165/0x4a0
    #2:  (device_mutex){+.+.+.}, at: [&lt;ffffffffa0148dd8&gt;] ib_register_device+0x38/0x220 [ib_core]
    #3:  (&amp;(&amp;dev-&gt;lk_table.lock)-&gt;rlock){......}, at: [&lt;ffffffffa017e81c&gt;] qib_alloc_lkey+0x3c/0x1b0 [ib_qib]

    stack backtrace:
    Pid: 56, comm: kworker/0:1 Not tainted 3.10.0-rc1+ #6
    Call Trace:
    [&lt;ffffffff810c0b85&gt;] lockdep_rcu_suspicious+0xe5/0x130
    [&lt;ffffffffa017e8e1&gt;] qib_alloc_lkey+0x101/0x1b0 [ib_qib]
    [&lt;ffffffffa0184886&gt;] qib_get_dma_mr+0xa6/0xd0 [ib_qib]
    [&lt;ffffffffa01461aa&gt;] ib_get_dma_mr+0x1a/0x50 [ib_core]
    [&lt;ffffffffa01678dc&gt;] ib_mad_port_open+0x12c/0x390 [ib_mad]
    [&lt;ffffffff810c2c55&gt;] ?  trace_hardirqs_on_caller+0x105/0x190
    [&lt;ffffffffa0167b92&gt;] ib_mad_init_device+0x52/0x110 [ib_mad]
    [&lt;ffffffffa01917c0&gt;] ?  sl2vl_attr_show+0x30/0x30 [ib_qib]
    [&lt;ffffffffa0148f49&gt;] ib_register_device+0x1a9/0x220 [ib_core]
    [&lt;ffffffffa01b1685&gt;] qib_register_ib_device+0x735/0xa40 [ib_qib]
    [&lt;ffffffff8106ba98&gt;] ? mod_timer+0x118/0x220
    [&lt;ffffffffa017d425&gt;] qib_init_one+0x1e5/0x400 [ib_qib]
    [&lt;ffffffff812ce86e&gt;] local_pci_probe+0x4e/0x90
    [&lt;ffffffff81078118&gt;] work_for_cpu_fn+0x18/0x30
    [&lt;ffffffff8107a566&gt;] process_one_work+0x1d6/0x4a0
    [&lt;ffffffff8107a4f5&gt;] ?  process_one_work+0x165/0x4a0
    [&lt;ffffffff8107c9c9&gt;] worker_thread+0x119/0x370
    [&lt;ffffffff8107c8b0&gt;] ?  manage_workers+0x180/0x180
    [&lt;ffffffff8108294e&gt;] kthread+0xee/0x100
    [&lt;ffffffff81082860&gt;] ?  __init_kthread_worker+0x70/0x70
    [&lt;ffffffff815c04ac&gt;] ret_from_fork+0x7c/0xb0
    [&lt;ffffffff81082860&gt;] ?  __init_kthread_worker+0x70/0x70

Per Documentation/RCU/lockdep-splat.txt, the code now uses rcu_access_pointer()
vs. rcu_dereference().

Reported-by: Jay Fenlason &lt;fenlason@redhat.com&gt;
Reviewed-by: Dean Luick &lt;dean.luick@intel.com&gt;
Signed-off-by: Mike Marciniszyn &lt;mike.marciniszyn@intel.com&gt;
Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The following backtrace is reported with CONFIG_PROVE_RCU:

    drivers/infiniband/hw/qib/qib_keys.c:64 suspicious rcu_dereference_check() usage!
    other info that might help us debug this:
    rcu_scheduler_active = 1, debug_locks = 1
    4 locks held by kworker/0:1/56:
    #0:  (events){.+.+.+}, at: [&lt;ffffffff8107a4f5&gt;] process_one_work+0x165/0x4a0
    #1:  ((&amp;wfc.work)){+.+.+.}, at: [&lt;ffffffff8107a4f5&gt;] process_one_work+0x165/0x4a0
    #2:  (device_mutex){+.+.+.}, at: [&lt;ffffffffa0148dd8&gt;] ib_register_device+0x38/0x220 [ib_core]
    #3:  (&amp;(&amp;dev-&gt;lk_table.lock)-&gt;rlock){......}, at: [&lt;ffffffffa017e81c&gt;] qib_alloc_lkey+0x3c/0x1b0 [ib_qib]

    stack backtrace:
    Pid: 56, comm: kworker/0:1 Not tainted 3.10.0-rc1+ #6
    Call Trace:
    [&lt;ffffffff810c0b85&gt;] lockdep_rcu_suspicious+0xe5/0x130
    [&lt;ffffffffa017e8e1&gt;] qib_alloc_lkey+0x101/0x1b0 [ib_qib]
    [&lt;ffffffffa0184886&gt;] qib_get_dma_mr+0xa6/0xd0 [ib_qib]
    [&lt;ffffffffa01461aa&gt;] ib_get_dma_mr+0x1a/0x50 [ib_core]
    [&lt;ffffffffa01678dc&gt;] ib_mad_port_open+0x12c/0x390 [ib_mad]
    [&lt;ffffffff810c2c55&gt;] ?  trace_hardirqs_on_caller+0x105/0x190
    [&lt;ffffffffa0167b92&gt;] ib_mad_init_device+0x52/0x110 [ib_mad]
    [&lt;ffffffffa01917c0&gt;] ?  sl2vl_attr_show+0x30/0x30 [ib_qib]
    [&lt;ffffffffa0148f49&gt;] ib_register_device+0x1a9/0x220 [ib_core]
    [&lt;ffffffffa01b1685&gt;] qib_register_ib_device+0x735/0xa40 [ib_qib]
    [&lt;ffffffff8106ba98&gt;] ? mod_timer+0x118/0x220
    [&lt;ffffffffa017d425&gt;] qib_init_one+0x1e5/0x400 [ib_qib]
    [&lt;ffffffff812ce86e&gt;] local_pci_probe+0x4e/0x90
    [&lt;ffffffff81078118&gt;] work_for_cpu_fn+0x18/0x30
    [&lt;ffffffff8107a566&gt;] process_one_work+0x1d6/0x4a0
    [&lt;ffffffff8107a4f5&gt;] ?  process_one_work+0x165/0x4a0
    [&lt;ffffffff8107c9c9&gt;] worker_thread+0x119/0x370
    [&lt;ffffffff8107c8b0&gt;] ?  manage_workers+0x180/0x180
    [&lt;ffffffff8108294e&gt;] kthread+0xee/0x100
    [&lt;ffffffff81082860&gt;] ?  __init_kthread_worker+0x70/0x70
    [&lt;ffffffff815c04ac&gt;] ret_from_fork+0x7c/0xb0
    [&lt;ffffffff81082860&gt;] ?  __init_kthread_worker+0x70/0x70

Per Documentation/RCU/lockdep-splat.txt, the code now uses rcu_access_pointer()
vs. rcu_dereference().

Reported-by: Jay Fenlason &lt;fenlason@redhat.com&gt;
Reviewed-by: Dean Luick &lt;dean.luick@intel.com&gt;
Signed-off-by: Mike Marciniszyn &lt;mike.marciniszyn@intel.com&gt;
Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>IB/iser: Add Mellanox copyright</title>
<updated>2013-06-05T00:03:12+00:00</updated>
<author>
<name>Or Gerlitz</name>
<email>ogerlitz@mellanox.com</email>
</author>
<published>2013-05-08T12:21:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=28f292e879a6acf745005e75196fe8f7cc504103'/>
<id>28f292e879a6acf745005e75196fe8f7cc504103</id>
<content type='text'>
Add Mellanox copyright to the iser initiator source code which I maintain.

Signed-off-by: Or Gerlitz &lt;ogerlitz@mellanox.com&gt;
Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add Mellanox copyright to the iser initiator source code which I maintain.

Signed-off-by: Or Gerlitz &lt;ogerlitz@mellanox.com&gt;
Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>IB/iser: Fix device removal flow</title>
<updated>2013-06-05T00:03:11+00:00</updated>
<author>
<name>Roi Dayan</name>
<email>roid@mellanox.com</email>
</author>
<published>2013-05-08T12:21:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=5b61ff43a774b9843402fb280fec6d700e1fe583'/>
<id>5b61ff43a774b9843402fb280fec6d700e1fe583</id>
<content type='text'>
Change the code to destroy the "last opened" rdma_cm id after making
sure we released all other objects (QP, CQs, PD, etc) associated with
the IB device.

Since iser accesses the IB device using the rdma_cm id, we need to
free any objects that are related to the device that is associated
with the rdma_cm id prior to destroying that id.  When this isn't
done, the low level driver that created this device can be unloaded
before iser has a chance to free all the objects and a such a call may
invoke code segment which isn't valid any more and crash.

Cc: Sean Hefty &lt;sean.hefty@intel.com
Signed-off-by: Roi Dayan &lt;roid@mellanox.com&gt;
Signed-off-by: Or Gerlitz &lt;ogerlitz@mellanox.com&gt;
Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change the code to destroy the "last opened" rdma_cm id after making
sure we released all other objects (QP, CQs, PD, etc) associated with
the IB device.

Since iser accesses the IB device using the rdma_cm id, we need to
free any objects that are related to the device that is associated
with the rdma_cm id prior to destroying that id.  When this isn't
done, the low level driver that created this device can be unloaded
before iser has a chance to free all the objects and a such a call may
invoke code segment which isn't valid any more and crash.

Cc: Sean Hefty &lt;sean.hefty@intel.com
Signed-off-by: Roi Dayan &lt;roid@mellanox.com&gt;
Signed-off-by: Or Gerlitz &lt;ogerlitz@mellanox.com&gt;
Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ib_srpt: Call target_sess_cmd_list_set_waiting during shutdown_session</title>
<updated>2013-05-30T04:30:46+00:00</updated>
<author>
<name>Nicholas Bellinger</name>
<email>nab@linux-iscsi.org</email>
</author>
<published>2013-05-15T08:30:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=1d19f7800d643b270b28d0a969c5eca455d54397'/>
<id>1d19f7800d643b270b28d0a969c5eca455d54397</id>
<content type='text'>
Given that srpt_release_channel_work() calls target_wait_for_sess_cmds()
to allow outstanding se_cmd_t-&gt;cmd_kref a change to complete, the call
to perform target_sess_cmd_list_set_waiting() needs to happen in
srpt_shutdown_session()

Also, this patch adds an explicit call to srpt_shutdown_session() within
srpt_drain_channel() so that target_sess_cmd_list_set_waiting() will be
called in the cases where TFO-&gt;shutdown_session() is not triggered
directly by TCM.

Cc: Joern Engel &lt;joern@logfs.org&gt;
Cc: Roland Dreier &lt;roland@kernel.org&gt;
Cc: stable@vger.kernel.org
Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Given that srpt_release_channel_work() calls target_wait_for_sess_cmds()
to allow outstanding se_cmd_t-&gt;cmd_kref a change to complete, the call
to perform target_sess_cmd_list_set_waiting() needs to happen in
srpt_shutdown_session()

Also, this patch adds an explicit call to srpt_shutdown_session() within
srpt_drain_channel() so that target_sess_cmd_list_set_waiting() will be
called in the cases where TFO-&gt;shutdown_session() is not triggered
directly by TCM.

Cc: Joern Engel &lt;joern@logfs.org&gt;
Cc: Roland Dreier &lt;roland@kernel.org&gt;
Cc: stable@vger.kernel.org
Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
</pre>
</div>
</content>
</entry>
</feed>
