<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/infiniband/core/user_mad.c, branch v3.17.4</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>IB/mad: Add user space RMPP support</title>
<updated>2014-08-11T03:36:00+00:00</updated>
<author>
<name>Ira Weiny</name>
<email>ira.weiny@intel.com</email>
</author>
<published>2014-08-08T23:00:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=1471cb6ca67990a306500e69e52ffb28c93ccbbc'/>
<id>1471cb6ca67990a306500e69e52ffb28c93ccbbc</id>
<content type='text'>
Using the new registration mechanism, define a flag that indicates the
user wishes to process RMPP messages in user space rather than have
the kernel process them.

Signed-off-by: Ira Weiny &lt;ira.weiny@intel.com&gt;
Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Using the new registration mechanism, define a flag that indicates the
user wishes to process RMPP messages in user space rather than have
the kernel process them.

Signed-off-by: Ira Weiny &lt;ira.weiny@intel.com&gt;
Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>IB/mad: add new ioctl to ABI to support new registration options</title>
<updated>2014-08-11T03:36:00+00:00</updated>
<author>
<name>Ira Weiny</name>
<email>ira.weiny@intel.com</email>
</author>
<published>2014-08-08T23:00:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=0f29b46d49b0ca50536632c6a33986c3171f5ea1'/>
<id>0f29b46d49b0ca50536632c6a33986c3171f5ea1</id>
<content type='text'>
Registrations options are specified through flags.  Definitions of flags will
be in subsequent patches.

Signed-off-by: Ira Weiny &lt;ira.weiny@intel.com&gt;
Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Registrations options are specified through flags.  Definitions of flags will
be in subsequent patches.

Signed-off-by: Ira Weiny &lt;ira.weiny@intel.com&gt;
Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>IB/mad: Add dev_notice messages for various umad/mad registration failures</title>
<updated>2014-08-11T03:36:00+00:00</updated>
<author>
<name>Ira Weiny</name>
<email>ira.weiny@intel.com</email>
</author>
<published>2014-08-08T23:00:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=9ad13a423484725324fb2c5c5ab527d6bf9d84cc'/>
<id>9ad13a423484725324fb2c5c5ab527d6bf9d84cc</id>
<content type='text'>
Registration failures can be difficult to debug from userspace.  This
gives more visibility.

Signed-off-by: Ira Weiny &lt;ira.weiny@intel.com&gt;
Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Registration failures can be difficult to debug from userspace.  This
gives more visibility.

Signed-off-by: Ira Weiny &lt;ira.weiny@intel.com&gt;
Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>IB/umad: Update module to [pr|dev]_* style print messages</title>
<updated>2014-08-11T02:50:07+00:00</updated>
<author>
<name>Ira Weiny</name>
<email>ira.weiny@intel.com</email>
</author>
<published>2014-08-08T23:00:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=f426a40eb695d315466f130618db30cafb27db90'/>
<id>f426a40eb695d315466f130618db30cafb27db90</id>
<content type='text'>
Use dev_* style print when struct device is available.

Also combine previously line broken user-visible strings as per
Documentation/CodingStyle:

"However, never break user-visible strings such as printk messages,
because that breaks the ability to grep for them."

Signed-off-by: Ira Weiny &lt;ira.weiny@intel.com&gt;
Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use dev_* style print when struct device is available.

Also combine previously line broken user-visible strings as per
Documentation/CodingStyle:

"However, never break user-visible strings such as printk messages,
because that breaks the ability to grep for them."

Signed-off-by: Ira Weiny &lt;ira.weiny@intel.com&gt;
Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>IB/umad: Fix use-after-free on close</title>
<updated>2014-06-06T18:38:31+00:00</updated>
<author>
<name>Bart Van Assche</name>
<email>bvanassche@acm.org</email>
</author>
<published>2014-06-06T16:25:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=60e1751cb52cc6d1ae04b6bd3c2b96e770b5823f'/>
<id>60e1751cb52cc6d1ae04b6bd3c2b96e770b5823f</id>
<content type='text'>
Avoid that closing /dev/infiniband/umad&lt;n&gt; or /dev/infiniband/issm&lt;n&gt;
triggers a use-after-free.  __fput() invokes f_op-&gt;release() before it
invokes cdev_put().  Make sure that the ib_umad_device structure is
freed by the cdev_put() call instead of f_op-&gt;release().  This avoids
that changing the port mode from IB into Ethernet and back to IB
followed by restarting opensmd triggers the following kernel oops:

    general protection fault: 0000 [#1] PREEMPT SMP
    RIP: 0010:[&lt;ffffffff810cc65c&gt;]  [&lt;ffffffff810cc65c&gt;] module_put+0x2c/0x170
    Call Trace:
     [&lt;ffffffff81190f20&gt;] cdev_put+0x20/0x30
     [&lt;ffffffff8118e2ce&gt;] __fput+0x1ae/0x1f0
     [&lt;ffffffff8118e35e&gt;] ____fput+0xe/0x10
     [&lt;ffffffff810723bc&gt;] task_work_run+0xac/0xe0
     [&lt;ffffffff81002a9f&gt;] do_notify_resume+0x9f/0xc0
     [&lt;ffffffff814b8398&gt;] int_signal+0x12/0x17

Reference: https://bugzilla.kernel.org/show_bug.cgi?id=75051
Signed-off-by: Bart Van Assche &lt;bvanassche@acm.org&gt;
Reviewed-by: Yann Droneaud &lt;ydroneaud@opteya.com&gt;
Cc: &lt;stable@vger.kernel.org&gt; # 3.x: 8ec0a0e6b58: IB/umad: Fix error handling
Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Avoid that closing /dev/infiniband/umad&lt;n&gt; or /dev/infiniband/issm&lt;n&gt;
triggers a use-after-free.  __fput() invokes f_op-&gt;release() before it
invokes cdev_put().  Make sure that the ib_umad_device structure is
freed by the cdev_put() call instead of f_op-&gt;release().  This avoids
that changing the port mode from IB into Ethernet and back to IB
followed by restarting opensmd triggers the following kernel oops:

    general protection fault: 0000 [#1] PREEMPT SMP
    RIP: 0010:[&lt;ffffffff810cc65c&gt;]  [&lt;ffffffff810cc65c&gt;] module_put+0x2c/0x170
    Call Trace:
     [&lt;ffffffff81190f20&gt;] cdev_put+0x20/0x30
     [&lt;ffffffff8118e2ce&gt;] __fput+0x1ae/0x1f0
     [&lt;ffffffff8118e35e&gt;] ____fput+0xe/0x10
     [&lt;ffffffff810723bc&gt;] task_work_run+0xac/0xe0
     [&lt;ffffffff81002a9f&gt;] do_notify_resume+0x9f/0xc0
     [&lt;ffffffff814b8398&gt;] int_signal+0x12/0x17

Reference: https://bugzilla.kernel.org/show_bug.cgi?id=75051
Signed-off-by: Bart Van Assche &lt;bvanassche@acm.org&gt;
Reviewed-by: Yann Droneaud &lt;ydroneaud@opteya.com&gt;
Cc: &lt;stable@vger.kernel.org&gt; # 3.x: 8ec0a0e6b58: IB/umad: Fix error handling
Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>IB/umad: Fix error handling</title>
<updated>2014-05-30T04:27:30+00:00</updated>
<author>
<name>Bart Van Assche</name>
<email>bvanassche@acm.org</email>
</author>
<published>2014-05-20T08:33:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=8ec0a0e6b58218bdc1db91dd70ebfcd6ad8dd6cd'/>
<id>8ec0a0e6b58218bdc1db91dd70ebfcd6ad8dd6cd</id>
<content type='text'>
Avoid leaking a kref count in ib_umad_open() if port-&gt;ib_dev == NULL
or if nonseekable_open() fails.

Avoid leaking a kref count, that sm_sem is kept down and also that the
IB_PORT_SM capability mask is not cleared in ib_umad_sm_open() if
nonseekable_open() fails.

Since container_of() never returns NULL, remove the code that tests
whether container_of() returns NULL.

Moving the kref_get() call from the start of ib_umad_*open() to the
end is safe since it is the responsibility of the caller of these
functions to ensure that the cdev pointer remains valid until at least
when these functions return.

Signed-off-by: Bart Van Assche &lt;bvanassche@acm.org&gt;
Cc: &lt;stable@vger.kernel.org&gt;

[ydroneaud@opteya.com: rework a bit to reduce the amount of code changed]

Signed-off-by: Yann Droneaud &lt;ydroneaud@opteya.com&gt;

[ nonseekable_open() can't actually fail, but....  - Roland ]

Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Avoid leaking a kref count in ib_umad_open() if port-&gt;ib_dev == NULL
or if nonseekable_open() fails.

Avoid leaking a kref count, that sm_sem is kept down and also that the
IB_PORT_SM capability mask is not cleared in ib_umad_sm_open() if
nonseekable_open() fails.

Since container_of() never returns NULL, remove the code that tests
whether container_of() returns NULL.

Moving the kref_get() call from the start of ib_umad_*open() to the
end is safe since it is the responsibility of the caller of these
functions to ensure that the cdev pointer remains valid until at least
when these functions return.

Signed-off-by: Bart Van Assche &lt;bvanassche@acm.org&gt;
Cc: &lt;stable@vger.kernel.org&gt;

[ydroneaud@opteya.com: rework a bit to reduce the amount of code changed]

Signed-off-by: Yann Droneaud &lt;ydroneaud@opteya.com&gt;

[ nonseekable_open() can't actually fail, but....  - Roland ]

Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>switch device_get_devnode() and -&gt;devnode() to umode_t *</title>
<updated>2012-01-04T03:54:55+00:00</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2011-07-24T00:24:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=2c9ede55ecec58099b72e4bb8eab719f32f72c31'/>
<id>2c9ede55ecec58099b72e4bb8eab719f32f72c31</id>
<content type='text'>
both callers of device_get_devnode() are only interested in lower 16bits
and nobody tries to return anything wider than 16bit anyway.

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
both callers of device_get_devnode() are only interested in lower 16bits
and nobody tries to return anything wider than 16bit anyway.

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>RDMA/ucm: Removed checks for unsigned value &lt; 0</title>
<updated>2011-10-06T16:33:05+00:00</updated>
<author>
<name>Hefty, Sean</name>
<email>sean.hefty@intel.com</email>
</author>
<published>2011-10-06T16:33:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=caf6e3f221ddc12ccabd1cd0ba149561db0090d4'/>
<id>caf6e3f221ddc12ccabd1cd0ba149561db0090d4</id>
<content type='text'>
cmd is unsigned, no need to check for &lt; 0.  Found by code inspection.

Signed-off-by: Sean Hefty &lt;sean.hefty@intel.com&gt;
Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
cmd is unsigned, no need to check for &lt; 0.  Found by code inspection.

Signed-off-by: Sean Hefty &lt;sean.hefty@intel.com&gt;
Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>IB: Add devnode methods to cm_class and umad_class</title>
<updated>2011-05-23T18:24:28+00:00</updated>
<author>
<name>Roland Dreier</name>
<email>roland@purestorage.com</email>
</author>
<published>2011-05-23T18:21:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c3af0980ce01dfb8e946990c3ae4c3727b1e9f26'/>
<id>c3af0980ce01dfb8e946990c3ae4c3727b1e9f26</id>
<content type='text'>
We want the ucmX, umadX and issmX device nodes to show up under
/dev/infiniband, and additionally ucmX should have mode 0666.  Add
appropriate devnode methods to their class structs for this.

Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We want the ucmX, umadX and issmX device nodes to show up under
/dev/infiniband, and additionally ucmX should have mode 0666.  Add
appropriate devnode methods to their class structs for this.

Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>IB/umad: Make user_mad semaphore a real one</title>
<updated>2010-09-29T03:52:21+00:00</updated>
<author>
<name>Thomas Gleixner</name>
<email>tglx@linutronix.de</email>
</author>
<published>2010-09-07T14:33:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=557d0540b96176dc42943e84c88c288f523388ca'/>
<id>557d0540b96176dc42943e84c88c288f523388ca</id>
<content type='text'>
Get rid of init_MUTEX[_LOCKED]() and use sema_init() instead.

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Get rid of init_MUTEX[_LOCKED]() and use sema_init() instead.

Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Roland Dreier &lt;rolandd@cisco.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
