<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/drivers/infiniband, branch v4.13-rc2</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>RDMA/core: Initialize port_num in qp_attr</title>
<updated>2017-07-20T15:24:13+00:00</updated>
<author>
<name>Ismail, Mustafa</name>
<email>mustafa.ismail@intel.com</email>
</author>
<published>2017-07-14T14:41:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=a62ab66b13a0f9bcb17b7b761f6670941ed5cd62'/>
<id>a62ab66b13a0f9bcb17b7b761f6670941ed5cd62</id>
<content type='text'>
Initialize the port_num for iWARP in rdma_init_qp_attr.

Fixes: 5ecce4c9b17b("Check port number supplied by user verbs cmds")
Cc: &lt;stable@vger.kernel.org&gt; # v2.6.14+
Reviewed-by: Steve Wise &lt;swise@opengridcomputing.com&gt;
Signed-off-by: Mustafa Ismail &lt;mustafa.ismail@intel.com&gt;
Tested-by: Mike Marciniszyn &lt;mike.marciniszyn@intel.com&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Initialize the port_num for iWARP in rdma_init_qp_attr.

Fixes: 5ecce4c9b17b("Check port number supplied by user verbs cmds")
Cc: &lt;stable@vger.kernel.org&gt; # v2.6.14+
Reviewed-by: Steve Wise &lt;swise@opengridcomputing.com&gt;
Signed-off-by: Mustafa Ismail &lt;mustafa.ismail@intel.com&gt;
Tested-by: Mike Marciniszyn &lt;mike.marciniszyn@intel.com&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>RDMA/uverbs: Fix the check for port number</title>
<updated>2017-07-20T15:24:13+00:00</updated>
<author>
<name>Ismail, Mustafa</name>
<email>mustafa.ismail@intel.com</email>
</author>
<published>2017-07-14T14:41:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=5a7a88f1b488e4ee49eb3d5b82612d4d9ffdf2c3'/>
<id>5a7a88f1b488e4ee49eb3d5b82612d4d9ffdf2c3</id>
<content type='text'>
The port number is only valid if IB_QP_PORT is set in the mask.
So only check port number if it is valid to prevent modify_qp from
failing due to an invalid port number.

Fixes: 5ecce4c9b17b("Check port number supplied by user verbs cmds")
Cc: &lt;stable@vger.kernel.org&gt; # v2.6.14+
Reviewed-by: Steve Wise &lt;swise@opengridcomputing.com&gt;
Signed-off-by: Mustafa Ismail &lt;mustafa.ismail@intel.com&gt;
Tested-by: Mike Marciniszyn &lt;mike.marciniszyn@intel.com&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The port number is only valid if IB_QP_PORT is set in the mask.
So only check port number if it is valid to prevent modify_qp from
failing due to an invalid port number.

Fixes: 5ecce4c9b17b("Check port number supplied by user verbs cmds")
Cc: &lt;stable@vger.kernel.org&gt; # v2.6.14+
Reviewed-by: Steve Wise &lt;swise@opengridcomputing.com&gt;
Signed-off-by: Mustafa Ismail &lt;mustafa.ismail@intel.com&gt;
Tested-by: Mike Marciniszyn &lt;mike.marciniszyn@intel.com&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>RDMA/iser: don't send an rkey if all data is written as immadiate-data</title>
<updated>2017-07-20T15:20:50+00:00</updated>
<author>
<name>Sagi Grimberg</name>
<email>sagi@grimberg.me</email>
</author>
<published>2017-07-06T07:21:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=e6e52aec494900912fedd7b595b8827ba70a670d'/>
<id>e6e52aec494900912fedd7b595b8827ba70a670d</id>
<content type='text'>
We might get some bogus error completions in case the target will
remotely invalidate the rkey and the HCA will need to retransmit
from this buffer.

Signed-off-by: Sagi Grimberg &lt;sagi@grimberg.me&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We might get some bogus error completions in case the target will
remotely invalidate the rkey and the HCA will need to retransmit
from this buffer.

Signed-off-by: Sagi Grimberg &lt;sagi@grimberg.me&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>rxe: fix broken receive queue draining</title>
<updated>2017-07-20T15:20:50+00:00</updated>
<author>
<name>Vijay Immanuel</name>
<email>vijayi@attalasystems.com</email>
</author>
<published>2017-06-27T09:19:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=1217197142d1681a8b8aaa88cdf4b245b76974cd'/>
<id>1217197142d1681a8b8aaa88cdf4b245b76974cd</id>
<content type='text'>
If we modified the qp to ERROR state, and
drained the recieve queue, post_recv must
trigger the responder task to complete
the drain work request.

Cc: Bart Van Assche &lt;bart.vanassche@sandisk.com&gt;
Signed-off-by: Vijay Immanuel &lt;vijayi@attalasystems.com&gt;
Signed-off-by: Sagi Grimberg &lt;sagi@grimberg.me&gt;
Reviewed-by: Bart Van Assche &lt;bart.vanassche@wdc.com&gt;--
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If we modified the qp to ERROR state, and
drained the recieve queue, post_recv must
trigger the responder task to complete
the drain work request.

Cc: Bart Van Assche &lt;bart.vanassche@sandisk.com&gt;
Signed-off-by: Vijay Immanuel &lt;vijayi@attalasystems.com&gt;
Signed-off-by: Sagi Grimberg &lt;sagi@grimberg.me&gt;
Reviewed-by: Bart Van Assche &lt;bart.vanassche@wdc.com&gt;--
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>RDMA/qedr: Prevent memory overrun in verbs' user responses</title>
<updated>2017-07-20T15:20:50+00:00</updated>
<author>
<name>Amrani, Ram</name>
<email>Ram.Amrani@cavium.com</email>
</author>
<published>2017-06-26T16:05:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=c75d3ec8c0ee469de79ae83c1a827d753603e49f'/>
<id>c75d3ec8c0ee469de79ae83c1a827d753603e49f</id>
<content type='text'>
Wrap ib_copy_to_udata with a function that ensures that the data
being copied over to user space isn't longer than the allowed.

Fixes: cecbcddf6461 ("qedr: Add support for QP verbs")
Fixes: a7efd7773e31 ("qedr: Add support for PD,PKEY and CQ verbs")
Fixes: ac1b36e55a51 ("qedr: Add support for user context verbs")
Signed-off-by: Ram Amrani &lt;Ram.Amrani@cavium.com&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Wrap ib_copy_to_udata with a function that ensures that the data
being copied over to user space isn't longer than the allowed.

Fixes: cecbcddf6461 ("qedr: Add support for QP verbs")
Fixes: a7efd7773e31 ("qedr: Add support for PD,PKEY and CQ verbs")
Fixes: ac1b36e55a51 ("qedr: Add support for user context verbs")
Signed-off-by: Ram Amrani &lt;Ram.Amrani@cavium.com&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>iw_cxgb4: don't use WR keys/addrs for 0 byte reads</title>
<updated>2017-07-20T15:20:50+00:00</updated>
<author>
<name>Ganesh Goudar</name>
<email>ganeshgr@chelsio.com</email>
</author>
<published>2017-06-21T14:25:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=720336c42e41a917002fcae3aa14e30f5022bbb7'/>
<id>720336c42e41a917002fcae3aa14e30f5022bbb7</id>
<content type='text'>
Only use the read sge lkey/addr and the remote rkey/addr if the
length of the read is not zero. Otherwise the read response might
be treated as the RTR read response and not delivered to the
application. Or worse Terminator hardware will fail a 0B read
if the STAG is 0 even if the read length is 0.

Signed-off-by: Steve Wise &lt;swise@opengridcomputing.com&gt;
Signed-off-by: Ganesh Goudar &lt;ganeshgr@chelsio.com&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Only use the read sge lkey/addr and the remote rkey/addr if the
length of the read is not zero. Otherwise the read response might
be treated as the RTR read response and not delivered to the
application. Or worse Terminator hardware will fail a 0B read
if the STAG is 0 even if the read length is 0.

Signed-off-by: Steve Wise &lt;swise@opengridcomputing.com&gt;
Signed-off-by: Ganesh Goudar &lt;ganeshgr@chelsio.com&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>IB/mlx4: Fix CM REQ retries in paravirt mode</title>
<updated>2017-07-20T15:20:50+00:00</updated>
<author>
<name>Håkon Bugge</name>
<email>haakon.bugge@oracle.com</email>
</author>
<published>2017-06-20T12:07:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=4542e3c79a2c5a167cbeb4f4190d5f705d272002'/>
<id>4542e3c79a2c5a167cbeb4f4190d5f705d272002</id>
<content type='text'>
CM REQs cannot be successfully retried, because a new pv_cm_id is
created for each request, without checking if one already exists.

By checking if an id exists before creating one, the bug is fixed.

This bug can be provoked by running an RDMA CM user-land application,
but inserting a five seconds delay before the rdma_accept() call on
the passive side. This delay is larger than the default CMA timeout,
and triggers a retry from the active side. The retried REQ will use
another pv_cm_id (the cm_id on the wire). This confuses the CM
protocol and two REJs are sent from the passive side.

Here is an excerpt from ibdump running without the patch:

3.285092       LID: 4 -&gt; LID: 4       SDP 290 CM: ConnectRequest(SDP Hello)
7.382711       LID: 4 -&gt; LID: 4       SDP 290 CM: ConnectRequest(SDP Hello)
7.382861       LID: 4 -&gt; LID: 4       InfiniBand 290 CM: ConnectReject
7.387644       LID: 4 -&gt; LID: 4       InfiniBand 290 CM: ConnectReject

and here is the same with bug fix applied:

3.251010       LID: 4 -&gt; LID: 4       SDP 290 CM: ConnectRequest(SDP Hello)
7.349387       LID: 4 -&gt; LID: 4       SDP 290 CM: ConnectRequest(SDP Hello)
8.258443       LID: 4 -&gt; LID: 4       SDP 290 CM: ConnectReply(SDP Hello)
8.259890       LID: 4 -&gt; LID: 4       InfiniBand 290 CM: ReadyToUse

Suggested-by: Venkat Venkatsubra &lt;venkat.x.venkatsubra@oracle.com&gt;
Signed-off-by: Håkon Bugge &lt;haakon.bugge@oracle.com&gt;
Reported-by: Wei Lin Guay &lt;wei.lin.guay@oracle.com&gt;
Tested-by: Wei Lin Guay &lt;wei.lin.guay@oracle.com&gt;
Reviewed-by: Yuval Shaia &lt;yuval.shaia@oracle.com&gt;
Acked-by: Jack Morgenstein &lt;jackm@dev.mellanox.co.il&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
CM REQs cannot be successfully retried, because a new pv_cm_id is
created for each request, without checking if one already exists.

By checking if an id exists before creating one, the bug is fixed.

This bug can be provoked by running an RDMA CM user-land application,
but inserting a five seconds delay before the rdma_accept() call on
the passive side. This delay is larger than the default CMA timeout,
and triggers a retry from the active side. The retried REQ will use
another pv_cm_id (the cm_id on the wire). This confuses the CM
protocol and two REJs are sent from the passive side.

Here is an excerpt from ibdump running without the patch:

3.285092       LID: 4 -&gt; LID: 4       SDP 290 CM: ConnectRequest(SDP Hello)
7.382711       LID: 4 -&gt; LID: 4       SDP 290 CM: ConnectRequest(SDP Hello)
7.382861       LID: 4 -&gt; LID: 4       InfiniBand 290 CM: ConnectReject
7.387644       LID: 4 -&gt; LID: 4       InfiniBand 290 CM: ConnectReject

and here is the same with bug fix applied:

3.251010       LID: 4 -&gt; LID: 4       SDP 290 CM: ConnectRequest(SDP Hello)
7.349387       LID: 4 -&gt; LID: 4       SDP 290 CM: ConnectRequest(SDP Hello)
8.258443       LID: 4 -&gt; LID: 4       SDP 290 CM: ConnectReply(SDP Hello)
8.259890       LID: 4 -&gt; LID: 4       InfiniBand 290 CM: ReadyToUse

Suggested-by: Venkat Venkatsubra &lt;venkat.x.venkatsubra@oracle.com&gt;
Signed-off-by: Håkon Bugge &lt;haakon.bugge@oracle.com&gt;
Reported-by: Wei Lin Guay &lt;wei.lin.guay@oracle.com&gt;
Tested-by: Wei Lin Guay &lt;wei.lin.guay@oracle.com&gt;
Reviewed-by: Yuval Shaia &lt;yuval.shaia@oracle.com&gt;
Acked-by: Jack Morgenstein &lt;jackm@dev.mellanox.co.il&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>IB/rdmavt: Setting of QP timeout can overflow jiffies computation</title>
<updated>2017-07-20T15:20:50+00:00</updated>
<author>
<name>Kaike Wan</name>
<email>kaike.wan@intel.com</email>
</author>
<published>2017-06-17T17:37:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=a25ce4270bfdd522207b02f81a594c7d1746b697'/>
<id>a25ce4270bfdd522207b02f81a594c7d1746b697</id>
<content type='text'>
Current computation of qp-&gt;timeout_jiffies in rvt_modify_qp() will cause
overflow due to the fact that the input to the function usecs_to_jiffies
is only 32-bit ( unsigned int). Overflow will occur when attr-&gt;timeout is
equal to or greater than 30. The consequence is unnecessarily excessive
retry and thus degradation of the system performance.

This patch fixes the problem by limiting the input to 5-bit and calling
usecs_to_jiffies() before multiplying the scaling factor.

Reviewed-by: Mike Marciniszyn &lt;mike.marciniszyn@intel.com&gt;
Signed-off-by: Kaike Wan &lt;kaike.wan@intel.com&gt;
Signed-off-by: Dennis Dalessandro &lt;dennis.dalessandro@intel.com&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Current computation of qp-&gt;timeout_jiffies in rvt_modify_qp() will cause
overflow due to the fact that the input to the function usecs_to_jiffies
is only 32-bit ( unsigned int). Overflow will occur when attr-&gt;timeout is
equal to or greater than 30. The consequence is unnecessarily excessive
retry and thus degradation of the system performance.

This patch fixes the problem by limiting the input to 5-bit and calling
usecs_to_jiffies() before multiplying the scaling factor.

Reviewed-by: Mike Marciniszyn &lt;mike.marciniszyn@intel.com&gt;
Signed-off-by: Kaike Wan &lt;kaike.wan@intel.com&gt;
Signed-off-by: Dennis Dalessandro &lt;dennis.dalessandro@intel.com&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>IB/core: Fix sparse warnings</title>
<updated>2017-07-20T15:20:50+00:00</updated>
<author>
<name>Matan Barak</name>
<email>matanb@mellanox.com</email>
</author>
<published>2017-06-08T14:30:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=266098b841d48f7f0db40424bdbc072e4db14e9b'/>
<id>266098b841d48f7f0db40424bdbc072e4db14e9b</id>
<content type='text'>
Delete unused variables to prevent sparse warnings.

Fixes: db1b5ddd5336 ("IB/core: Rename uverbs event file structure")
Fixes: fd3c7904db6e ("IB/core: Change idr objects to use the new schema")

Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Delete unused variables to prevent sparse warnings.

Fixes: db1b5ddd5336 ("IB/core: Rename uverbs event file structure")
Fixes: fd3c7904db6e ("IB/core: Change idr objects to use the new schema")

Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>RDMA/bnxt_re: Fix the value reported for local ack delay</title>
<updated>2017-07-20T15:20:50+00:00</updated>
<author>
<name>Selvin Xavier</name>
<email>selvin.xavier@broadcom.com</email>
</author>
<published>2017-06-29T19:28:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=601577b7d14cba5848b4c44ef719881f8538f702'/>
<id>601577b7d14cba5848b4c44ef719881f8538f702</id>
<content type='text'>
Local ack delay exposed by the driver is 0 which means infinite QP
timeout. Reporting the default value to 16 (approx 260ms)

Signed-off-by: Selvin Xavier &lt;selvin.xavier@broadcom.com&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Local ack delay exposed by the driver is 0 which means infinite QP
timeout. Reporting the default value to 16 (approx 260ms)

Signed-off-by: Selvin Xavier &lt;selvin.xavier@broadcom.com&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
