<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/staging, branch v3.2.12</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>media: staging: lirc_serial: Do not assume error codes returned by request_irq()</title>
<updated>2012-03-12T19:31:39+00:00</updated>
<author>
<name>Ben Hutchings</name>
<email>ben@decadent.org.uk</email>
</author>
<published>2011-11-16T04:54:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=d6bc69349915e2d58499165851a17280c97126ac'/>
<id>d6bc69349915e2d58499165851a17280c97126ac</id>
<content type='text'>
commit affc9a0d59ac49bd304e2137bd5e4ffdd6fdfa52 upstream.

lirc_serial_probe() must fail if request_irq() returns an error, even if
it isn't EBUSY or EINVAL,

Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@redhat.com&gt;
Signed-off-by: Jonathan Nieder &lt;jrnieder@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit affc9a0d59ac49bd304e2137bd5e4ffdd6fdfa52 upstream.

lirc_serial_probe() must fail if request_irq() returns an error, even if
it isn't EBUSY or EINVAL,

Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@redhat.com&gt;
Signed-off-by: Jonathan Nieder &lt;jrnieder@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>media: staging: lirc_serial: Fix deadlock on resume failure</title>
<updated>2012-03-12T19:31:39+00:00</updated>
<author>
<name>Ben Hutchings</name>
<email>ben@decadent.org.uk</email>
</author>
<published>2011-11-16T04:53:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=47cd23fd083012c8f11a93be0af485d5f2358491'/>
<id>47cd23fd083012c8f11a93be0af485d5f2358491</id>
<content type='text'>
commit 1ff1d88e862948ae5bfe490248c023ff8ac2855d upstream.

A resume function cannot remove the device it is resuming!

Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@redhat.com&gt;
Signed-off-by: Jonathan Nieder &lt;jrnieder@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;


</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 1ff1d88e862948ae5bfe490248c023ff8ac2855d upstream.

A resume function cannot remove the device it is resuming!

Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@redhat.com&gt;
Signed-off-by: Jonathan Nieder &lt;jrnieder@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;


</pre>
</div>
</content>
</entry>
<entry>
<title>media: staging: lirc_serial: Free resources on failure paths of lirc_serial_probe()</title>
<updated>2012-03-12T19:31:39+00:00</updated>
<author>
<name>Ben Hutchings</name>
<email>ben@decadent.org.uk</email>
</author>
<published>2011-11-16T04:52:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=1632fb6031bb1510ec61a1540b348cf08640450c'/>
<id>1632fb6031bb1510ec61a1540b348cf08640450c</id>
<content type='text'>
commit c8e57e1b766c2321aa76ee5e6878c69bd2313d62 upstream.

Failure to allocate the I/O region leaves the IRQ allocated.
A later failure leaves them both allocated.

Reported-by: Torsten Crass &lt;torsten.crass@eBiology.de&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@redhat.com&gt;
Signed-off-by: Jonathan Nieder &lt;jrnieder@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit c8e57e1b766c2321aa76ee5e6878c69bd2313d62 upstream.

Failure to allocate the I/O region leaves the IRQ allocated.
A later failure leaves them both allocated.

Reported-by: Torsten Crass &lt;torsten.crass@eBiology.de&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@redhat.com&gt;
Signed-off-by: Jonathan Nieder &lt;jrnieder@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>media: staging: lirc_serial: Fix init/exit order</title>
<updated>2012-03-12T19:31:39+00:00</updated>
<author>
<name>Ben Hutchings</name>
<email>ben@decadent.org.uk</email>
</author>
<published>2011-11-16T04:49:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=06b267b55cddb826dca2cc3b5eacc4ca760696f3'/>
<id>06b267b55cddb826dca2cc3b5eacc4ca760696f3</id>
<content type='text'>
commit 9105b8b200410383d0854bbe237ee385d7d33ba6 upstream.

Currently the module init function registers a platform_device and
only then allocates its IRQ and I/O region.  This allows allocation to
race with the device's suspend() function.  Instead, allocate
resources in the platform driver's probe() function and free them in
the remove() function.

The module exit function removes the platform device before the
character device that provides access to it.  Change it to reverse the
order of initialisation.

Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@redhat.com&gt;
Signed-off-by: Jonathan Nieder &lt;jrnieder@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 9105b8b200410383d0854bbe237ee385d7d33ba6 upstream.

Currently the module init function registers a platform_device and
only then allocates its IRQ and I/O region.  This allows allocation to
race with the device's suspend() function.  Instead, allocate
resources in the platform driver's probe() function and free them in
the remove() function.

The module exit function removes the platform device before the
character device that provides access to it.  Change it to reverse the
order of initialisation.

Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Signed-off-by: Mauro Carvalho Chehab &lt;mchehab@redhat.com&gt;
Signed-off-by: Jonathan Nieder &lt;jrnieder@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>zcache: fix deadlock condition</title>
<updated>2012-02-13T19:17:04+00:00</updated>
<author>
<name>Dan Magenheimer</name>
<email>dan.magenheimer@oracle.com</email>
</author>
<published>2012-01-25T22:32:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=5c97f5b2d4924961479e862e8fe516ba217551b3'/>
<id>5c97f5b2d4924961479e862e8fe516ba217551b3</id>
<content type='text'>
commit 9256a4789be3dae37d00924c03546ba7958ea5a3 upstream.

I discovered this deadlock condition awhile ago working on RAMster
but it affects zcache as well.  The list spinlock must be
locked prior to the page spinlock and released after.  As
a result, the page copy must also be done while the locks are held.

Applies to 3.2.  Konrad, please push (via GregKH?)...
this is definitely a bug fix so need not be pushed during
a -rc0 window.

Signed-off-by: Dan Magenheimer &lt;dan.magenheimer@oracle.com&gt;
Acked-by: Konrad Rzeszutek Wilk &lt;konrad.wilk@oracle.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 9256a4789be3dae37d00924c03546ba7958ea5a3 upstream.

I discovered this deadlock condition awhile ago working on RAMster
but it affects zcache as well.  The list spinlock must be
locked prior to the page spinlock and released after.  As
a result, the page copy must also be done while the locks are held.

Applies to 3.2.  Konrad, please push (via GregKH?)...
this is definitely a bug fix so need not be pushed during
a -rc0 window.

Signed-off-by: Dan Magenheimer &lt;dan.magenheimer@oracle.com&gt;
Acked-by: Konrad Rzeszutek Wilk &lt;konrad.wilk@oracle.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>zcache: Set SWIZ_BITS to 8 to reduce tmem bucket lock contention.</title>
<updated>2012-02-13T19:17:04+00:00</updated>
<author>
<name>Dan Magenheimer</name>
<email>dan.magenheimer@oracle.com</email>
</author>
<published>2012-01-23T21:52:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c1efec8273372700693661f094324081d8f3ad3d'/>
<id>c1efec8273372700693661f094324081d8f3ad3d</id>
<content type='text'>
commit e8b4553457e78bcff90f70a31212a40a8fd4f0db upstream.

SWIZ_BITS &gt; 8 results in a much larger number of "tmem_obj"
allocations, likely one per page-placed-in-frontswap.  The
tmem_obj is not huge (roughly 100 bytes), but it is large
enough to add a not-insignificant memory overhead to zcache.

The SWIZ_BITS=8  will get roughly the same lock contention
without the space wastage.

The effect of SWIZ_BITS can be thought of as "2^SWIZ_BITS is
the number of unique oids that be generated" (This concept is
limited to frontswap's use of tmem).

Acked-by: Seth Jennings &lt;sjenning@linux.vnet.ibm.com&gt;
Signed-off-by: Konrad Rzeszutek Wilk &lt;konrad.wilk@oracle.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit e8b4553457e78bcff90f70a31212a40a8fd4f0db upstream.

SWIZ_BITS &gt; 8 results in a much larger number of "tmem_obj"
allocations, likely one per page-placed-in-frontswap.  The
tmem_obj is not huge (roughly 100 bytes), but it is large
enough to add a not-insignificant memory overhead to zcache.

The SWIZ_BITS=8  will get roughly the same lock contention
without the space wastage.

The effect of SWIZ_BITS can be thought of as "2^SWIZ_BITS is
the number of unique oids that be generated" (This concept is
limited to frontswap's use of tmem).

Acked-by: Seth Jennings &lt;sjenning@linux.vnet.ibm.com&gt;
Signed-off-by: Konrad Rzeszutek Wilk &lt;konrad.wilk@oracle.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>staging: r8712u: Use asynchronous firmware loading</title>
<updated>2012-02-13T19:17:03+00:00</updated>
<author>
<name>Larry Finger</name>
<email>Larry.Finger@lwfinger.net</email>
</author>
<published>2012-02-06T03:12:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=bc5d453eab4506cb52397db8830d1070904265a4'/>
<id>bc5d453eab4506cb52397db8830d1070904265a4</id>
<content type='text'>
commit 8c213fa59199f9673d66970d6940fa093186642f upstream.

In https://bugs.archlinux.org/task/27996, failure of driver r8712u is
reported, with a timeout during module loading due to synchronous loading
of the firmware. The code now uses request_firmware_nowait().

Signed-off-by: Larry Finger &lt;Larry.Finger@lwfinger.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 8c213fa59199f9673d66970d6940fa093186642f upstream.

In https://bugs.archlinux.org/task/27996, failure of driver r8712u is
reported, with a timeout during module loading due to synchronous loading
of the firmware. The code now uses request_firmware_nowait().

Signed-off-by: Larry Finger &lt;Larry.Finger@lwfinger.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>staging: r8712u: Add new Sitecom UsB ID</title>
<updated>2012-02-13T19:17:03+00:00</updated>
<author>
<name>Larry Finger</name>
<email>Larry.Finger@lwfinger.net</email>
</author>
<published>2012-01-07T16:07:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=1cbce5d4added4defb84dc19acab3efc86b1e979'/>
<id>1cbce5d4added4defb84dc19acab3efc86b1e979</id>
<content type='text'>
commit 1793bf1deddc8ce25dc41925d5dbe64536c841b6 upstream.

Add USB ID for SITECOM WLA-1000 V1 001 WLAN

Reported-and-tested-by: Roland Gruber &lt;post@rolandgruber.de&gt;
Reported-and-tested-by: Dario Lucia &lt;dario.lucia@gmail.com&gt;
Signed-off-by: Larry Finger &lt;Larry.Finger@lwfinger.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 1793bf1deddc8ce25dc41925d5dbe64536c841b6 upstream.

Add USB ID for SITECOM WLA-1000 V1 001 WLAN

Reported-and-tested-by: Roland Gruber &lt;post@rolandgruber.de&gt;
Reported-and-tested-by: Dario Lucia &lt;dario.lucia@gmail.com&gt;
Signed-off-by: Larry Finger &lt;Larry.Finger@lwfinger.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>Staging: asus_oled: fix NULL-ptr crash on unloading</title>
<updated>2012-02-13T19:17:02+00:00</updated>
<author>
<name>Pekka Paalanen</name>
<email>pq@iki.fi</email>
</author>
<published>2012-01-22T14:33:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=ebb468b38e343782b3271343766d92978f8436a7'/>
<id>ebb468b38e343782b3271343766d92978f8436a7</id>
<content type='text'>
commit 3589e74595a4332ebf77b5ed006f3c6686071ecd upstream.

Asus_oled triggers the following bug on module unloading:

 usbcore: deregistering interface driver asus-oled
 BUG: unable to handle kernel NULL pointer dereference at 0000000000000038
 IP: [&lt;ffffffff8111292b&gt;] sysfs_delete_link+0x30/0x66

 Call Trace:
  [&lt;ffffffff81225373&gt;] device_remove_class_symlinks+0x6b/0x70
  [&lt;ffffffff812256a8&gt;] device_del+0x9f/0x1ab
  [&lt;ffffffff812257c5&gt;] device_unregister+0x11/0x1e
  [&lt;ffffffffa000cb82&gt;] asus_oled_disconnect+0x4f/0x9e [asus_oled]
  [&lt;ffffffff81277430&gt;] usb_unbind_interface+0x54/0x103
  [&lt;ffffffff812276c4&gt;] __device_release_driver+0xa2/0xeb
  [&lt;ffffffff81227794&gt;] driver_detach+0x87/0xad
  [&lt;ffffffff812269e9&gt;] bus_remove_driver+0x91/0xc1
  [&lt;ffffffff81227fb4&gt;] driver_unregister+0x66/0x6e
  [&lt;ffffffff812771ed&gt;] usb_deregister+0xbb/0xc4
  [&lt;ffffffffa000ce87&gt;] asus_oled_exit+0x2f/0x31 [asus_oled]
  [&lt;ffffffff81068365&gt;] sys_delete_module+0x1b8/0x21b
  [&lt;ffffffff810ae3de&gt;] ? do_munmap+0x2ef/0x313
  [&lt;ffffffff813699bb&gt;] system_call_fastpath+0x16/0x1b

This is due to an incorrect destruction sequence in asus_oled_exit().

Fix the order, fixes the bug. Tested on an Asus G50V laptop only.

Cc: Jakub Schmidtke &lt;sjakub@gmail.com&gt;
Signed-off-by: Pekka Paalanen &lt;pq@iki.fi&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 3589e74595a4332ebf77b5ed006f3c6686071ecd upstream.

Asus_oled triggers the following bug on module unloading:

 usbcore: deregistering interface driver asus-oled
 BUG: unable to handle kernel NULL pointer dereference at 0000000000000038
 IP: [&lt;ffffffff8111292b&gt;] sysfs_delete_link+0x30/0x66

 Call Trace:
  [&lt;ffffffff81225373&gt;] device_remove_class_symlinks+0x6b/0x70
  [&lt;ffffffff812256a8&gt;] device_del+0x9f/0x1ab
  [&lt;ffffffff812257c5&gt;] device_unregister+0x11/0x1e
  [&lt;ffffffffa000cb82&gt;] asus_oled_disconnect+0x4f/0x9e [asus_oled]
  [&lt;ffffffff81277430&gt;] usb_unbind_interface+0x54/0x103
  [&lt;ffffffff812276c4&gt;] __device_release_driver+0xa2/0xeb
  [&lt;ffffffff81227794&gt;] driver_detach+0x87/0xad
  [&lt;ffffffff812269e9&gt;] bus_remove_driver+0x91/0xc1
  [&lt;ffffffff81227fb4&gt;] driver_unregister+0x66/0x6e
  [&lt;ffffffff812771ed&gt;] usb_deregister+0xbb/0xc4
  [&lt;ffffffffa000ce87&gt;] asus_oled_exit+0x2f/0x31 [asus_oled]
  [&lt;ffffffff81068365&gt;] sys_delete_module+0x1b8/0x21b
  [&lt;ffffffff810ae3de&gt;] ? do_munmap+0x2ef/0x313
  [&lt;ffffffff813699bb&gt;] system_call_fastpath+0x16/0x1b

This is due to an incorrect destruction sequence in asus_oled_exit().

Fix the order, fixes the bug. Tested on an Asus G50V laptop only.

Cc: Jakub Schmidtke &lt;sjakub@gmail.com&gt;
Signed-off-by: Pekka Paalanen &lt;pq@iki.fi&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>Staging: asus_oled: fix image processing</title>
<updated>2012-02-13T19:17:02+00:00</updated>
<author>
<name>Pekka Paalanen</name>
<email>pq@iki.fi</email>
</author>
<published>2012-01-22T14:33:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=d352f16e64cab162bb25e4f6af298f1a9d1d9e12'/>
<id>d352f16e64cab162bb25e4f6af298f1a9d1d9e12</id>
<content type='text'>
commit 635032cb397b396241372fa0ff36ae758e658b23 upstream.

Programming an image was broken, because odev-&gt;buf_offs was not advanced
for val == 0 in append_values(). This regression was introduced in:

 commit 1ff12a4aa354bed093a0240d5e6347b1e27601bc
 Author: Kevin A. Granade &lt;kevin.granade@gmail.com&gt;
 Date:   Sat Sep 5 01:03:39 2009 -0500

     Staging: asus_oled: Cleaned up checkpatch issues.

Fix the image processing by special-casing val == 0.

I have tested this change on an Asus G50V laptop only.

Cc: Jakub Schmidtke &lt;sjakub@gmail.com&gt;
Cc: Kevin A. Granade &lt;kevin.granade@gmail.com&gt;
Signed-off-by: Pekka Paalanen &lt;pq@iki.fi&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 635032cb397b396241372fa0ff36ae758e658b23 upstream.

Programming an image was broken, because odev-&gt;buf_offs was not advanced
for val == 0 in append_values(). This regression was introduced in:

 commit 1ff12a4aa354bed093a0240d5e6347b1e27601bc
 Author: Kevin A. Granade &lt;kevin.granade@gmail.com&gt;
 Date:   Sat Sep 5 01:03:39 2009 -0500

     Staging: asus_oled: Cleaned up checkpatch issues.

Fix the image processing by special-casing val == 0.

I have tested this change on an Asus G50V laptop only.

Cc: Jakub Schmidtke &lt;sjakub@gmail.com&gt;
Cc: Kevin A. Granade &lt;kevin.granade@gmail.com&gt;
Signed-off-by: Pekka Paalanen &lt;pq@iki.fi&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
</feed>
