<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/infiniband, branch linux-2.6.20.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.20.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.20.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2007-05-02T00:05:54Z</updated>
<entry>
<title>IB/mthca: Fix data corruption after FMR unmap on Sinai</title>
<updated>2007-05-02T00:05:54Z</updated>
<author>
<name>Michael S. Tsirkin</name>
</author>
<published>2007-04-16T21:17:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d44da5e9d31b3f386db33b50bb16ca4d0734d184'/>
<id>urn:sha1:d44da5e9d31b3f386db33b50bb16ca4d0734d184</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;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>IB/ehca: Fix mismatched spin_unlock in irq handler</title>
<updated>2007-01-23T01:03:55Z</updated>
<author>
<name>Hoang-Nam Nguyen</name>
</author>
<published>2007-01-19T21:50:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cea9ea67e9927da18af89b49bd949a8d65ba1b15'/>
<id>urn:sha1:cea9ea67e9927da18af89b49bd949a8d65ba1b15</id>
<content type='text'>
The lock is taken with _irqsave and hence must be released with
_irqrestore on all paths.

Signed-off-by Hoang-Nam Nguyen &lt;hnguyen@de.ibm.com&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</content>
</entry>
<entry>
<title>IB/ehca: Fix improper use of yield() with spinlock held</title>
<updated>2007-01-23T01:03:55Z</updated>
<author>
<name>Hoang-Nam Nguyen</name>
</author>
<published>2007-01-19T21:50:10Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ce29d72cc737df3573854a4719f00385adf1c9a6'/>
<id>urn:sha1:ce29d72cc737df3573854a4719f00385adf1c9a6</id>
<content type='text'>
Signed-off-by: Hoang-Nam Nguyen &lt;hnguyen@de.ibm.com&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</content>
</entry>
<entry>
<title>IB/srp: Check match_strdup() return</title>
<updated>2007-01-23T01:03:54Z</updated>
<author>
<name>Ishai Rabinovitz</name>
</author>
<published>2007-01-16T15:20:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a20f3a6d7e67a8aee571fb04634a631ba59f6e92'/>
<id>urn:sha1:a20f3a6d7e67a8aee571fb04634a631ba59f6e92</id>
<content type='text'>
Checks if the kmalloc in match_strdup() was successful, and bail out
on looking at the token if it failed.

Signed-off-by: Ishai Rabinovitz &lt;ishai@mellanox.co.il&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</content>
</entry>
<entry>
<title>IB/mthca: Don't execute QUERY_QP firmware command for QP in RESET state</title>
<updated>2007-01-09T22:14:28Z</updated>
<author>
<name>Dotan Barak</name>
</author>
<published>2006-12-27T13:46:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f5e10529a9a835a267f6aa7806e291d6df845e14'/>
<id>urn:sha1:f5e10529a9a835a267f6aa7806e291d6df845e14</id>
<content type='text'>
If a QP being queried is in the RESET state, don't execute the
QUERY_QP firmware command (because it will fail).

Signed-off-by: Dotan Barak &lt;dotanb@mellanox.co.il&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</content>
</entry>
<entry>
<title>IB/ehca: Use proper GFP_ flags for get_zeroed_page()</title>
<updated>2007-01-09T22:14:24Z</updated>
<author>
<name>Hoang-Nam Nguyen</name>
</author>
<published>2007-01-09T17:04:14Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f2d9136133de257abbd97fec6f624d3a73d1e1fd'/>
<id>urn:sha1:f2d9136133de257abbd97fec6f624d3a73d1e1fd</id>
<content type='text'>
Here is a patch for ehca to use proper flag, ie. GFP_ATOMIC
resp. GFP_KERNEL, when calling get_zeroed_page() to prevent "Bug:
scheduling while atomic...". This error does not cause a kernel panic
but makes ipoib un-usable afterwards.  It is reproducible on
2.6.20-rc4 if one does ifconfig down during a flood ping test.  I have
not observed this error in earlier releases incl. 2.6.20-rc1.

This error occurs when a qp event/irq is received and ehca event
handler allocates a control block/page to obtain HCA error data block.
Use of GFP_ATOMIC when in interrupt context prevents this issue.

Signed-off-by Hoang-Nam Nguyen &lt;hnguyen@de.ibm.com&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</content>
</entry>
<entry>
<title>IB/mthca: Fix PRM compliance problem in atomic-send completions</title>
<updated>2007-01-08T04:25:24Z</updated>
<author>
<name>Jack Morgenstein</name>
</author>
<published>2006-12-25T07:24:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=98714cb161b4b1a5d0c5bd0337a8578196b73677'/>
<id>urn:sha1:98714cb161b4b1a5d0c5bd0337a8578196b73677</id>
<content type='text'>
According to the Tavor and Arbel programmer's reference manuals, the
number of bytes transferred is not provided in the byte_cnt field of
the CQ entry for atomic operation completions.  For atomic operations,
the number of bytes transferred is always 8 (when the status is
"success"), and this constant value should always be used by the
driver in the ib_wc entry returned, rather than using the CQE.

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>RDMA/ucma: Don't report events with invalid user context</title>
<updated>2007-01-08T04:20:08Z</updated>
<author>
<name>Sean Hefty</name>
</author>
<published>2007-01-05T20:35:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0cefcf0bbc2d252eb48bff3289fb59c3817dd405'/>
<id>urn:sha1:0cefcf0bbc2d252eb48bff3289fb59c3817dd405</id>
<content type='text'>
There's a problem with how rdma cm events are reported to userspace
that can lead to application crashes.

When a new connection request arrives, a context for the connection is
allocated in the kernel.  The connection event is then reported to
userspace.  The userspace library retrieves the event and allocates
its own context for the connection.  The userspace context is
associated with the kernel's context when accepting.  This allows the
kernel to give userspace context with other events.

A problem occurs if a second event for the same connection occurs
before the user has had a chance to call accept.  The userspace
context has not yet been set, which causes the librdmacm to crash.
(This has been seen when the app takes too long to call accept,
resulting in the remote side timing out and rejecting the connection)

Fix this by ignoring events for new connections until userspace has
set their context.  This can only happen if an error occurs on a new
connection before the user accepts it.  This is okay, since the accept
will just fail later.

Signed-off-by: Sean Hefty &lt;sean.hefty@intel.com&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</content>
</entry>
<entry>
<title>RDMA/ucma: Fix struct ucma_event leak when backlog is full</title>
<updated>2007-01-08T04:17:34Z</updated>
<author>
<name>Sean Hefty</name>
</author>
<published>2006-12-14T19:22:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=30a5ec982e4cfa955f93c454debaefc4d61d2da6'/>
<id>urn:sha1:30a5ec982e4cfa955f93c454debaefc4d61d2da6</id>
<content type='text'>
We discard new connection requests while the listen backlog is full,
but leak a struct ucma_event in the process.  Free the structure in
this case.

Signed-off-by: Sean Hefty &lt;sean.hefty@intel.com&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</content>
</entry>
<entry>
<title>RDMA/iwcm: iWARP connection timeouts shouldn't be reported as rejects</title>
<updated>2007-01-08T04:15:58Z</updated>
<author>
<name>Steve Wise</name>
</author>
<published>2006-12-15T22:50:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=881a045fc5b454b57c69e010acecd5830d87e242'/>
<id>urn:sha1:881a045fc5b454b57c69e010acecd5830d87e242</id>
<content type='text'>
The iWARP CM should report timeouts as event RDMA_CM_EVENT_UNREACHABLE,
not event RDMA_CM_EVENT_REJECTED.

Signed-off-by: Steve Wise &lt;swise@opengridcomputing.com&gt;
Signed-off-by: Sean Hefty &lt;sean.hefty@intel.com&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</content>
</entry>
</feed>
