<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/drivers/infiniband, branch v2.6.17</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>IPoIB: Fix AH leak at interface down</title>
<updated>2006-06-05T16:51:36+00:00</updated>
<author>
<name>Eli Cohen</name>
<email>eli@mellanox.co.il</email>
</author>
<published>2006-06-05T16:51:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=959eb39297e8c82f61fbfc283ad4ff11c883bf1e'/>
<id>959eb39297e8c82f61fbfc283ad4ff11c883bf1e</id>
<content type='text'>
When ipoib_stop() is called it first calls netif_stop_queue() to stop
the kernel from passing more packets to the network driver. However,
the completion handler may call netif_wake_queue() re-enabling packet
transfer.

This might result in leaks (we see AH leaks which we think can be
attributed to this bug) as new packets get posted while the interface
is going down.

Signed-off-by: Eli Cohen &lt;eli@mellanox.co.il&gt;
Signed-off-by: Michael Tsirkin &lt;mst@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>
When ipoib_stop() is called it first calls netif_stop_queue() to stop
the kernel from passing more packets to the network driver. However,
the completion handler may call netif_wake_queue() re-enabling packet
transfer.

This might result in leaks (we see AH leaks which we think can be
attributed to this bug) as new packets get posted while the interface
is going down.

Signed-off-by: Eli Cohen &lt;eli@mellanox.co.il&gt;
Signed-off-by: Michael Tsirkin &lt;mst@mellanox.co.il&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>IB/mthca: Fix posting lists of 256 receive requests to SRQ for Tavor</title>
<updated>2006-05-24T20:43:37+00:00</updated>
<author>
<name>Michael S. Tsirkin</name>
<email>mst@mellanox.co.il</email>
</author>
<published>2006-05-24T15:27:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=ab28b171eabc0a414e0404844453c11af3caed10'/>
<id>ab28b171eabc0a414e0404844453c11af3caed10</id>
<content type='text'>
If we post a list of length exactly a multiple of 256, nreq in
doorbell gets set to 256 which is wrong: it should be encoded by 0.
This is because we only zero it out on the next WR, which may not be
there.  The solution is to ring the doorbell after posting a WQE, not
before posting the next one.

This is the same bug that we just fixed for QPs with non-shared RQ.

Signed-off-by: Michael S. Tsirkin &lt;mst@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>
If we post a list of length exactly a multiple of 256, nreq in
doorbell gets set to 256 which is wrong: it should be encoded by 0.
This is because we only zero it out on the next WR, which may not be
there.  The solution is to ring the doorbell after posting a WQE, not
before posting the next one.

This is the same bug that we just fixed for QPs with non-shared RQ.

Signed-off-by: Michael S. Tsirkin &lt;mst@mellanox.co.il&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>IB/ipath: deref correct pointer when using kernel SMA</title>
<updated>2006-05-23T20:29:35+00:00</updated>
<author>
<name>Bryan O'Sullivan</name>
<email>bos@pathscale.com</email>
</author>
<published>2006-05-23T18:32:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=09b74de9fff056a0a4058a0f14508acba89ea6fc'/>
<id>09b74de9fff056a0a4058a0f14508acba89ea6fc</id>
<content type='text'>
At this point, the core QP structure hasn't been initialized, so what's
in there isn't valid.  Get the same information elsewhere.

Signed-off-by: Bryan O'Sullivan &lt;bos@pathscale.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>
At this point, the core QP structure hasn't been initialized, so what's
in there isn't valid.  Get the same information elsewhere.

Signed-off-by: Bryan O'Sullivan &lt;bos@pathscale.com&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>IB/ipath: fix null deref during rdma ops</title>
<updated>2006-05-23T20:29:35+00:00</updated>
<author>
<name>Bryan O'Sullivan</name>
<email>bos@pathscale.com</email>
</author>
<published>2006-05-23T18:32:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=3977026462314dfbb237adf6a964d0f683b8e45d'/>
<id>3977026462314dfbb237adf6a964d0f683b8e45d</id>
<content type='text'>
The problem was that node A's sending thread, which handles sending RDMA
read response data, would write the trigger word, the last packet would
be sent, node B would send a new RDMA read request, node A's interrupt
handler would initialize s_rdma_sge, then node A's sending thread would
update s_rdma_sge.  This didn't happen very often naturally but was more
frequent with 1 byte RDMA reads.  Rather than adding more locking or
increasing the QP structure size and copying sge data, I modified the
copy routine to update the pointers before writing the trigger word to
avoid the update race.

Signed-off-by: Ralph Campbell &lt;ralphc@pathscale.com&gt;
Signed-off-by: Bryan O'Sullivan &lt;bos@pathscale.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 problem was that node A's sending thread, which handles sending RDMA
read response data, would write the trigger word, the last packet would
be sent, node B would send a new RDMA read request, node A's interrupt
handler would initialize s_rdma_sge, then node A's sending thread would
update s_rdma_sge.  This didn't happen very often naturally but was more
frequent with 1 byte RDMA reads.  Rather than adding more locking or
increasing the QP structure size and copying sge data, I modified the
copy routine to update the pointers before writing the trigger word to
avoid the update race.

Signed-off-by: Ralph Campbell &lt;ralphc@pathscale.com&gt;
Signed-off-by: Bryan O'Sullivan &lt;bos@pathscale.com&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>IB/ipath: register as IB device owner</title>
<updated>2006-05-23T20:29:35+00:00</updated>
<author>
<name>Bryan O'Sullivan</name>
<email>bos@pathscale.com</email>
</author>
<published>2006-05-23T18:32:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=41c75a19bf4a0102f49763a686fb7e39780349f3'/>
<id>41c75a19bf4a0102f49763a686fb7e39780349f3</id>
<content type='text'>
This fixes an oops.

Signed-off-by: Bryan O'Sullivan &lt;bos@pathscale.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 fixes an oops.

Signed-off-by: Bryan O'Sullivan &lt;bos@pathscale.com&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>IB/ipath: enable PE800 receive interrupts on user ports</title>
<updated>2006-05-23T20:29:35+00:00</updated>
<author>
<name>Bryan O'Sullivan</name>
<email>bos@pathscale.com</email>
</author>
<published>2006-05-23T18:32:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=9dcc0e58e2913f7e6ffba64c27fe5c2f2c7b845c'/>
<id>9dcc0e58e2913f7e6ffba64c27fe5c2f2c7b845c</id>
<content type='text'>
Fixed so it works on the PE-800.  It had not previously been updated to
match PE-800 receive interrupt differences from HT-400.

Signed-off-by: Bryan O'Sullivan &lt;bos@pathscale.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>
Fixed so it works on the PE-800.  It had not previously been updated to
match PE-800 receive interrupt differences from HT-400.

Signed-off-by: Bryan O'Sullivan &lt;bos@pathscale.com&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>IB/ipath: enable GPIO interrupt on HT-460</title>
<updated>2006-05-23T20:29:34+00:00</updated>
<author>
<name>Bryan O'Sullivan</name>
<email>bos@pathscale.com</email>
</author>
<published>2006-05-23T18:32:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=f2080fa3c6098dedfb9b599bdaedd07be2ea4646'/>
<id>f2080fa3c6098dedfb9b599bdaedd07be2ea4646</id>
<content type='text'>
This is required for even semi-decent performance on OpenIB.

Signed-off-by: Bryan O'Sullivan &lt;bos@pathscale.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 is required for even semi-decent performance on OpenIB.

Signed-off-by: Bryan O'Sullivan &lt;bos@pathscale.com&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>IB/ipath: fix NULL dereference during cleanup</title>
<updated>2006-05-23T20:27:06+00:00</updated>
<author>
<name>Bryan O'Sullivan</name>
<email>bos@pathscale.com</email>
</author>
<published>2006-05-23T18:32:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=b0ff7c2005f7ec8dec10fb15e62b8e1acc172bbf'/>
<id>b0ff7c2005f7ec8dec10fb15e62b8e1acc172bbf</id>
<content type='text'>
Fix NULL deref due to pcidev being clobbered before dd-&gt;ipath_f_cleanup()
was called.

Signed-off-by: Bryan O'Sullivan &lt;bos@pathscale.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>
Fix NULL deref due to pcidev being clobbered before dd-&gt;ipath_f_cleanup()
was called.

Signed-off-by: Bryan O'Sullivan &lt;bos@pathscale.com&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>IB/ipath: replace uses of LIST_POISON</title>
<updated>2006-05-23T20:27:06+00:00</updated>
<author>
<name>Bryan O'Sullivan</name>
<email>bos@pathscale.com</email>
</author>
<published>2006-05-23T18:32:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=94b8d9f98d7f535037eb9845b81396f667b4f727'/>
<id>94b8d9f98d7f535037eb9845b81396f667b4f727</id>
<content type='text'>
Per Andrew's request.

Signed-off-by: Bryan O'Sullivan &lt;bos@pathscale.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>
Per Andrew's request.

Signed-off-by: Bryan O'Sullivan &lt;bos@pathscale.com&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>IB/ipath: fix reporting of driver version to userspace</title>
<updated>2006-05-23T20:27:06+00:00</updated>
<author>
<name>Bryan O'Sullivan</name>
<email>bos@pathscale.com</email>
</author>
<published>2006-05-23T18:32:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=eaf6733bc176742fb08def2269441684e963c275'/>
<id>eaf6733bc176742fb08def2269441684e963c275</id>
<content type='text'>
Fix the interface version that gets exported to userspace.

Signed-off-by: Bryan O'Sullivan &lt;bos@pathscale.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>
Fix the interface version that gets exported to userspace.

Signed-off-by: Bryan O'Sullivan &lt;bos@pathscale.com&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
