<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/drivers/usb/class, branch v2.6.27.57</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>USB: fix oops in cdc-wdm in case of malformed descriptors</title>
<updated>2009-05-02T17:24:29+00:00</updated>
<author>
<name>Oliver Neukum</name>
<email>oliver@neukum.org</email>
</author>
<published>2009-04-17T21:20:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=42913f4b4783b67a5e9e7f15c56373d63449e463'/>
<id>42913f4b4783b67a5e9e7f15c56373d63449e463</id>
<content type='text'>
upstream commit: e13c594f3a1fc2c78e7a20d1a07974f71e4b448f

cdc-wdm needs to ignore extremely malformed descriptors.

Signed-off-by: Oliver Neukum &lt;oliver@neukum.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
Signed-off-by: Chris Wright &lt;chrisw@sous-sol.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
upstream commit: e13c594f3a1fc2c78e7a20d1a07974f71e4b448f

cdc-wdm needs to ignore extremely malformed descriptors.

Signed-off-by: Oliver Neukum &lt;oliver@neukum.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
Signed-off-by: Chris Wright &lt;chrisw@sous-sol.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>USB: cdc-acm: add usb id for motomagx phones</title>
<updated>2009-03-17T00:52:47+00:00</updated>
<author>
<name>Dmitriy Taychenachev</name>
<email>dimichxp@gmail.com</email>
</author>
<published>2009-02-25T04:36:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b61e99b179056c29db2c29c353b8243e4943b296'/>
<id>b61e99b179056c29db2c29c353b8243e4943b296</id>
<content type='text'>
commit 155df65ae11dfc322214c6f887185929c809df1b upstream.

The Motorola MOTOMAGX phones (Z6, E8, Zn5 so far) are providing
combined ACM/BLAN USB configuration. Since it has Vendor Specific
class, the corresponding drivers (cdc-acm, zaurus) can't find it just
by interface info. This patch adds usb id so the cdc-acm driver can
properly handle this combined device.

Signed-off-by: Dmitriy Taychenachev &lt;dimichxp@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

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

The Motorola MOTOMAGX phones (Z6, E8, Zn5 so far) are providing
combined ACM/BLAN USB configuration. Since it has Vendor Specific
class, the corresponding drivers (cdc-acm, zaurus) can't find it just
by interface info. This patch adds usb id so the cdc-acm driver can
properly handle this combined device.

Signed-off-by: Dmitriy Taychenachev &lt;dimichxp@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>USB: cdc-acm.c: fix recursive lock in acm_start_wb error path</title>
<updated>2008-11-20T22:54:52+00:00</updated>
<author>
<name>Brandon Philips</name>
<email>brandon@ifup.org</email>
</author>
<published>2008-11-06T19:19:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=3ab4c4da271c5628b1320d8ee2232db297c901b6'/>
<id>3ab4c4da271c5628b1320d8ee2232db297c901b6</id>
<content type='text'>
commit ad0b65efd12d020b046cde8d6f474e37bb98dd73 upstream.

Fixes an obvious bug in cdc-acm by avoiding a recursive lock on
acm_start_wb()'s error path. Should apply towards 2.6.27 stable and
2.6.28.

=============================================
[ INFO: possible recursive locking detected ]
2.6.27-2-pae #109
---------------------------------------------
python/31449 is trying to acquire lock:
 (&amp;acm-&gt;write_lock){++..}, at: [&lt;f89a0348&gt;] acm_start_wb+0x5c/0x7b [cdc_acm]

but task is already holding lock:
 (&amp;acm-&gt;write_lock){++..}, at: [&lt;f89a04fb&gt;] acm_tty_write+0xe1/0x167 [cdc_acm]

other info that might help us debug this:
2 locks held by python/31449:
 #0:  (&amp;tty-&gt;atomic_write_lock){--..}, at: [&lt;c0260fae&gt;] tty_write_lock+0x14/0x3b
 #1:  (&amp;acm-&gt;write_lock){++..}, at: [&lt;f89a04fb&gt;] acm_tty_write+0xe1/0x167 [cdc_acm]

stack backtrace:
Pid: 31449, comm: python Not tainted 2.6.27-2-pae #109
 [&lt;c030f42f&gt;] ? printk+0xf/0x18
 [&lt;c0149f33&gt;] __lock_acquire+0xc7b/0x1316
 [&lt;c014a63e&gt;] lock_acquire+0x70/0x97
 [&lt;f89a0348&gt;] ? acm_start_wb+0x5c/0x7b [cdc_acm]
 [&lt;c0312109&gt;] _spin_lock_irqsave+0x37/0x47
 [&lt;f89a0348&gt;] ? acm_start_wb+0x5c/0x7b [cdc_acm]
 [&lt;f89a0348&gt;] acm_start_wb+0x5c/0x7b [cdc_acm]
 [&lt;f89a055d&gt;] acm_tty_write+0x143/0x167 [cdc_acm]
 [&lt;c0262a98&gt;] write_chan+0x1cd/0x297
 [&lt;c012527e&gt;] ? default_wake_function+0x0/0xd
 [&lt;c026111e&gt;] tty_write+0x149/0x1b9
 [&lt;c02628cb&gt;] ? write_chan+0x0/0x297
 [&lt;c01912c5&gt;] ? rw_verify_area+0x76/0x98
 [&lt;c0260fd5&gt;] ? tty_write+0x0/0x1b9
 [&lt;c01919ba&gt;] vfs_write+0x8c/0x136
 [&lt;c0191afd&gt;] sys_write+0x3b/0x60
 [&lt;c0103beb&gt;] sysenter_do_call+0x12/0x3f
 =======================

Signed-off-by: Brandon Philips &lt;bphilips@suse.de&gt;
Cc: Oliver Neukum &lt;oliver@neukum.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

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

Fixes an obvious bug in cdc-acm by avoiding a recursive lock on
acm_start_wb()'s error path. Should apply towards 2.6.27 stable and
2.6.28.

=============================================
[ INFO: possible recursive locking detected ]
2.6.27-2-pae #109
---------------------------------------------
python/31449 is trying to acquire lock:
 (&amp;acm-&gt;write_lock){++..}, at: [&lt;f89a0348&gt;] acm_start_wb+0x5c/0x7b [cdc_acm]

but task is already holding lock:
 (&amp;acm-&gt;write_lock){++..}, at: [&lt;f89a04fb&gt;] acm_tty_write+0xe1/0x167 [cdc_acm]

other info that might help us debug this:
2 locks held by python/31449:
 #0:  (&amp;tty-&gt;atomic_write_lock){--..}, at: [&lt;c0260fae&gt;] tty_write_lock+0x14/0x3b
 #1:  (&amp;acm-&gt;write_lock){++..}, at: [&lt;f89a04fb&gt;] acm_tty_write+0xe1/0x167 [cdc_acm]

stack backtrace:
Pid: 31449, comm: python Not tainted 2.6.27-2-pae #109
 [&lt;c030f42f&gt;] ? printk+0xf/0x18
 [&lt;c0149f33&gt;] __lock_acquire+0xc7b/0x1316
 [&lt;c014a63e&gt;] lock_acquire+0x70/0x97
 [&lt;f89a0348&gt;] ? acm_start_wb+0x5c/0x7b [cdc_acm]
 [&lt;c0312109&gt;] _spin_lock_irqsave+0x37/0x47
 [&lt;f89a0348&gt;] ? acm_start_wb+0x5c/0x7b [cdc_acm]
 [&lt;f89a0348&gt;] acm_start_wb+0x5c/0x7b [cdc_acm]
 [&lt;f89a055d&gt;] acm_tty_write+0x143/0x167 [cdc_acm]
 [&lt;c0262a98&gt;] write_chan+0x1cd/0x297
 [&lt;c012527e&gt;] ? default_wake_function+0x0/0xd
 [&lt;c026111e&gt;] tty_write+0x149/0x1b9
 [&lt;c02628cb&gt;] ? write_chan+0x0/0x297
 [&lt;c01912c5&gt;] ? rw_verify_area+0x76/0x98
 [&lt;c0260fd5&gt;] ? tty_write+0x0/0x1b9
 [&lt;c01919ba&gt;] vfs_write+0x8c/0x136
 [&lt;c0191afd&gt;] sys_write+0x3b/0x60
 [&lt;c0103beb&gt;] sysenter_do_call+0x12/0x3f
 =======================

Signed-off-by: Brandon Philips &lt;bphilips@suse.de&gt;
Cc: Oliver Neukum &lt;oliver@neukum.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>USB: fix memory leak in cdc-acm</title>
<updated>2008-10-25T21:32:38+00:00</updated>
<author>
<name>Oliver Neukum</name>
<email>oliver@neukum.org</email>
</author>
<published>2008-10-23T17:35:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=837de9e1d92bb73408088f7b5849715d90925fee'/>
<id>837de9e1d92bb73408088f7b5849715d90925fee</id>
<content type='text'>
commit a496c64f1363ec4d67ebdc1e1f619ad6372a574c upstream

This fixes a memory leak on disconnect in cdc-acm

Thanks to 施金前 for finding it.

Signed-off-by: Oliver Neukum &lt;oneukum@suse.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

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

This fixes a memory leak on disconnect in cdc-acm

Thanks to 施金前 for finding it.

Signed-off-by: Oliver Neukum &lt;oneukum@suse.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>USB: cdc-wdm: make module autoload work</title>
<updated>2008-10-25T21:32:37+00:00</updated>
<author>
<name>Oliver Neukum</name>
<email>oliver@neukum.org</email>
</author>
<published>2008-10-23T17:35:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=8cece7795b1c359787261a150ac502b250c6699f'/>
<id>8cece7795b1c359787261a150ac502b250c6699f</id>
<content type='text'>
commit aa5380b904e7f896db0931320160bdea93e41f6a upstream

this fixes an omission that led to no alias being computed for the
cdc-wdm module.

Signed-off-by: Oliver Neukum &lt;oneukum@suse.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

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

this fixes an omission that led to no alias being computed for the
cdc-wdm module.

Signed-off-by: Oliver Neukum &lt;oneukum@suse.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>USB: cdc-acm: don't unlock acm-&gt;mutex on error path</title>
<updated>2008-08-21T17:26:35+00:00</updated>
<author>
<name>Alexey Dobriyan</name>
<email>adobriyan@gmail.com</email>
</author>
<published>2008-08-20T23:56:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=74573ee7096a4ffc2f098108d21c85801b9c7434'/>
<id>74573ee7096a4ffc2f098108d21c85801b9c7434</id>
<content type='text'>
On Wed, Jul 23, 2008 at 03:52:36PM +0300, Andrei Popa wrote:
&gt; I installed gnokii-0.6.22-r2 and gave the command "gnokii --identify"
&gt; and the kernel oopsed:
&gt;
&gt; BUG: unable to handle kernel NULL pointer dereference at 00000458
&gt; IP: [&lt;c0444b52&gt;] mutex_unlock+0x0/0xb
&gt;  [&lt;c03830ae&gt;] acm_tty_open+0x4c/0x214

Signed-off-by: Alexey Dobriyan &lt;adobriyan@gmail.com&gt;
Tested-by: Andrei Popa &lt;andrei.popa@i-neo.ro&gt;
Cc: stable &lt;stable@kernel.org&gt;		[2.6.25.x, 2.6.26.x]
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
On Wed, Jul 23, 2008 at 03:52:36PM +0300, Andrei Popa wrote:
&gt; I installed gnokii-0.6.22-r2 and gave the command "gnokii --identify"
&gt; and the kernel oopsed:
&gt;
&gt; BUG: unable to handle kernel NULL pointer dereference at 00000458
&gt; IP: [&lt;c0444b52&gt;] mutex_unlock+0x0/0xb
&gt;  [&lt;c03830ae&gt;] acm_tty_open+0x4c/0x214

Signed-off-by: Alexey Dobriyan &lt;adobriyan@gmail.com&gt;
Tested-by: Andrei Popa &lt;andrei.popa@i-neo.ro&gt;
Cc: stable &lt;stable@kernel.org&gt;		[2.6.25.x, 2.6.26.x]
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>USB: cdc-acm: quirk for Conexant CX93010 USB modem</title>
<updated>2008-08-21T17:26:33+00:00</updated>
<author>
<name>Eric Sandeen</name>
<email>sandeen@sandeen.net</email>
</author>
<published>2008-08-14T13:25:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c8fd2c37b99c55c8d24888e0ed9d5f4f73458c9c'/>
<id>c8fd2c37b99c55c8d24888e0ed9d5f4f73458c9c</id>
<content type='text'>
This patch gets my Rosewill RNX-56USB USB modem (with Conexant CX93010
chipset) up and running to the point where I can send AT commands and
retrieve caller ID data, which is all I want to do with it.

Signed-off-by: Eric Sandeen &lt;sandeen@sandeen.net&gt;
Acked-by: Oliver Neukum &lt;oneukum@suse.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch gets my Rosewill RNX-56USB USB modem (with Conexant CX93010
chipset) up and running to the point where I can send AT commands and
retrieve caller ID data, which is all I want to do with it.

Signed-off-by: Eric Sandeen &lt;sandeen@sandeen.net&gt;
Acked-by: Oliver Neukum &lt;oneukum@suse.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>usb: cdc-acm: drain writes on close</title>
<updated>2008-08-14T00:32:57+00:00</updated>
<author>
<name>David Brownell</name>
<email>dbrownell@users.sourceforge.net</email>
</author>
<published>2008-08-07T01:46:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=e5fbab51b4219fbd1dab28666affe38a920b5f7e'/>
<id>e5fbab51b4219fbd1dab28666affe38a920b5f7e</id>
<content type='text'>
Add a mechanism to let the write queue drain naturally before
closing the TTY, rather than always losing that data.  There
is a timeout, so it can't wait too long.

Provide missing locking inside acm_wb_is_avail(); it matters
more now.  Note, this presumes an earlier patch was applied,
removing a call to this routine where the lock was held.

Slightly improved diagnostics on write URB completion, so we
can tell when a write URB gets killed and, if so, how much
data it wrote first ... and so that I/O path is normally
silent (and can't much change timings).

Signed-off-by: David Brownell &lt;dbrownell@users.sourceforge.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add a mechanism to let the write queue drain naturally before
closing the TTY, rather than always losing that data.  There
is a timeout, so it can't wait too long.

Provide missing locking inside acm_wb_is_avail(); it matters
more now.  Note, this presumes an earlier patch was applied,
removing a call to this routine where the lock was held.

Slightly improved diagnostics on write URB completion, so we
can tell when a write URB gets killed and, if so, how much
data it wrote first ... and so that I/O path is normally
silent (and can't much change timings).

Signed-off-by: David Brownell &lt;dbrownell@users.sourceforge.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>usb: cdc-acm: stop dropping tx buffers</title>
<updated>2008-08-14T00:32:57+00:00</updated>
<author>
<name>David Brownell</name>
<email>dbrownell@users.sourceforge.net</email>
</author>
<published>2008-08-07T01:44:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=934da4635c2d05cef474e5243ef05df95b2ad264'/>
<id>934da4635c2d05cef474e5243ef05df95b2ad264</id>
<content type='text'>
The "increase cdc-acm write throughput" patch left in place two
now-obsolete mechanisms, either of which can make the cdc-acm
driver drop TX data (nasty!).  This patch removes them:

  - The write_ready flag ... if an URB and buffer were found,
    they can (and should!) always be used.

  - TX path acm_wb_is_used() ... used when the buffer was just
    allocated, so that check is pointless.

Also fix a won't-yet-matter leak of a write buffer on a disconnect path.

Signed-off-by: David Brownell &lt;dbrownell@users.sourceforge.net&gt;
Cc:  David Engraf &lt;david.engraf@netcom.eu&gt;
Acked-by: Oliver Neukum &lt;oneukum@suse.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The "increase cdc-acm write throughput" patch left in place two
now-obsolete mechanisms, either of which can make the cdc-acm
driver drop TX data (nasty!).  This patch removes them:

  - The write_ready flag ... if an URB and buffer were found,
    they can (and should!) always be used.

  - TX path acm_wb_is_used() ... used when the buffer was just
    allocated, so that check is pointless.

Also fix a won't-yet-matter leak of a write buffer on a disconnect path.

Signed-off-by: David Brownell &lt;dbrownell@users.sourceforge.net&gt;
Cc:  David Engraf &lt;david.engraf@netcom.eu&gt;
Acked-by: Oliver Neukum &lt;oneukum@suse.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>usb: cdc-acm: bugfix release()</title>
<updated>2008-08-14T00:32:57+00:00</updated>
<author>
<name>David Brownell</name>
<email>dbrownell@users.sourceforge.net</email>
</author>
<published>2008-08-07T01:41:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=672c4e1843c54227ff1bdf1fdd96f9c45c56aa85'/>
<id>672c4e1843c54227ff1bdf1fdd96f9c45c56aa85</id>
<content type='text'>
Bugfixes to the usb_driver_release_interface() usage;

  (a) make sure releasing *either* interface first will release
      the other, instead of insisting it be the control interface;

  (b) remove the recently-added self-deadlock.

(The "fix disconnect bug in cdc-acm" patch was incomplete and incorrect.)

Plus a small "sparse" fix:  rename a local variable so it doesn't
shadow a function parameter.

Signed-off-by: David Brownell &lt;dbrownell@users.sourceforge.net&gt;
Acked-by: Oliver Neukum &lt;oneukum@suse.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Bugfixes to the usb_driver_release_interface() usage;

  (a) make sure releasing *either* interface first will release
      the other, instead of insisting it be the control interface;

  (b) remove the recently-added self-deadlock.

(The "fix disconnect bug in cdc-acm" patch was incomplete and incorrect.)

Plus a small "sparse" fix:  rename a local variable so it doesn't
shadow a function parameter.

Signed-off-by: David Brownell &lt;dbrownell@users.sourceforge.net&gt;
Acked-by: Oliver Neukum &lt;oneukum@suse.de&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

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