<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/drivers/infiniband/core, 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>IB/uverbs: Don't leak ref to mm on error path</title>
<updated>2006-05-18T05:20:50+00:00</updated>
<author>
<name>Roland Dreier</name>
<email>rolandd@cisco.com</email>
</author>
<published>2006-05-18T05:20:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=0cb4fe8d2658dc0bd1accfbb74ee288a9d6788f4'/>
<id>0cb4fe8d2658dc0bd1accfbb74ee288a9d6788f4</id>
<content type='text'>
In ib_umem_release_on_close(), if the kmalloc() fails, then a
reference to current-&gt;mm will be leaked.  Fix this by adding a mmput()
instead of just returning on kmalloc() failure.

Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In ib_umem_release_on_close(), if the kmalloc() fails, then a
reference to current-&gt;mm will be leaked.  Fix this by adding a mmput()
instead of just returning on kmalloc() failure.

Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>IB: refcount race fixes</title>
<updated>2006-05-12T21:57:52+00:00</updated>
<author>
<name>Sean Hefty</name>
<email>mshefty@ichips.intel.com</email>
</author>
<published>2006-05-12T21:57:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=1b52fa98edd1c3e663ea4a06519e3d20976084a8'/>
<id>1b52fa98edd1c3e663ea4a06519e3d20976084a8</id>
<content type='text'>
Fix race condition during destruction calls to avoid possibility of
accessing object after it has been freed.  Instead of waking up a wait
queue directly, which is susceptible to a race where the object is
freed between the reference count going to 0 and the wake_up(), use a
completion to wait in the function doing the freeing.

Signed-off-by: Sean Hefty &lt;sean.hefty@intel.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 race condition during destruction calls to avoid possibility of
accessing object after it has been freed.  Instead of waking up a wait
queue directly, which is susceptible to a race where the object is
freed between the reference count going to 0 and the wake_up(), use a
completion to wait in the function doing the freeing.

Signed-off-by: Sean Hefty &lt;sean.hefty@intel.com&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>IB: Fix display of 4-bit port counters in sysfs</title>
<updated>2006-05-09T17:50:28+00:00</updated>
<author>
<name>Ralph Campbell</name>
<email>ralph.campbell@qlogic.com</email>
</author>
<published>2006-05-09T17:50:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=d8b9f23b23e080d820e3c0aa5ccd7834c26ebf96'/>
<id>d8b9f23b23e080d820e3c0aa5ccd7834c26ebf96</id>
<content type='text'>
The code to display local_link_integrity_errors and
excessive_buffer_overrun_errors in
/sys/class/infiniband/&lt;hca&gt;/ports/&lt;n&gt;/counters/
uses the wrong shift to extract the 4 bit values.

Signed-off-by: Ralph Campbell &lt;ralph.campbell@qlogic.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 code to display local_link_integrity_errors and
excessive_buffer_overrun_errors in
/sys/class/infiniband/&lt;hca&gt;/ports/&lt;n&gt;/counters/
uses the wrong shift to extract the 4 bit values.

Signed-off-by: Ralph Campbell &lt;ralph.campbell@qlogic.com&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>IB/mad: Fix RMPP version check during agent registration</title>
<updated>2006-04-19T18:40:11+00:00</updated>
<author>
<name>Hal Rosenstock</name>
<email>halr@voltaire.com</email>
</author>
<published>2006-04-13T01:29:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=64cb9c6aff273b1cd449e773c937378d68233f8b'/>
<id>64cb9c6aff273b1cd449e773c937378d68233f8b</id>
<content type='text'>
Only check that RMPP version is not specified when MAD class does not
support RMPP.  Just because a class is allowed to use RMPP doesn't
mean that rmpp_version needs to be set for the MAD agent to
register. Checking this was a recent change which was too pedantic.

Signed-off-by: Hal Rosenstock &lt;halr@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>
Only check that RMPP version is not specified when MAD class does not
support RMPP.  Just because a class is allowed to use RMPP doesn't
mean that rmpp_version needs to be set for the MAD agent to
register. Checking this was a recent change which was too pedantic.

Signed-off-by: Hal Rosenstock &lt;halr@voltaire.com&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>IB/cache: Use correct pointer to calculate size</title>
<updated>2006-04-10T20:17:43+00:00</updated>
<author>
<name>Michael S. Tsirkin</name>
<email>mst@mellanox.co.il</email>
</author>
<published>2006-04-10T20:17:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=ce684df05a531904ea055d01aeee75321fa0db1e'/>
<id>ce684df05a531904ea055d01aeee75321fa0db1e</id>
<content type='text'>
When allocating gid_cache, use kmalloc(sizeof *gid_cache, ...) rather
than kmalloc(sizeof *pkey_cache, ...).  It doesn't really matter which
one is used, since the size ends up the same either way, but it's much
better to say what we mean.

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>
When allocating gid_cache, use kmalloc(sizeof *gid_cache, ...) rather
than kmalloc(sizeof *pkey_cache, ...).  It doesn't really matter which
one is used, since the size ends up the same either way, but it's much
better to say what we mean.

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: simplify static rate encoding</title>
<updated>2006-04-10T16:43:47+00:00</updated>
<author>
<name>Jack Morgenstein</name>
<email>jackm@mellanox.co.il</email>
</author>
<published>2006-04-10T16:43:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=bf6a9e31cfa768ce0a8e18474b3ca808641d9243'/>
<id>bf6a9e31cfa768ce0a8e18474b3ca808641d9243</id>
<content type='text'>
Push translation of static rate to HCA format into low-level drivers,
where it belongs.  For static rate encoding, use encoding of rate
field from IB standard PathRecord, with addition of value 0, for
backwards compatibility with current usage.  The changes are:

 - Add enum ib_rate to midlayer includes.
 - Get rid of static rate translation in IPoIB; just use static rate
   directly from Path and MulticastGroup records.
 - Update mthca driver to translate absolute static rate into the
   format used by hardware.  This also fixes mthca's static rate
   handling for HCAs that are capable of 4X DDR.

Signed-off-by: Jack Morgenstein &lt;jackm@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>
Push translation of static rate to HCA format into low-level drivers,
where it belongs.  For static rate encoding, use encoding of rate
field from IB standard PathRecord, with addition of value 0, for
backwards compatibility with current usage.  The changes are:

 - Add enum ib_rate to midlayer includes.
 - Get rid of static rate translation in IPoIB; just use static rate
   directly from Path and MulticastGroup records.
 - Update mthca driver to translate absolute static rate into the
   format used by hardware.  This also fixes mthca's static rate
   handling for HCAs that are capable of 4X DDR.

Signed-off-by: Jack Morgenstein &lt;jackm@mellanox.co.il&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>IB/mad: fix oops in cancel_mads</title>
<updated>2006-04-02T21:39:19+00:00</updated>
<author>
<name>Michael S. Tsirkin</name>
<email>mst@mellanox.co.il</email>
</author>
<published>2006-03-30T13:52:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=37289efe3ee0c0a00b5d8302df9a2b007e65c187'/>
<id>37289efe3ee0c0a00b5d8302df9a2b007e65c187</id>
<content type='text'>
We have seen the following OOPs in cancel_mads, when restarting opensm
multiple times:

    Call Trace:
      [&lt;c010549b&gt;] show_stack+0x9b/0xb0
      [&lt;c01055ec&gt;] show_registers+0x11c/0x190
      [&lt;c01057cd&gt;] die+0xed/0x160
      [&lt;c031b966&gt;] do_page_fault+0x3f6/0x5d0
      [&lt;c010511f&gt;] error_code+0x4f/0x60
      [&lt;f8ac4e38&gt;] cancel_mads+0x128/0x150 [ib_mad]
      [&lt;f8ac2811&gt;] unregister_mad_agent+0x11/0x130 [ib_mad]
      [&lt;f8ac2a12&gt;] ib_unregister_mad_agent+0x12/0x20 [ib_mad]
      [&lt;f8b10f23&gt;] ib_umad_close+0xf3/0x130 [ib_umad]
      [&lt;c0162937&gt;] __fput+0x187/0x1c0
      [&lt;c01627a9&gt;] fput+0x19/0x20
      [&lt;c0160f7a&gt;] filp_close+0x3a/0x60
      [&lt;c0121ca8&gt;] put_files_struct+0x68/0xa0
      [&lt;c0103cf7&gt;] do_signal+0x47/0x100
      [&lt;c0103ded&gt;] do_notify_resume+0x3d/0x40
      [&lt;c0103f9e&gt;] work_notifysig+0x13/0x25

We traced this back to local_completions unlocking mad_agent_priv-&gt;lock
while still keeping a pointer into local_list. A later call to
list_del(&amp;local-&gt;completion_list) would then corrupt the list.

To fix this, remove the entry from local_list after looking it up but
before releasing mad_agent_priv-&gt;lock, to prevent cancel_mads from
finding and freeing it.

Signed-off-by: Jack Morgenstein &lt;jackm@mellanox.co.il&gt;
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>
We have seen the following OOPs in cancel_mads, when restarting opensm
multiple times:

    Call Trace:
      [&lt;c010549b&gt;] show_stack+0x9b/0xb0
      [&lt;c01055ec&gt;] show_registers+0x11c/0x190
      [&lt;c01057cd&gt;] die+0xed/0x160
      [&lt;c031b966&gt;] do_page_fault+0x3f6/0x5d0
      [&lt;c010511f&gt;] error_code+0x4f/0x60
      [&lt;f8ac4e38&gt;] cancel_mads+0x128/0x150 [ib_mad]
      [&lt;f8ac2811&gt;] unregister_mad_agent+0x11/0x130 [ib_mad]
      [&lt;f8ac2a12&gt;] ib_unregister_mad_agent+0x12/0x20 [ib_mad]
      [&lt;f8b10f23&gt;] ib_umad_close+0xf3/0x130 [ib_umad]
      [&lt;c0162937&gt;] __fput+0x187/0x1c0
      [&lt;c01627a9&gt;] fput+0x19/0x20
      [&lt;c0160f7a&gt;] filp_close+0x3a/0x60
      [&lt;c0121ca8&gt;] put_files_struct+0x68/0xa0
      [&lt;c0103cf7&gt;] do_signal+0x47/0x100
      [&lt;c0103ded&gt;] do_notify_resume+0x3d/0x40
      [&lt;c0103f9e&gt;] work_notifysig+0x13/0x25

We traced this back to local_completions unlocking mad_agent_priv-&gt;lock
while still keeping a pointer into local_list. A later call to
list_del(&amp;local-&gt;completion_list) would then corrupt the list.

To fix this, remove the entry from local_list after looking it up but
before releasing mad_agent_priv-&gt;lock, to prevent cancel_mads from
finding and freeing it.

Signed-off-by: Jack Morgenstein &lt;jackm@mellanox.co.il&gt;
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/mad: RMPP support for additional classes</title>
<updated>2006-03-30T15:19:51+00:00</updated>
<author>
<name>Hal Rosenstock</name>
<email>halr@voltaire.com</email>
</author>
<published>2006-03-29T00:40:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=618a3c03fcfdf1ac4543247c8ddfb0c9d775ff33'/>
<id>618a3c03fcfdf1ac4543247c8ddfb0c9d775ff33</id>
<content type='text'>
Add RMPP support for additional management classes that support it.
Also, validate RMPP is consistent with management class specified.

Signed-off-by: Hal Rosenstock &lt;halr@voltaire.com&gt;
Signed-off-by: Sean Hefty &lt;sean.hefty@intel.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>
Add RMPP support for additional management classes that support it.
Also, validate RMPP is consistent with management class specified.

Signed-off-by: Hal Rosenstock &lt;halr@voltaire.com&gt;
Signed-off-by: Sean Hefty &lt;sean.hefty@intel.com&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>IB/mad: include GID/class when matching receives</title>
<updated>2006-03-30T15:19:48+00:00</updated>
<author>
<name>Jack Morgenstein</name>
<email>jackm@mellanox.co.il</email>
</author>
<published>2006-03-29T00:39:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=fa9656bbd9af5b95adc43eaa0a143992346378cb'/>
<id>fa9656bbd9af5b95adc43eaa0a143992346378cb</id>
<content type='text'>
Received responses are currently matched against sent requests based
on TID only.  According to the spec, responses should match based on
the combination of TID, management class, and requester LID/GID.

Without the additional qualification, an agent that is responding to
two requests, both of which have the same TID, can match RMPP ACKs
with the incorrect transaction.  This problem can occur on the SM node
when responding to SA queries.

Signed-off-by: Jack Morgenstein &lt;jackm@mellanox.co.il&gt;
Signed-off-by: Sean Hefty &lt;sean.hefty@intel.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>
Received responses are currently matched against sent requests based
on TID only.  According to the spec, responses should match based on
the combination of TID, management class, and requester LID/GID.

Without the additional qualification, an agent that is responding to
two requests, both of which have the same TID, can match RMPP ACKs
with the incorrect transaction.  This problem can occur on the SM node
when responding to SA queries.

Signed-off-by: Jack Morgenstein &lt;jackm@mellanox.co.il&gt;
Signed-off-by: Sean Hefty &lt;sean.hefty@intel.com&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>IB/mad: Fix oopsable race on device removal</title>
<updated>2006-03-20T18:08:25+00:00</updated>
<author>
<name>Michael S. Tsirkin</name>
<email>mst@mellanox.co.il</email>
</author>
<published>2006-03-20T18:08:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=dc05980dd736bfbe5b2524b463e5f098e67a64e9'/>
<id>dc05980dd736bfbe5b2524b463e5f098e67a64e9</id>
<content type='text'>
Fix an oopsable race debugged by Eli Cohen &lt;eli@mellanox.co.il&gt;:
After removing the port from port_list, ib_mad_port_close flushes
port_priv-&gt;wq before destroying the special QPs. This means that a
completion event could arrive, and queue a new work in this work queue
after flush.

This patch also removes an unnecessary flush_workqueue():
destroy_workqueue() already includes a flush.

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>
Fix an oopsable race debugged by Eli Cohen &lt;eli@mellanox.co.il&gt;:
After removing the port from port_list, ib_mad_port_close flushes
port_priv-&gt;wq before destroying the special QPs. This means that a
completion event could arrive, and queue a new work in this work queue
after flush.

This patch also removes an unnecessary flush_workqueue():
destroy_workqueue() already includes a flush.

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>
</feed>
