<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers/infiniband, branch linux-2.6.22.y</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=linux-2.6.22.y</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=linux-2.6.22.y'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2007-11-05T17:56:06+00:00</updated>
<entry>
<title>IB/uverbs: Fix checking of userspace object ownership</title>
<updated>2007-11-05T17:56:06+00:00</updated>
<author>
<name>Roland Dreier</name>
<email>rolandd@cisco.com</email>
</author>
<published>2007-10-28T17:14:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=b67e7778425404c0261e5df2a04e41ae93a261f1'/>
<id>urn:sha1:b67e7778425404c0261e5df2a04e41ae93a261f1</id>
<content type='text'>
Upstream as cbfb50e6e2e9c580848c0f51d37c24cdfb1cb704

Commit 9ead190b ("IB/uverbs: Don't serialize with ib_uverbs_idr_mutex")
rewrote how userspace objects are looked up in the uverbs module's
idrs, and introduced a severe bug in the process: there is no checking
that an operation is being performed by the right process any more.
Fix this by adding the missing check of uobj-&gt;context in __idr_get_uobj().

Apparently everyone is being very careful to only touch their own
objects, because this bug was introduced in June 2006 in 2.6.18, and
has gone undetected until now.

Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>IPoIB/cm: Partial error clean up unmaps wrong address</title>
<updated>2007-07-03T03:48:31+00:00</updated>
<author>
<name>Ralph Campbell</name>
<email>ralph.campbell@qlogic.com</email>
</author>
<published>2007-06-29T18:37:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=841adfca9c5fc0fec6b1f0b2e5eb7a3b239a7730'/>
<id>urn:sha1:841adfca9c5fc0fec6b1f0b2e5eb7a3b239a7730</id>
<content type='text'>
If a page can't be allocated for the frag list of a skb, the code to
unmap the partially allocated list is off by one.  For exaple, if
'frags' equals one, i == 0, and the alloc_page() fails, then the old
loop would have unmapped mapping[1] which is uninitialized.  The same
would happen if the call to ib_dma_map_page() failed.

Signed-off-by: Ralph Campbell &lt;ralph.campbell@qlogic.com&gt;
Acked-by: Michael S. Tsirkin &lt;mst@dev.mellanox.co.il&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</content>
</entry>
<entry>
<title>IB/mlx4: Correct max_srq_wr returned from mlx4_ib_query_device()</title>
<updated>2007-06-21T20:39:10+00:00</updated>
<author>
<name>Jack Morgenstein</name>
<email>jackm@dev.mellanox.co.il</email>
</author>
<published>2007-06-21T20:39:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=c8681f14013d3ad2fc4fb4e30cfd4ea548f7a249'/>
<id>urn:sha1:c8681f14013d3ad2fc4fb4e30cfd4ea548f7a249</id>
<content type='text'>
We need to keep a spare entry in the SRQ so that there always is a
next WQE available when posting receives (so that we can tell the
difference between a full queue and an empty queue).  So subtract 1
from the value HW gives us before reporting the limit on SRQ entries
to consumers.

Found by Mellanox QA.

Signed-off-by: Jack Morgenstein &lt;jackm@dev.mellanox.co.il&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</content>
</entry>
<entry>
<title>IPoIB/cm: Remove dead definition of struct ipoib_cm_id</title>
<updated>2007-06-21T20:39:08+00:00</updated>
<author>
<name>Roland Dreier</name>
<email>rolandd@cisco.com</email>
</author>
<published>2007-06-21T20:39:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=13ef5f44c3931dff1d75443a875e97b588d4b8f0'/>
<id>urn:sha1:13ef5f44c3931dff1d75443a875e97b588d4b8f0</id>
<content type='text'>
It's completely unused.

Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</content>
</entry>
<entry>
<title>IPoIB/cm: Fix interoperability when MTU doesn't match</title>
<updated>2007-06-21T20:38:08+00:00</updated>
<author>
<name>Michael S. Tsirkin</name>
<email>mst@dev.mellanox.co.il</email>
</author>
<published>2007-06-20T16:22:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=82c3aca6ad9004169df8f2f8c0747686fe4003b3'/>
<id>urn:sha1:82c3aca6ad9004169df8f2f8c0747686fe4003b3</id>
<content type='text'>
IPoIB connected mode currently rejects a connection request unless the
supported MTU is &gt;= the local netdevice MTU. This breaks
interoperability with implementations that might have tweaked
IPOIB_CM_MTU, and there's real no longer a reason to do so: this test
is just a leftover from when we did not tweak MTU per-connection.  Fix
this by making the test as permissive as possible.

Signed-off-by: Michael S. Tsirkin &lt;mst@dev.mellanox.co.il&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</content>
</entry>
<entry>
<title>IPoIB/cm: Initialize RX before moving QP to RTR</title>
<updated>2007-06-21T20:03:50+00:00</updated>
<author>
<name>Michael S. Tsirkin</name>
<email>mst@dev.mellanox.co.il</email>
</author>
<published>2007-06-19T10:40:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=3ec7393a6858a1716e74aa81be6af76fd180021d'/>
<id>urn:sha1:3ec7393a6858a1716e74aa81be6af76fd180021d</id>
<content type='text'>
Fix a crasher bug in IPoIB CM: once a QP is in the RTR state, a
receive completion (or even an asynchronous error) might be observed
on this QP, so we have to initialize all of our receive data
structures before moving to the RTR state.

As an optimization (since modify_qp might take a long time), the
jiffies update done when moving RX to the passive_ids list is also
left in place to reduce the chance of the RX being misdetected as
stale.

This fixes bug &lt;https://bugs.openfabrics.org/show_bug.cgi?id=662&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>
</entry>
<entry>
<title>IB/umem: Fix possible hang on process exit</title>
<updated>2007-06-21T18:05:58+00:00</updated>
<author>
<name>Roland Dreier</name>
<email>rolandd@cisco.com</email>
</author>
<published>2007-06-21T18:05:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=24bce5080306bd5255cbda3d6b09a29d5515b470'/>
<id>urn:sha1:24bce5080306bd5255cbda3d6b09a29d5515b470</id>
<content type='text'>
If ib_umem_release() is called after ib_uverbs_close() sets context-&gt;closing,
then a process can get stuck in a D state, because the code boils down to

	if (down_write_trylock(&amp;mm-&gt;mmap_sem))
		down_write(&amp;mm-&gt;mmap_sem);

which is obviously a stupid instant deadlock.  Fix the code so that we
only try to take the lock once.

This bug was introduced in commit f7c6a7b5 ("IB/uverbs: Export
ib_umem_get()/ib_umem_release() to modules") which fortunately never
made it into a release, and was reported by Pete Wyckoff &lt;pw@osc.edu&gt;.

Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</content>
</entry>
<entry>
<title>IB/mlx4: Make sure inline data segments don't cross a 64 byte boundary</title>
<updated>2007-06-18T16:23:47+00:00</updated>
<author>
<name>Roland Dreier</name>
<email>rolandd@cisco.com</email>
</author>
<published>2007-06-18T16:23:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=e61ef2416b0b92828512b6cfcd0104a02b6431fe'/>
<id>urn:sha1:e61ef2416b0b92828512b6cfcd0104a02b6431fe</id>
<content type='text'>
Inline data segments in send WQEs are not allowed to cross a 64 byte
boundary.  We use inline data segments to hold the UD headers for MLX
QPs (QP0 and QP1).  A send with GRH on QP1 will have a UD header that
is too big to fit in a single inline data segment without crossing a
64 byte boundary, so split the header into two inline data segments.

Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</content>
</entry>
<entry>
<title>IB/mlx4: Handle FW command interface rev 3</title>
<updated>2007-06-18T15:15:02+00:00</updated>
<author>
<name>Roland Dreier</name>
<email>rolandd@cisco.com</email>
</author>
<published>2007-06-18T15:15:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=5ae2a7a836be660ff1621cce1c46930f19200589'/>
<id>urn:sha1:5ae2a7a836be660ff1621cce1c46930f19200589</id>
<content type='text'>
Upcoming firmware introduces command interface revision 3, which
changes the way port capabilities are queried and set.  Update the
driver to handle both the new and old command interfaces by adding a
new MLX4_FLAG_OLD_PORT_CMDS that it is set after querying the firmware
interface revision and then using the correct interface based on the
setting of the flag.

Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</content>
</entry>
<entry>
<title>IB/mlx4: Handle buffer wraparound in __mlx4_ib_cq_clean()</title>
<updated>2007-06-18T15:13:59+00:00</updated>
<author>
<name>Jack Morgenstein</name>
<email>jackm@dev.mellanox.co.il</email>
</author>
<published>2007-06-18T15:13:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=082dee3216c99a838af40be403799f60bcea2e97'/>
<id>urn:sha1:082dee3216c99a838af40be403799f60bcea2e97</id>
<content type='text'>
When compacting CQ entries, we need to set the correct value of the
ownership bit in case the value is different between the index we copy
the CQE from and the index we copy it to.

Found by Ronni Zimmerman of Mellanox.

Signed-off-by: Jack Morgenstein &lt;jackm@dev.mellanox.co.il&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</content>
</entry>
</feed>
