<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/drivers/infiniband, branch v2.6.21.7</title>
<subtitle>Clone of https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git</subtitle>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/'/>
<entry>
<title>IB/mthca: Fix data corruption after FMR unmap on Sinai</title>
<updated>2007-04-16T21:10:55+00:00</updated>
<author>
<name>Michael S. Tsirkin</name>
<email>mst@dev.mellanox.co.il</email>
</author>
<published>2007-04-16T14:04:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=608d8268be392444f825b4fc8fc7c8b509627129'/>
<id>608d8268be392444f825b4fc8fc7c8b509627129</id>
<content type='text'>
In mthca_arbel_fmr_unmap(), the high bits of the key are masked off.
This gets rid of the effect of adjust_key(), which makes sure that
bits 3 and 23 of the key are equal when the Sinai throughput
optimization is enabled, and so it may happen that an FMR will end up
with bits 3 and 23 in the key being different.  This causes data
corruption, because when enabling the throughput optimization, the
driver promises the HCA firmware that bits 3 and 23 of all memory keys
will always be equal.

Fix by re-applying adjust_key() after masking the key.

Thanks to Or Gerlitz for reproducing the problem, and Ariel Shahar for
help in debug.

Signed-off-by: Michael S. Tsirkin &lt;mst@dev.mellanox.co.il&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In mthca_arbel_fmr_unmap(), the high bits of the key are masked off.
This gets rid of the effect of adjust_key(), which makes sure that
bits 3 and 23 of the key are equal when the Sinai throughput
optimization is enabled, and so it may happen that an FMR will end up
with bits 3 and 23 in the key being different.  This causes data
corruption, because when enabling the throughput optimization, the
driver promises the HCA firmware that bits 3 and 23 of all memory keys
will always be equal.

Fix by re-applying adjust_key() after masking the key.

Thanks to Or Gerlitz for reproducing the problem, and Ariel Shahar for
help in debug.

Signed-off-by: Michael S. Tsirkin &lt;mst@dev.mellanox.co.il&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>RDMA/cxgb3: Add set_tcb_rpl_handler</title>
<updated>2007-04-12T17:37:11+00:00</updated>
<author>
<name>Steve Wise</name>
<email>swise@opengridcomputing.com</email>
</author>
<published>2007-04-12T12:56:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=1ca19770c5ba90d041ba4d06976c77048d330cc8'/>
<id>1ca19770c5ba90d041ba4d06976c77048d330cc8</id>
<content type='text'>
As of commit 6cdbd77e ("cxgb3 - missing CPL hanler and register
setting."), the cxgb3 ethernet NIC driver no longer handles SET_TCB
replies, so we need to do it in the iWARP driver.

Signed-off-by: Steve Wise &lt;swise@opengridcomputing.com&gt;
Acked-by: Divy Le Ray &lt;divy@chelsio.com&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As of commit 6cdbd77e ("cxgb3 - missing CPL hanler and register
setting."), the cxgb3 ethernet NIC driver no longer handles SET_TCB
replies, so we need to do it in the iWARP driver.

Signed-off-by: Steve Wise &lt;swise@opengridcomputing.com&gt;
Acked-by: Divy Le Ray &lt;divy@chelsio.com&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>IPoIB/cm: Fix DMA direction typo</title>
<updated>2007-04-10T15:58:30+00:00</updated>
<author>
<name>Michael S. Tsirkin</name>
<email>mst@dev.mellanox.co.il</email>
</author>
<published>2007-04-10T15:32:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=6371ea3d48e17d4638a91a4a1e0364e56204e418'/>
<id>6371ea3d48e17d4638a91a4a1e0364e56204e418</id>
<content type='text'>
Receive buffers need to be mapped with DMA_FROM_DEVICE.  Incorrectly
mapping with DMA_TO_DEVICE causes a hard lock on ppc64 machines with
an IOMMU.

This fixes &lt;https://bugs.openfabrics.org/show_bug.cgi?id=431&gt;

Signed-off-by: Michael S. Tsirkin &lt;mst@dev.mellanox.co.il&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Receive buffers need to be mapped with DMA_FROM_DEVICE.  Incorrectly
mapping with DMA_TO_DEVICE causes a hard lock on ppc64 machines with
an IOMMU.

This fixes &lt;https://bugs.openfabrics.org/show_bug.cgi?id=431&gt;

Signed-off-by: Michael S. Tsirkin &lt;mst@dev.mellanox.co.il&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>IB/iser: Don't defer connection failure notification to workqueue</title>
<updated>2007-04-05T16:46:04+00:00</updated>
<author>
<name>Erez Zilber</name>
<email>erezz@voltaire.com</email>
</author>
<published>2007-04-01T10:53:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=1d426d6418d1914b592c9c307c02e488d9182fa8'/>
<id>1d426d6418d1914b592c9c307c02e488d9182fa8</id>
<content type='text'>
When a connection is terminated asynchronously from the iSCSI layer's
perspective, iSER needs to notify the iSCSI layer that the connection
has failed.  This is done using a workqueue (switched to from the iSER
tasklet context).  Meanwhile, the connection object (that holds the
work struct) is released.  If the workqueue function wasn't called
yet, it will be called later with a NULL pointer, which will crash the
kernel.

The context switch (tasklet to workqueue) is not required, and
everything can be done from the iSER tasklet. This eliminates the NULL
work struct bug (and simplifies the code).

Signed-off-by: Erez Zilber &lt;erezz@voltaire.com&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When a connection is terminated asynchronously from the iSCSI layer's
perspective, iSER needs to notify the iSCSI layer that the connection
has failed.  This is done using a workqueue (switched to from the iSER
tasklet context).  Meanwhile, the connection object (that holds the
work struct) is released.  If the workqueue function wasn't called
yet, it will be called later with a NULL pointer, which will crash the
kernel.

The context switch (tasklet to workqueue) is not required, and
everything can be done from the iSER tasklet. This eliminates the NULL
work struct bug (and simplifies the code).

Signed-off-by: Erez Zilber &lt;erezz@voltaire.com&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband</title>
<updated>2007-03-28T21:00:01+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@woody.linux-foundation.org</email>
</author>
<published>2007-03-28T21:00:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=a26b5fce06b92b2f02967d4c845fa628024e5414'/>
<id>a26b5fce06b92b2f02967d4c845fa628024e5414</id>
<content type='text'>
* 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband:
  IB/iser: Handle aborting a command after it is sent
  IB/mthca: Fix thinko in init_mr_table()
  RDMA/cxgb3: Fix resource leak in cxio_hal_init_ctrl_qp()
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband:
  IB/iser: Handle aborting a command after it is sent
  IB/mthca: Fix thinko in init_mr_table()
  RDMA/cxgb3: Fix resource leak in cxio_hal_init_ctrl_qp()
</pre>
</div>
</content>
</entry>
<entry>
<title>IB/iser: Handle aborting a command after it is sent</title>
<updated>2007-03-26T23:35:09+00:00</updated>
<author>
<name>Erez Zilber</name>
<email>erezz@voltaire.com</email>
</author>
<published>2007-03-25T10:07:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=3104a2175dc04b7a597acea90f19b033abcfc7d8'/>
<id>3104a2175dc04b7a597acea90f19b033abcfc7d8</id>
<content type='text'>
The SCSI midlayer may abort a command that was already sent.  If the
initiator is still trying to send the command (or data-out PDUs for
that command), the QP may time out after the midlayer times
out. Therefore, when aborting the command, iSER may still have
references for the command's buffers.  When sending these PDUs, the
sends will complete with an error and their resources will be released
then.

Signed-off-by: Erez Zilber &lt;erezz@voltaire.com&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The SCSI midlayer may abort a command that was already sent.  If the
initiator is still trying to send the command (or data-out PDUs for
that command), the QP may time out after the midlayer times
out. Therefore, when aborting the command, iSER may still have
references for the command's buffers.  When sending these PDUs, the
sends will complete with an error and their resources will be released
then.

Signed-off-by: Erez Zilber &lt;erezz@voltaire.com&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>IB/mthca: Fix thinko in init_mr_table()</title>
<updated>2007-03-26T22:59:32+00:00</updated>
<author>
<name>Michael S. Tsirkin</name>
<email>mst@dev.mellanox.co.il</email>
</author>
<published>2007-03-25T09:17:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=0264d8853137a9a328d9f0ed29e083dd505512cb'/>
<id>0264d8853137a9a328d9f0ed29e083dd505512cb</id>
<content type='text'>
Commit c20e20ab ("IB/mthca: Merge MR and FMR space on 64-bit systems")
swapped the number of MTTs and MPTs when initializing the MR table. As
a result, we get a kernel oops when the number of MTT segments
allocated exceeds 0x20000.

Noted by Troy Benjegerdes &lt;troy@scl.ameslab.gov&gt;, and reproduced by
Dotan Barak &lt;dotanb@mellanox.co.il&gt;.  This fixes
https://bugs.openfabrics.org/show_bug.cgi?id=490

Signed-off-by: Michael S. Tsirkin &lt;mst@dev.mellanox.co.il&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Commit c20e20ab ("IB/mthca: Merge MR and FMR space on 64-bit systems")
swapped the number of MTTs and MPTs when initializing the MR table. As
a result, we get a kernel oops when the number of MTT segments
allocated exceeds 0x20000.

Noted by Troy Benjegerdes &lt;troy@scl.ameslab.gov&gt;, and reproduced by
Dotan Barak &lt;dotanb@mellanox.co.il&gt;.  This fixes
https://bugs.openfabrics.org/show_bug.cgi?id=490

Signed-off-by: Michael S. Tsirkin &lt;mst@dev.mellanox.co.il&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>RDMA/cxgb3: Fix resource leak in cxio_hal_init_ctrl_qp()</title>
<updated>2007-03-26T22:54:40+00:00</updated>
<author>
<name>Steve Wise</name>
<email>swise@opengridcomputing.com</email>
</author>
<published>2007-03-26T22:48:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=ed6ee5178e6d78ba7f79a5ece3f0b70ece531a6a'/>
<id>ed6ee5178e6d78ba7f79a5ece3f0b70ece531a6a</id>
<content type='text'>
This was spotted by the Coverity checker (CID 1554).

Signed-off-by: Steve Wise &lt;swise@opengridcomputing.com&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This was spotted by the Coverity checker (CID 1554).

Signed-off-by: Steve Wise &lt;swise@opengridcomputing.com&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[NET]: Fix neighbour destructor handling.</title>
<updated>2007-03-26T01:48:01+00:00</updated>
<author>
<name>Alexey Kuznetsov</name>
<email>kuznet@ms2.inr.ac.ru</email>
</author>
<published>2007-03-24T19:52:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=ecbb416939da77c0d107409976499724baddce7b'/>
<id>ecbb416939da77c0d107409976499724baddce7b</id>
<content type='text'>
-&gt;neigh_destructor() is killed (not used), replaced with
-&gt;neigh_cleanup(), which is called when neighbor entry goes to dead
state. At this point everything is still valid: neigh-&gt;dev,
neigh-&gt;parms etc.

The device should guarantee that dead neighbor entries (neigh-&gt;dead !=
0) do not get private part initialized, otherwise nobody will cleanup
it.

I think this is enough for ipoib which is the only user of this thing.
Initialization private part of neighbor entries happens in ipib
start_xmit routine, which is not reached when device is down.  But it
would be better to add explicit test for neigh-&gt;dead in any case.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
-&gt;neigh_destructor() is killed (not used), replaced with
-&gt;neigh_cleanup(), which is called when neighbor entry goes to dead
state. At this point everything is still valid: neigh-&gt;dev,
neigh-&gt;parms etc.

The device should guarantee that dead neighbor entries (neigh-&gt;dead !=
0) do not get private part initialized, otherwise nobody will cleanup
it.

I think this is enough for ipoib which is the only user of this thing.
Initialization private part of neighbor entries happens in ipib
start_xmit routine, which is not reached when device is down.  But it
would be better to add explicit test for neigh-&gt;dead in any case.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>IB/ipoib: Fix thinko in packet length checks</title>
<updated>2007-03-22T21:40:16+00:00</updated>
<author>
<name>Michael S. Tsirkin</name>
<email>mst@dev.mellanox.co.il</email>
</author>
<published>2007-03-21T13:45:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.exis.tech/linux.git/commit/?id=77d8e1efea0e313edc710160c232a6fd2dc9f907'/>
<id>77d8e1efea0e313edc710160c232a6fd2dc9f907</id>
<content type='text'>
The packet length checks in ipoib are broken: we add 4 bytes (IPoIB
encapsulation header) when sending a packet, not 20 bytes (hardware
address length) to each packet.  Therefore, if connected mode is
enabled so that the interface MTU is larger than the multicast MTU,
IPoIB may end up trying to send too-long multicast packets.  For
example, multicast is broken if a message of size 2048 bytes is sent
on an interface with UD MTU 2048, because 2048 is bigger than the real
limit of 2044 but the code tests against the wrong limit of 2060.

This patch fixes &lt;https://bugs.openfabrics.org/show_bug.cgi?id=418&gt;,
submitted by Scott Weitzenkamp &lt;sweitzen@cisco.com&gt;.

Signed-off-by: Michael S. Tsirkin &lt;mst@dev.mellanox.co.il&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The packet length checks in ipoib are broken: we add 4 bytes (IPoIB
encapsulation header) when sending a packet, not 20 bytes (hardware
address length) to each packet.  Therefore, if connected mode is
enabled so that the interface MTU is larger than the multicast MTU,
IPoIB may end up trying to send too-long multicast packets.  For
example, multicast is broken if a message of size 2048 bytes is sent
on an interface with UD MTU 2048, because 2048 is bigger than the real
limit of 2044 but the code tests against the wrong limit of 2060.

This patch fixes &lt;https://bugs.openfabrics.org/show_bug.cgi?id=418&gt;,
submitted by Scott Weitzenkamp &lt;sweitzen@cisco.com&gt;.

Signed-off-by: Michael S. Tsirkin &lt;mst@dev.mellanox.co.il&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;

</pre>
</div>
</content>
</entry>
</feed>
