<feed xmlns='http://www.w3.org/2005/Atom'>
<title>lwn.git/drivers/infiniband/core/device.c, branch v3.2.26</title>
<subtitle>Linux kernel documentation tree maintained by Jonathan Corbet</subtitle>
<id>http://mirrors.hust.edu.cn/git/lwn.git/atom?h=v3.2.26</id>
<link rel='self' href='http://mirrors.hust.edu.cn/git/lwn.git/atom?h=v3.2.26'/>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/'/>
<updated>2011-07-18T23:44:30+00:00</updated>
<entry>
<title>RDMA: Allow for NULL .modify_device() and .modify_port() methods</title>
<updated>2011-07-18T23:44:30+00:00</updated>
<author>
<name>Bart Van Assche</name>
<email>bvanassche@acm.org</email>
</author>
<published>2011-06-18T16:35:42+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=10e1b54bbb51ac134c51996022f3bd10579fbd3b'/>
<id>urn:sha1:10e1b54bbb51ac134c51996022f3bd10579fbd3b</id>
<content type='text'>
These methods don't make sense for iWARP devices, so rather than
forcing them to implement stubs, just return -ENOSYS in the core if
the hardware driver doesn't set .modify_device and/or .modify_port.

Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
</content>
</entry>
<entry>
<title>RDMA: Add netlink infrastructure</title>
<updated>2011-05-20T18:46:11+00:00</updated>
<author>
<name>Roland Dreier</name>
<email>roland@purestorage.com</email>
</author>
<published>2011-05-20T18:46:11+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=b2cbae2c248776d81cc265ff7d48405b6a4cc463'/>
<id>urn:sha1:b2cbae2c248776d81cc265ff7d48405b6a4cc463</id>
<content type='text'>
Add basic RDMA netlink infrastructure that allows for registration of
RDMA clients for which data is to be exported and supplies message
construction callbacks.

Signed-off-by: Nir Muchtar &lt;nirm@voltaire.com&gt;

[ Reorganize a few things, add CONFIG_NET dependency.  - Roland ]

Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
</content>
</entry>
<entry>
<title>RDMA: Add error handling to ib_core_init()</title>
<updated>2011-05-20T18:46:10+00:00</updated>
<author>
<name>Nir Muchtar</name>
<email>nirm@voltaire.com</email>
</author>
<published>2011-05-20T18:46:10+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=fd75c789abf7948e16fe50917a6acb809927719a'/>
<id>urn:sha1:fd75c789abf7948e16fe50917a6acb809927719a</id>
<content type='text'>
Fail RDMA midlayer initialization if sysfs setup fails.

Signed-off-by: Nir Muchtar &lt;nirm@voltaire.com&gt;
Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
</content>
</entry>
<entry>
<title>RDMA: Update workqueue usage</title>
<updated>2011-01-17T05:16:31+00:00</updated>
<author>
<name>Tejun Heo</name>
<email>tj@kernel.org</email>
</author>
<published>2010-10-19T15:24:36+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=f06267104dd9112f11586830d22501d0e26245ea'/>
<id>urn:sha1:f06267104dd9112f11586830d22501d0e26245ea</id>
<content type='text'>
* ib_wq is added, which is used as the common workqueue for infiniband
  instead of the system workqueue.  All system workqueue usages
  including flush_scheduled_work() callers are converted to use and
  flush ib_wq.

* cancel_delayed_work() + flush_scheduled_work() converted to
  cancel_delayed_work_sync().

* qib_wq is removed and ib_wq is used instead.

This is to prepare for deprecation of flush_scheduled_work().

Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</content>
</entry>
<entry>
<title>IB/core: Allow device-specific per-port sysfs files</title>
<updated>2010-05-21T17:34:44+00:00</updated>
<author>
<name>Ralph Campbell</name>
<email>ralph.campbell@qlogic.com</email>
</author>
<published>2010-05-07T00:03:25+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=9a6edb60ec10d86b1025a0cdad68fd89f1ddaf02'/>
<id>urn:sha1:9a6edb60ec10d86b1025a0cdad68fd89f1ddaf02</id>
<content type='text'>
Add a new parameter to ib_register_device() so that low-level device
drivers can pass in a pointer to a callback function that will be
called for each port that is registered in sysfs.  This allows
low-level device drivers to create files in

    /sys/class/infiniband/&lt;hca&gt;/ports/&lt;N&gt;/

without having to poke through the internals of the RDMA sysfs handling.

There is no need for an unregister function since the kobject
reference will go to zero when ib_unregister_device() is called.

Signed-off-by: Ralph Campbell &lt;ralph.campbell@qlogic.com&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</content>
</entry>
<entry>
<title>IB: Remove sysfs files before unregistering device</title>
<updated>2009-02-25T21:27:46+00:00</updated>
<author>
<name>Roland Dreier</name>
<email>rolandd@cisco.com</email>
</author>
<published>2009-02-25T21:27:46+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=9206dff15705267c19f8fed391c4fb95975540a3'/>
<id>urn:sha1:9206dff15705267c19f8fed391c4fb95975540a3</id>
<content type='text'>
Move the ib_device_unregister_sysfs() call from ib_dealloc_device() to
ib_unregister_device().  The old code allows device unregister to
proceed even if some sysfs files are open, which leaves a window where
userspace can open a file before a device is removed but then end up
reading the file after the device is removed, which leads to various
kernel crashes either because the device data structure is freed or
because the low-level driver code is gone after module removal.

By not returning from ib_unregister_device() until after all sysfs
entries are removed, we make sure that data structures and/or module
code is not freed until after all sysfs access is done.

Reported-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: Remove subversion $Id tags</title>
<updated>2008-07-15T06:48:44+00:00</updated>
<author>
<name>Roland Dreier</name>
<email>rolandd@cisco.com</email>
</author>
<published>2008-07-15T06:48:44+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=f3781d2e89f12dd5afa046dc56032af6e39bd116'/>
<id>urn:sha1:f3781d2e89f12dd5afa046dc56032af6e39bd116</id>
<content type='text'>
They don't get updated by git and so they're worse than useless.

Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</content>
</entry>
<entry>
<title>IB: find_first_zero_bit() takes unsigned pointer</title>
<updated>2007-10-10T02:59:04+00:00</updated>
<author>
<name>Roland Dreier</name>
<email>rolandd@cisco.com</email>
</author>
<published>2007-10-10T02:59:04+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=65d470b3ea52ee1402499d6fcb4632296452e5b1'/>
<id>urn:sha1:65d470b3ea52ee1402499d6fcb4632296452e5b1</id>
<content type='text'>
Fix sparse warning

    drivers/infiniband/core/device.c:142:6: warning: incorrect type in argument 1 (different signedness)
    drivers/infiniband/core/device.c:142:6:    expected unsigned long const *addr
    drivers/infiniband/core/device.c:142:6:    got long *[assigned] inuse

by making the local variable inuse unsigned.  Does not affect generated
code at all.

Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</content>
</entry>
<entry>
<title>IB/core: Ignore membership bit in ib_find_pkey()</title>
<updated>2007-08-03T17:45:17+00:00</updated>
<author>
<name>Moni Shoua</name>
<email>monisonlists@gmail.com</email>
</author>
<published>2007-07-23T07:07:42+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=36026ecc20e5df722bbe2ea9e451c73d686ef107'/>
<id>urn:sha1:36026ecc20e5df722bbe2ea9e451c73d686ef107</id>
<content type='text'>
ib_find_pkey() is used as a replacement for ib_find_cached_pkey(), and
the original function ignored the membership bit when searching for a
P_Key, so ib_find_pkey() should ignore the bit too.

In particular, IPoIB turns on the P_Key membership bit of limited
membership P_Keys when creating a child interface and looks for the
full membership P_key.  This broke if a port was a partial member of a
partition when IPoIB switched from ib_find_cached_pkey() to
ib_find_pkey(), and this change fixes things again.

Signed-off-by: Moni Shoua &lt;monis@voltaire.com&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband</title>
<updated>2007-05-21T23:19:32+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@woody.linux-foundation.org</email>
</author>
<published>2007-05-21T23:19:32+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=8aee74c8ee875448cc6d1cf995c9469eb60ae515'/>
<id>urn:sha1:8aee74c8ee875448cc6d1cf995c9469eb60ae515</id>
<content type='text'>
* 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband:
  IB/cm: Improve local id allocation
  IPoIB/cm: Fix SRQ WR leak
  IB/ipoib: Fix typos in error messages
  IB/mlx4: Check if SRQ is full when posting receive
  IB/mlx4: Pass send queue sizes from userspace to kernel
  IB/mlx4: Fix check of opcode in mlx4_ib_post_send()
  mlx4_core: Fix array overrun in dump_dev_cap_flags()
  IB/mlx4: Fix RESET to RESET and RESET to ERROR transitions
  IB/mthca: Fix RESET to ERROR transition
  IB/mlx4: Set GRH:HopLimit when sending globally routed MADs
  IB/mthca: Set GRH:HopLimit when building MLX headers
  IB/mlx4: Fix check of max_qp_dest_rdma in modify QP
  IB/mthca: Fix use-after-free on device restart
  IB/ehca: Return proper error code if register_mr fails
  IPoIB: Handle P_Key table reordering
  IB/core: Use start_port() and end_port()
  IB/core: Add helpers for uncached GID and P_Key searches
  IB/ipath: Fix potential deadlock with multicast spinlocks
  IB/core: Free umem when mm is already gone
</content>
</entry>
</feed>
