<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/infiniband/ulp/isert, branch linux-3.18.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.18.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.18.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2016-03-02T20:18:56Z</updated>
<entry>
<title>target: Remove first argument of target_{get,put}_sess_cmd()</title>
<updated>2016-03-02T20:18:56Z</updated>
<author>
<name>Bart Van Assche</name>
</author>
<published>2015-04-27T11:52:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=643e7c044a5a62604f78a819241fb540f32997b5'/>
<id>urn:sha1:643e7c044a5a62604f78a819241fb540f32997b5</id>
<content type='text'>
[ Upstream commit afc16604c06414223478df3e42301ab630b9960a ]

The first argument of these two functions is always identical
to se_cmd-&gt;se_sess. Hence remove the first argument.

Signed-off-by: Bart Van Assche &lt;bart.vanassche@sandisk.com&gt;
Reviewed-by: Sagi Grimberg &lt;sagig@mellanox.com&gt;
Reviewed-by: Christoph Hellwig &lt;hch@lst.de&gt;
Cc: Andy Grover &lt;agrover@redhat.com&gt;
Cc: &lt;qla2xxx-upstream@qlogic.com&gt;
Cc: Felipe Balbi &lt;balbi@ti.com&gt;
Cc: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
Signed-off-by: Sasha Levin &lt;sasha.levin@oracle.com&gt;
</content>
</entry>
<entry>
<title>iser-target: remove command with state ISTATE_REMOVE</title>
<updated>2015-10-28T02:12:54Z</updated>
<author>
<name>Jenny Derzhavetz</name>
</author>
<published>2015-09-06T11:52:20Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=645c23ecfd8ef0f81a42db43ad60d8c28ca3348c'/>
<id>urn:sha1:645c23ecfd8ef0f81a42db43ad60d8c28ca3348c</id>
<content type='text'>
[ Upstream commit a4c15cd957cbd728f685645de7a150df5912591a ]

As documented in iscsit_sequence_cmd:
/*
 * Existing callers for iscsit_sequence_cmd() will silently
 * ignore commands with CMDSN_LOWER_THAN_EXP, so force this
 * return for CMDSN_MAXCMDSN_OVERRUN as well..
 */

We need to silently finish a command when it's in ISTATE_REMOVE.
This fixes an teardown hang we were seeing where a mis-behaved
initiator (triggered by allocation error injections) sent us a
cmdsn which was lower than expected.

Signed-off-by: Jenny Derzhavetz &lt;jennyf@mellanox.com&gt;
Signed-off-by: Sagi Grimberg &lt;sagig@mellanox.com&gt;
Cc: &lt;stable@vger.kernel.org&gt; # v3.10+
Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
Signed-off-by: Sasha Levin &lt;sasha.levin@oracle.com&gt;
</content>
</entry>
<entry>
<title>iser-target: Fix possible deadlock in RDMA_CM connection error</title>
<updated>2015-08-04T18:34:34Z</updated>
<author>
<name>Sagi Grimberg</name>
</author>
<published>2015-03-29T12:52:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3e2ee0584b7c688bbc2c1951e8348b2302ab4873'/>
<id>urn:sha1:3e2ee0584b7c688bbc2c1951e8348b2302ab4873</id>
<content type='text'>
[ Upstream commit 4a579da2586bd3b79b025947ea24ede2bbfede62 ]

Before we reach to connection established we may get an
error event. In this case the core won't teardown this
connection (never established it), so we take care of freeing
it ourselves.

Signed-off-by: Sagi Grimberg &lt;sagig@mellanox.com&gt;
Cc: &lt;stable@vger.kernel.org&gt; # v3.10+
Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
Signed-off-by: Sasha Levin &lt;sasha.levin@oracle.com&gt;
</content>
</entry>
<entry>
<title>iser-target: release stale iser connections</title>
<updated>2015-07-03T16:34:50Z</updated>
<author>
<name>Sagi Grimberg</name>
</author>
<published>2015-06-04T16:49:20Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f311de9c14c74df23c5e7dd83d65d3d5167c0ae7'/>
<id>urn:sha1:f311de9c14c74df23c5e7dd83d65d3d5167c0ae7</id>
<content type='text'>
[ Upstream commit 2f1b6b7d9a815f341b18dfd26a363f37d4d3c96a ]

When receiving a new iser connect request we serialize
the pending requests by adding the newly created iser connection
to the np accept list and let the login thread process the connect
request one by one (np_accept_wait).

In case we received a disconnect request before the iser_conn
has begun processing (still linked in np_accept_list) we should
detach it from the list and clean it up and not have the login
thread process a stale connection. We do it only when the connection
state is not already terminating (initiator driven disconnect) as
this might lead us to access np_accept_mutex after the np was released
in live shutdown scenarios.

Signed-off-by: Sagi Grimberg &lt;sagig@mellanox.com&gt;
Signed-off-by: Jenny Falkovich &lt;jennyf@mellanox.com&gt;
Cc: stable@vger.kernel.org # 3.10+
Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
Signed-off-by: Sasha Levin &lt;sasha.levin@oracle.com&gt;
</content>
</entry>
<entry>
<title>iser-target: Fix variable-length response error completion</title>
<updated>2015-07-02T01:44:05Z</updated>
<author>
<name>Sagi Grimberg</name>
</author>
<published>2015-06-04T16:49:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fc9a24b42d2da53dfc4c08d7de126bef53204fa8'/>
<id>urn:sha1:fc9a24b42d2da53dfc4c08d7de126bef53204fa8</id>
<content type='text'>
[ Upstream commit 9253e667ab50fd4611a60e1cdd6a6e05a1d91cf1 ]

Since commit "2426bd456a6 target: Report correct response ..."
we might get a command with data_size that does not fit to
the number of allocated data sg elements. Given that we rely on
cmd t_data_nents which might be different than the data_size,
we sometimes receive local length error completion. The correct
approach would be to take the command data_size into account when
constructing the ib sg_list.

Signed-off-by: Sagi Grimberg &lt;sagig@mellanox.com&gt;
Signed-off-by: Jenny Falkovich &lt;jennyf@mellanox.com&gt;
Cc: stable@vger.kernel.org # 3.16+
Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
Signed-off-by: Sasha Levin &lt;sasha.levin@oracle.com&gt;
</content>
</entry>
<entry>
<title>iser-target: Fix session hang in case of an rdma read DIF error</title>
<updated>2015-05-17T23:12:13Z</updated>
<author>
<name>Sagi Grimberg</name>
</author>
<published>2015-03-29T12:52:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=eb2844f82f2aa0230a9f0dd10ad3617f71e0230c'/>
<id>urn:sha1:eb2844f82f2aa0230a9f0dd10ad3617f71e0230c</id>
<content type='text'>
[ Upstream commit 364189f0ada5478e4faf8a552d6071a650d757cd ]

This hang was a result of a missing command put when
a DIF error occurred during a rdma read (and we sent
an CHECK_CONDITION error without passing it to the
backend).

Signed-off-by: Sagi Grimberg &lt;sagig@mellanox.com&gt;
Cc: &lt;stable@vger.kernel.org&gt; # v3.14+
Signed-off-by: Nicholas Bellinger &lt;nab@linux-iscsi.org&gt;
Signed-off-by: Sasha Levin &lt;sasha.levin@oracle.com&gt;
</content>
</entry>
<entry>
<title>iscsi,iser-target: Expose supported protection ops according to t10_pi</title>
<updated>2015-01-27T16:29:37Z</updated>
<author>
<name>Sagi Grimberg</name>
</author>
<published>2014-12-02T14:57:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5786521105589b9d3bff59fcb6dfb92e2b9d284d'/>
<id>urn:sha1:5786521105589b9d3bff59fcb6dfb92e2b9d284d</id>
<content type='text'>
commit 23a548ee656c8ba6da8cb2412070edcd62e2ac5d upstream.

iSER will report supported protection operations based on
the tpg attribute t10_pi settings and HCA PI offload capabilities.
If the HCA does not support PI offload or tpg attribute t10_pi is
not set, we fall to SW PI mode.

In order to do that, we move iscsit_get_sup_prot_ops after connection
tpg assignment.

Signed-off-by: Sagi Grimberg &lt;sagig@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>
</entry>
<entry>
<title>iser-target: Fix NULL dereference in SW mode DIF</title>
<updated>2015-01-27T16:29:37Z</updated>
<author>
<name>Sagi Grimberg</name>
</author>
<published>2014-12-02T14:57:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7737bb03f5bf045a334de608aa85b673de9248da'/>
<id>urn:sha1:7737bb03f5bf045a334de608aa85b673de9248da</id>
<content type='text'>
commit 302cc7c3ca14d21ccdffdebdb61c4fe028f2d5ad 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: [&lt;ffffffffa037f8b1&gt;] isert_reg_sig_mr+0x351/0x3b0 [ib_isert]
Call Trace:
 [&lt;ffffffff812b003a&gt;] ? swiotlb_map_sg_attrs+0x7a/0x130
 [&lt;ffffffffa038184d&gt;] isert_reg_rdma+0x2fd/0x370 [ib_isert]
 [&lt;ffffffff8108f2ec&gt;] ? idle_balance+0x6c/0x2c0
 [&lt;ffffffffa0382b68&gt;] isert_put_datain+0x68/0x210 [ib_isert]
 [&lt;ffffffffa02acf5b&gt;] lio_queue_data_in+0x2b/0x30 [iscsi_target_mod]
 [&lt;ffffffffa02306eb&gt;] target_complete_ok_work+0x21b/0x310 [target_core_mod]
 [&lt;ffffffff8106ece2&gt;] process_one_work+0x182/0x3b0
 [&lt;ffffffff8106fda0&gt;] worker_thread+0x120/0x3c0
 [&lt;ffffffff8106fc80&gt;] ? maybe_create_worker+0x190/0x190
 [&lt;ffffffff8107594e&gt;] kthread+0xce/0xf0
 [&lt;ffffffff81075880&gt;] ? kthread_freezable_should_stop+0x70/0x70
 [&lt;ffffffff8159a22c&gt;] ret_from_fork+0x7c/0xb0
 [&lt;ffffffff81075880&gt;] ? kthread_freezable_should_stop+0x70/0x70

Reported-by: Slava Shwartsman &lt;valyushash@gmail.com&gt;
Signed-off-by: Sagi Grimberg &lt;sagig@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>
</entry>
<entry>
<title>iser-target: Allocate PI contexts dynamically</title>
<updated>2015-01-27T16:29:37Z</updated>
<author>
<name>Sagi Grimberg</name>
</author>
<published>2014-12-02T14:57:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=80e47cd14093e0facd8896e99c28483784bed9cc'/>
<id>urn:sha1:80e47cd14093e0facd8896e99c28483784bed9cc</id>
<content type='text'>
commit 570db170f37715b7df23c95868169f3d9affa48c upstream.

This patch converts to allocate PI contexts dynamically in order
avoid a potentially bogus np-&gt;tpg_np and associated NULL pointer
dereference in isert_connect_request() during iser-target endpoint
shutdown with multiple network portals.

Also, there is really no need to allocate these at connection
establishment since it is not guaranteed that all the IOs on
that connection will be to a PI formatted device.

We can do it in a lazy fashion so the initial burst will have a
transient slow down, but very fast all IOs will allocate a PI
context.

Squashed:

iser-target: Centralize PI context handling code

Signed-off-by: Sagi Grimberg &lt;sagig@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>
</entry>
<entry>
<title>iser-target: Fix implicit termination of connections</title>
<updated>2015-01-27T16:29:37Z</updated>
<author>
<name>Sagi Grimberg</name>
</author>
<published>2014-12-02T14:57:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a536c94faf99ea19641caa323e35dfcc97f6b01d'/>
<id>urn:sha1:a536c94faf99ea19641caa323e35dfcc97f6b01d</id>
<content type='text'>
commit b02efbfc9a051b41e71fe8f94ddf967260e024a6 upstream.

In situations such as bond failover, The new session establishment
implicitly invokes the termination of the old connection.

So, we don't want to wait for the old connection wait_conn to completely
terminate before we accept the new connection and post a login response.

The solution is to deffer the comp_wait completion and the conn_put to
a work so wait_conn will effectively be non-blocking (flush errors are
assumed to come very fast).

We allocate isert_release_wq with WQ_UNBOUND and WQ_UNBOUND_MAX_ACTIVE
to spread the concurrency of release works.

Reported-by: Slava Shwartsman &lt;valyushash@gmail.com&gt;
Signed-off-by: Sagi Grimberg &lt;sagig@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>
</entry>
</feed>
