<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers/usb/serial, branch linux-2.6.34.y</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>USB: serial: fix race between probe and open</title>
<updated>2014-02-10T21:11:23+00:00</updated>
<author>
<name>Johan Hovold</name>
<email>jhovold@gmail.com</email>
</author>
<published>2012-03-20T15:59:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=93206d0617751590deab8fd4615280117fea8cc5'/>
<id>93206d0617751590deab8fd4615280117fea8cc5</id>
<content type='text'>
commit a65a6f14dc24a90bde3f5d0073ba2364476200bf upstream.

Fix race between probe and open by making sure that the disconnected
flag is not cleared until all ports have been registered.

A call to tty_open while probe is running may get a reference to the
serial structure in serial_install before its ports have been
registered. This may lead to usb_serial_core calling driver open before
port is fully initialised.

With ftdi_sio this result in the following NULL-pointer dereference as
the private data has not been initialised at open:

[  199.698286] IP: [&lt;f811a089&gt;] ftdi_open+0x59/0xe0 [ftdi_sio]
[  199.698297] *pde = 00000000
[  199.698303] Oops: 0000 [#1] PREEMPT SMP
[  199.698313] Modules linked in: ftdi_sio usbserial
[  199.698323]
[  199.698327] Pid: 1146, comm: ftdi_open Not tainted 3.2.11 #70 Dell Inc. Vostro 1520/0T816J
[  199.698339] EIP: 0060:[&lt;f811a089&gt;] EFLAGS: 00010286 CPU: 0
[  199.698344] EIP is at ftdi_open+0x59/0xe0 [ftdi_sio]
[  199.698348] EAX: 0000003e EBX: f5067000 ECX: 00000000 EDX: 80000600
[  199.698352] ESI: f48d8800 EDI: 00000001 EBP: f515dd54 ESP: f515dcfc
[  199.698356]  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
[  199.698361] Process ftdi_open (pid: 1146, ti=f515c000 task=f481e040 task.ti=f515c000)
[  199.698364] Stack:
[  199.698368]  f811a9fe f811a9e0 f811b3ef 00000000 00000000 00001388 00000000 f4a86800
[  199.698387]  00000002 00000000 f806e68e 00000000 f532765c f481e040 00000246 22222222
[  199.698479]  22222222 22222222 22222222 f5067004 f5327600 f5327638 f515dd74 f806e6ab
[  199.698496] Call Trace:
[  199.698504]  [&lt;f806e68e&gt;] ? serial_activate+0x2e/0x70 [usbserial]
[  199.698511]  [&lt;f806e6ab&gt;] serial_activate+0x4b/0x70 [usbserial]
[  199.698521]  [&lt;c126380c&gt;] tty_port_open+0x7c/0xd0
[  199.698527]  [&lt;f806e660&gt;] ? serial_set_termios+0xa0/0xa0 [usbserial]
[  199.698534]  [&lt;f806e76f&gt;] serial_open+0x2f/0x70 [usbserial]
[  199.698540]  [&lt;c125d07c&gt;] tty_open+0x20c/0x510
[  199.698546]  [&lt;c10e9eb7&gt;] chrdev_open+0xe7/0x230
[  199.698553]  [&lt;c10e48f2&gt;] __dentry_open+0x1f2/0x390
[  199.698559]  [&lt;c144bfec&gt;] ? _raw_spin_unlock+0x2c/0x50
[  199.698565]  [&lt;c10e4b76&gt;] nameidata_to_filp+0x66/0x80
[  199.698570]  [&lt;c10e9dd0&gt;] ? cdev_put+0x20/0x20
[  199.698576]  [&lt;c10f3e08&gt;] do_last+0x198/0x730
[  199.698581]  [&lt;c10f4440&gt;] path_openat+0xa0/0x350
[  199.698587]  [&lt;c10f47d5&gt;] do_filp_open+0x35/0x80
[  199.698593]  [&lt;c144bfec&gt;] ? _raw_spin_unlock+0x2c/0x50
[  199.698599]  [&lt;c10ff110&gt;] ? alloc_fd+0xc0/0x100
[  199.698605]  [&lt;c10f0b72&gt;] ? getname_flags+0x72/0x120
[  199.698611]  [&lt;c10e4450&gt;] do_sys_open+0xf0/0x1c0
[  199.698617]  [&lt;c11fcc08&gt;] ? trace_hardirqs_on_thunk+0xc/0x10
[  199.698623]  [&lt;c10e458e&gt;] sys_open+0x2e/0x40
[  199.698628]  [&lt;c144c990&gt;] sysenter_do_call+0x12/0x36
[  199.698632] Code: 85 89 00 00 00 8b 16 8b 4d c0 c1 e2 08 c7 44 24 14 88 13 00 00 81 ca 00 00 00 80 c7 44 24 10 00 00 00 00 c7 44 24 0c 00 00 00 00 &lt;0f&gt; b7 41 78 31 c9 89 44 24 08 c7 44 24 04 00 00 00 00 c7 04 24
[  199.698884] EIP: [&lt;f811a089&gt;] ftdi_open+0x59/0xe0 [ftdi_sio] SS:ESP 0068:f515dcfc
[  199.698893] CR2: 0000000000000078
[  199.698925] ---[ end trace 77c43ec023940cff ]---

Reported-and-tested-by: Ken Huang &lt;csuhgw@gmail.com&gt;
Signed-off-by: Johan Hovold &lt;jhovold@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit a65a6f14dc24a90bde3f5d0073ba2364476200bf upstream.

Fix race between probe and open by making sure that the disconnected
flag is not cleared until all ports have been registered.

A call to tty_open while probe is running may get a reference to the
serial structure in serial_install before its ports have been
registered. This may lead to usb_serial_core calling driver open before
port is fully initialised.

With ftdi_sio this result in the following NULL-pointer dereference as
the private data has not been initialised at open:

[  199.698286] IP: [&lt;f811a089&gt;] ftdi_open+0x59/0xe0 [ftdi_sio]
[  199.698297] *pde = 00000000
[  199.698303] Oops: 0000 [#1] PREEMPT SMP
[  199.698313] Modules linked in: ftdi_sio usbserial
[  199.698323]
[  199.698327] Pid: 1146, comm: ftdi_open Not tainted 3.2.11 #70 Dell Inc. Vostro 1520/0T816J
[  199.698339] EIP: 0060:[&lt;f811a089&gt;] EFLAGS: 00010286 CPU: 0
[  199.698344] EIP is at ftdi_open+0x59/0xe0 [ftdi_sio]
[  199.698348] EAX: 0000003e EBX: f5067000 ECX: 00000000 EDX: 80000600
[  199.698352] ESI: f48d8800 EDI: 00000001 EBP: f515dd54 ESP: f515dcfc
[  199.698356]  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
[  199.698361] Process ftdi_open (pid: 1146, ti=f515c000 task=f481e040 task.ti=f515c000)
[  199.698364] Stack:
[  199.698368]  f811a9fe f811a9e0 f811b3ef 00000000 00000000 00001388 00000000 f4a86800
[  199.698387]  00000002 00000000 f806e68e 00000000 f532765c f481e040 00000246 22222222
[  199.698479]  22222222 22222222 22222222 f5067004 f5327600 f5327638 f515dd74 f806e6ab
[  199.698496] Call Trace:
[  199.698504]  [&lt;f806e68e&gt;] ? serial_activate+0x2e/0x70 [usbserial]
[  199.698511]  [&lt;f806e6ab&gt;] serial_activate+0x4b/0x70 [usbserial]
[  199.698521]  [&lt;c126380c&gt;] tty_port_open+0x7c/0xd0
[  199.698527]  [&lt;f806e660&gt;] ? serial_set_termios+0xa0/0xa0 [usbserial]
[  199.698534]  [&lt;f806e76f&gt;] serial_open+0x2f/0x70 [usbserial]
[  199.698540]  [&lt;c125d07c&gt;] tty_open+0x20c/0x510
[  199.698546]  [&lt;c10e9eb7&gt;] chrdev_open+0xe7/0x230
[  199.698553]  [&lt;c10e48f2&gt;] __dentry_open+0x1f2/0x390
[  199.698559]  [&lt;c144bfec&gt;] ? _raw_spin_unlock+0x2c/0x50
[  199.698565]  [&lt;c10e4b76&gt;] nameidata_to_filp+0x66/0x80
[  199.698570]  [&lt;c10e9dd0&gt;] ? cdev_put+0x20/0x20
[  199.698576]  [&lt;c10f3e08&gt;] do_last+0x198/0x730
[  199.698581]  [&lt;c10f4440&gt;] path_openat+0xa0/0x350
[  199.698587]  [&lt;c10f47d5&gt;] do_filp_open+0x35/0x80
[  199.698593]  [&lt;c144bfec&gt;] ? _raw_spin_unlock+0x2c/0x50
[  199.698599]  [&lt;c10ff110&gt;] ? alloc_fd+0xc0/0x100
[  199.698605]  [&lt;c10f0b72&gt;] ? getname_flags+0x72/0x120
[  199.698611]  [&lt;c10e4450&gt;] do_sys_open+0xf0/0x1c0
[  199.698617]  [&lt;c11fcc08&gt;] ? trace_hardirqs_on_thunk+0xc/0x10
[  199.698623]  [&lt;c10e458e&gt;] sys_open+0x2e/0x40
[  199.698628]  [&lt;c144c990&gt;] sysenter_do_call+0x12/0x36
[  199.698632] Code: 85 89 00 00 00 8b 16 8b 4d c0 c1 e2 08 c7 44 24 14 88 13 00 00 81 ca 00 00 00 80 c7 44 24 10 00 00 00 00 c7 44 24 0c 00 00 00 00 &lt;0f&gt; b7 41 78 31 c9 89 44 24 08 c7 44 24 04 00 00 00 00 c7 04 24
[  199.698884] EIP: [&lt;f811a089&gt;] ftdi_open+0x59/0xe0 [ftdi_sio] SS:ESP 0068:f515dcfc
[  199.698893] CR2: 0000000000000078
[  199.698925] ---[ end trace 77c43ec023940cff ]---

Reported-and-tested-by: Ken Huang &lt;csuhgw@gmail.com&gt;
Signed-off-by: Johan Hovold &lt;jhovold@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>usb: serial: mos7840: Fixup mos7840_chars_in_buffer()</title>
<updated>2014-02-10T21:11:22+00:00</updated>
<author>
<name>Mark Ferrell</name>
<email>mferrell@uplogix.com</email>
</author>
<published>2012-07-24T19:15:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=d3eeb6997e5fa986cf4606f4ddb30140e3331be5'/>
<id>d3eeb6997e5fa986cf4606f4ddb30140e3331be5</id>
<content type='text'>
commit 5c263b92f828af6a8cf54041db45ceae5af8f2ab upstream.

 * Use the buffer content length as opposed to the total buffer size.  This can
   be a real problem when using the mos7840 as a usb serial-console as all
   kernel output is truncated during boot.

Signed-off-by: Mark Ferrell &lt;mferrell@uplogix.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 5c263b92f828af6a8cf54041db45ceae5af8f2ab upstream.

 * Use the buffer content length as opposed to the total buffer size.  This can
   be a real problem when using the mos7840 as a usb serial-console as all
   kernel output is truncated during boot.

Signed-off-by: Mark Ferrell &lt;mferrell@uplogix.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>USB: serial: ftdi_sio: Handle the old_termios == 0 case e.g. uart_resume_port()</title>
<updated>2014-02-10T21:11:22+00:00</updated>
<author>
<name>Andrew Worsley</name>
<email>amworsley@gmail.com</email>
</author>
<published>2011-11-22T09:00:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=8c59f0a9b89d27df04c174f589a0e85043fea642'/>
<id>8c59f0a9b89d27df04c174f589a0e85043fea642</id>
<content type='text'>
commit c515598e0f5769916c31c00392cc2bfe6af74e55 upstream.

  Handle null old_termios in ftdi_set_termios() calls from uart_resume_port().

Signed-off-by: Andrew Worsley &lt;amworsley@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit c515598e0f5769916c31c00392cc2bfe6af74e55 upstream.

  Handle null old_termios in ftdi_set_termios() calls from uart_resume_port().

Signed-off-by: Andrew Worsley &lt;amworsley@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>USB: io_ti: Fix NULL dereference in chase_port()</title>
<updated>2014-02-10T21:11:21+00:00</updated>
<author>
<name>Wolfgang Frisch</name>
<email>wfpub@roembden.net</email>
</author>
<published>2013-01-17T00:07:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=d04eaae1d63ba7f89d54ea80df8f79ecba14ea53'/>
<id>d04eaae1d63ba7f89d54ea80df8f79ecba14ea53</id>
<content type='text'>
commit 1ee0a224bc9aad1de496c795f96bc6ba2c394811 upstream.

The tty is NULL when the port is hanging up.
chase_port() needs to check for this.

This patch is intended for stable series.
The behavior was observed and tested in Linux 3.2 and 3.7.1.

Johan Hovold submitted a more elaborate patch for the mainline kernel.

[   56.277883] usb 1-1: edge_bulk_in_callback - nonzero read bulk status received: -84
[   56.278811] usb 1-1: USB disconnect, device number 3
[   56.278856] usb 1-1: edge_bulk_in_callback - stopping read!
[   56.279562] BUG: unable to handle kernel NULL pointer dereference at 00000000000001c8
[   56.280536] IP: [&lt;ffffffff8144e62a&gt;] _raw_spin_lock_irqsave+0x19/0x35
[   56.281212] PGD 1dc1b067 PUD 1e0f7067 PMD 0
[   56.282085] Oops: 0002 [#1] SMP
[   56.282744] Modules linked in:
[   56.283512] CPU 1
[   56.283512] Pid: 25, comm: khubd Not tainted 3.7.1 #1 innotek GmbH VirtualBox/VirtualBox
[   56.283512] RIP: 0010:[&lt;ffffffff8144e62a&gt;]  [&lt;ffffffff8144e62a&gt;] _raw_spin_lock_irqsave+0x19/0x35
[   56.283512] RSP: 0018:ffff88001fa99ab0  EFLAGS: 00010046
[   56.283512] RAX: 0000000000000046 RBX: 00000000000001c8 RCX: 0000000000640064
[   56.283512] RDX: 0000000000010000 RSI: ffff88001fa99b20 RDI: 00000000000001c8
[   56.283512] RBP: ffff88001fa99b20 R08: 0000000000000000 R09: 0000000000000000
[   56.283512] R10: 0000000000000000 R11: ffffffff812fcb4c R12: ffff88001ddf53c0
[   56.283512] R13: 0000000000000000 R14: 00000000000001c8 R15: ffff88001e19b9f4
[   56.283512] FS:  0000000000000000(0000) GS:ffff88001fd00000(0000) knlGS:0000000000000000
[   56.283512] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[   56.283512] CR2: 00000000000001c8 CR3: 000000001dc51000 CR4: 00000000000006e0
[   56.283512] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[   56.283512] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[   56.283512] Process khubd (pid: 25, threadinfo ffff88001fa98000, task ffff88001fa94f80)
[   56.283512] Stack:
[   56.283512]  0000000000000046 00000000000001c8 ffffffff810578ec ffffffff812fcb4c
[   56.283512]  ffff88001e19b980 0000000000002710 ffffffff812ffe81 0000000000000001
[   56.283512]  ffff88001fa94f80 0000000000000202 ffffffff00000001 0000000000000296
[   56.283512] Call Trace:
[   56.283512]  [&lt;ffffffff810578ec&gt;] ? add_wait_queue+0x12/0x3c
[   56.283512]  [&lt;ffffffff812fcb4c&gt;] ? usb_serial_port_work+0x28/0x28
[   56.283512]  [&lt;ffffffff812ffe81&gt;] ? chase_port+0x84/0x2d6
[   56.283512]  [&lt;ffffffff81063f27&gt;] ? try_to_wake_up+0x199/0x199
[   56.283512]  [&lt;ffffffff81263a5c&gt;] ? tty_ldisc_hangup+0x222/0x298
[   56.283512]  [&lt;ffffffff81300171&gt;] ? edge_close+0x64/0x129
[   56.283512]  [&lt;ffffffff810612f7&gt;] ? __wake_up+0x35/0x46
[   56.283512]  [&lt;ffffffff8106135b&gt;] ? should_resched+0x5/0x23
[   56.283512]  [&lt;ffffffff81264916&gt;] ? tty_port_shutdown+0x39/0x44
[   56.283512]  [&lt;ffffffff812fcb4c&gt;] ? usb_serial_port_work+0x28/0x28
[   56.283512]  [&lt;ffffffff8125d38c&gt;] ? __tty_hangup+0x307/0x351
[   56.283512]  [&lt;ffffffff812e6ddc&gt;] ? usb_hcd_flush_endpoint+0xde/0xed
[   56.283512]  [&lt;ffffffff8144e625&gt;] ? _raw_spin_lock_irqsave+0x14/0x35
[   56.283512]  [&lt;ffffffff812fd361&gt;] ? usb_serial_disconnect+0x57/0xc2
[   56.283512]  [&lt;ffffffff812ea99b&gt;] ? usb_unbind_interface+0x5c/0x131
[   56.283512]  [&lt;ffffffff8128d738&gt;] ? __device_release_driver+0x7f/0xd5
[   56.283512]  [&lt;ffffffff8128d9cd&gt;] ? device_release_driver+0x1a/0x25
[   56.283512]  [&lt;ffffffff8128d393&gt;] ? bus_remove_device+0xd2/0xe7
[   56.283512]  [&lt;ffffffff8128b7a3&gt;] ? device_del+0x119/0x167
[   56.283512]  [&lt;ffffffff812e8d9d&gt;] ? usb_disable_device+0x6a/0x180
[   56.283512]  [&lt;ffffffff812e2ae0&gt;] ? usb_disconnect+0x81/0xe6
[   56.283512]  [&lt;ffffffff812e4435&gt;] ? hub_thread+0x577/0xe82
[   56.283512]  [&lt;ffffffff8144daa7&gt;] ? __schedule+0x490/0x4be
[   56.283512]  [&lt;ffffffff8105798f&gt;] ? abort_exclusive_wait+0x79/0x79
[   56.283512]  [&lt;ffffffff812e3ebe&gt;] ? usb_remote_wakeup+0x2f/0x2f
[   56.283512]  [&lt;ffffffff812e3ebe&gt;] ? usb_remote_wakeup+0x2f/0x2f
[   56.283512]  [&lt;ffffffff810570b4&gt;] ? kthread+0x81/0x89
[   56.283512]  [&lt;ffffffff81057033&gt;] ? __kthread_parkme+0x5c/0x5c
[   56.283512]  [&lt;ffffffff8145387c&gt;] ? ret_from_fork+0x7c/0xb0
[   56.283512]  [&lt;ffffffff81057033&gt;] ? __kthread_parkme+0x5c/0x5c
[   56.283512] Code: 8b 7c 24 08 e8 17 0b c3 ff 48 8b 04 24 48 83 c4 10 c3 53 48 89 fb 41 50 e8 e0 0a c3 ff 48 89 04 24 e8 e7 0a c3 ff ba 00 00 01 00
&lt;f0&gt; 0f c1 13 48 8b 04 24 89 d1 c1 ea 10 66 39 d1 74 07 f3 90 66
[   56.283512] RIP  [&lt;ffffffff8144e62a&gt;] _raw_spin_lock_irqsave+0x19/0x35
[   56.283512]  RSP &lt;ffff88001fa99ab0&gt;
[   56.283512] CR2: 00000000000001c8
[   56.283512] ---[ end trace 49714df27e1679ce ]---

Signed-off-by: Wolfgang Frisch &lt;wfpub@roembden.net&gt;
Cc: Johan Hovold &lt;jhovold@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 1ee0a224bc9aad1de496c795f96bc6ba2c394811 upstream.

The tty is NULL when the port is hanging up.
chase_port() needs to check for this.

This patch is intended for stable series.
The behavior was observed and tested in Linux 3.2 and 3.7.1.

Johan Hovold submitted a more elaborate patch for the mainline kernel.

[   56.277883] usb 1-1: edge_bulk_in_callback - nonzero read bulk status received: -84
[   56.278811] usb 1-1: USB disconnect, device number 3
[   56.278856] usb 1-1: edge_bulk_in_callback - stopping read!
[   56.279562] BUG: unable to handle kernel NULL pointer dereference at 00000000000001c8
[   56.280536] IP: [&lt;ffffffff8144e62a&gt;] _raw_spin_lock_irqsave+0x19/0x35
[   56.281212] PGD 1dc1b067 PUD 1e0f7067 PMD 0
[   56.282085] Oops: 0002 [#1] SMP
[   56.282744] Modules linked in:
[   56.283512] CPU 1
[   56.283512] Pid: 25, comm: khubd Not tainted 3.7.1 #1 innotek GmbH VirtualBox/VirtualBox
[   56.283512] RIP: 0010:[&lt;ffffffff8144e62a&gt;]  [&lt;ffffffff8144e62a&gt;] _raw_spin_lock_irqsave+0x19/0x35
[   56.283512] RSP: 0018:ffff88001fa99ab0  EFLAGS: 00010046
[   56.283512] RAX: 0000000000000046 RBX: 00000000000001c8 RCX: 0000000000640064
[   56.283512] RDX: 0000000000010000 RSI: ffff88001fa99b20 RDI: 00000000000001c8
[   56.283512] RBP: ffff88001fa99b20 R08: 0000000000000000 R09: 0000000000000000
[   56.283512] R10: 0000000000000000 R11: ffffffff812fcb4c R12: ffff88001ddf53c0
[   56.283512] R13: 0000000000000000 R14: 00000000000001c8 R15: ffff88001e19b9f4
[   56.283512] FS:  0000000000000000(0000) GS:ffff88001fd00000(0000) knlGS:0000000000000000
[   56.283512] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[   56.283512] CR2: 00000000000001c8 CR3: 000000001dc51000 CR4: 00000000000006e0
[   56.283512] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[   56.283512] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[   56.283512] Process khubd (pid: 25, threadinfo ffff88001fa98000, task ffff88001fa94f80)
[   56.283512] Stack:
[   56.283512]  0000000000000046 00000000000001c8 ffffffff810578ec ffffffff812fcb4c
[   56.283512]  ffff88001e19b980 0000000000002710 ffffffff812ffe81 0000000000000001
[   56.283512]  ffff88001fa94f80 0000000000000202 ffffffff00000001 0000000000000296
[   56.283512] Call Trace:
[   56.283512]  [&lt;ffffffff810578ec&gt;] ? add_wait_queue+0x12/0x3c
[   56.283512]  [&lt;ffffffff812fcb4c&gt;] ? usb_serial_port_work+0x28/0x28
[   56.283512]  [&lt;ffffffff812ffe81&gt;] ? chase_port+0x84/0x2d6
[   56.283512]  [&lt;ffffffff81063f27&gt;] ? try_to_wake_up+0x199/0x199
[   56.283512]  [&lt;ffffffff81263a5c&gt;] ? tty_ldisc_hangup+0x222/0x298
[   56.283512]  [&lt;ffffffff81300171&gt;] ? edge_close+0x64/0x129
[   56.283512]  [&lt;ffffffff810612f7&gt;] ? __wake_up+0x35/0x46
[   56.283512]  [&lt;ffffffff8106135b&gt;] ? should_resched+0x5/0x23
[   56.283512]  [&lt;ffffffff81264916&gt;] ? tty_port_shutdown+0x39/0x44
[   56.283512]  [&lt;ffffffff812fcb4c&gt;] ? usb_serial_port_work+0x28/0x28
[   56.283512]  [&lt;ffffffff8125d38c&gt;] ? __tty_hangup+0x307/0x351
[   56.283512]  [&lt;ffffffff812e6ddc&gt;] ? usb_hcd_flush_endpoint+0xde/0xed
[   56.283512]  [&lt;ffffffff8144e625&gt;] ? _raw_spin_lock_irqsave+0x14/0x35
[   56.283512]  [&lt;ffffffff812fd361&gt;] ? usb_serial_disconnect+0x57/0xc2
[   56.283512]  [&lt;ffffffff812ea99b&gt;] ? usb_unbind_interface+0x5c/0x131
[   56.283512]  [&lt;ffffffff8128d738&gt;] ? __device_release_driver+0x7f/0xd5
[   56.283512]  [&lt;ffffffff8128d9cd&gt;] ? device_release_driver+0x1a/0x25
[   56.283512]  [&lt;ffffffff8128d393&gt;] ? bus_remove_device+0xd2/0xe7
[   56.283512]  [&lt;ffffffff8128b7a3&gt;] ? device_del+0x119/0x167
[   56.283512]  [&lt;ffffffff812e8d9d&gt;] ? usb_disable_device+0x6a/0x180
[   56.283512]  [&lt;ffffffff812e2ae0&gt;] ? usb_disconnect+0x81/0xe6
[   56.283512]  [&lt;ffffffff812e4435&gt;] ? hub_thread+0x577/0xe82
[   56.283512]  [&lt;ffffffff8144daa7&gt;] ? __schedule+0x490/0x4be
[   56.283512]  [&lt;ffffffff8105798f&gt;] ? abort_exclusive_wait+0x79/0x79
[   56.283512]  [&lt;ffffffff812e3ebe&gt;] ? usb_remote_wakeup+0x2f/0x2f
[   56.283512]  [&lt;ffffffff812e3ebe&gt;] ? usb_remote_wakeup+0x2f/0x2f
[   56.283512]  [&lt;ffffffff810570b4&gt;] ? kthread+0x81/0x89
[   56.283512]  [&lt;ffffffff81057033&gt;] ? __kthread_parkme+0x5c/0x5c
[   56.283512]  [&lt;ffffffff8145387c&gt;] ? ret_from_fork+0x7c/0xb0
[   56.283512]  [&lt;ffffffff81057033&gt;] ? __kthread_parkme+0x5c/0x5c
[   56.283512] Code: 8b 7c 24 08 e8 17 0b c3 ff 48 8b 04 24 48 83 c4 10 c3 53 48 89 fb 41 50 e8 e0 0a c3 ff 48 89 04 24 e8 e7 0a c3 ff ba 00 00 01 00
&lt;f0&gt; 0f c1 13 48 8b 04 24 89 d1 c1 ea 10 66 39 d1 74 07 f3 90 66
[   56.283512] RIP  [&lt;ffffffff8144e62a&gt;] _raw_spin_lock_irqsave+0x19/0x35
[   56.283512]  RSP &lt;ffff88001fa99ab0&gt;
[   56.283512] CR2: 00000000000001c8
[   56.283512] ---[ end trace 49714df27e1679ce ]---

Signed-off-by: Wolfgang Frisch &lt;wfpub@roembden.net&gt;
Cc: Johan Hovold &lt;jhovold@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>USB: garmin_gps: fix memory leak on disconnect</title>
<updated>2014-02-10T21:11:21+00:00</updated>
<author>
<name>Johan Hovold</name>
<email>jhovold@gmail.com</email>
</author>
<published>2013-03-19T08:21:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=94213dca0f01147c7407aa64916e4c6c0205e64d'/>
<id>94213dca0f01147c7407aa64916e4c6c0205e64d</id>
<content type='text'>
commit 618aa1068df29c37a58045fe940f9106664153fd upstream.

Remove bogus disconnect test introduced by 95bef012e ("USB: more serial
drivers writing after disconnect") which prevented queued data from
being freed on disconnect.

The possible IO it was supposed to prevent is long gone.

Signed-off-by: Johan Hovold &lt;jhovold@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 618aa1068df29c37a58045fe940f9106664153fd upstream.

Remove bogus disconnect test introduced by 95bef012e ("USB: more serial
drivers writing after disconnect") which prevented queued data from
being freed on disconnect.

The possible IO it was supposed to prevent is long gone.

Signed-off-by: Johan Hovold &lt;jhovold@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>USB: mos7840: fix port-device leak in error path</title>
<updated>2014-02-10T21:11:21+00:00</updated>
<author>
<name>Johan Hovold</name>
<email>jhovold@gmail.com</email>
</author>
<published>2012-10-25T11:35:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=ba8439dd599756c5364419f173fdfe3ee27e319d'/>
<id>ba8439dd599756c5364419f173fdfe3ee27e319d</id>
<content type='text'>
commit 3eb55cc4ed88eee3b5230f66abcdbd2a91639eda upstream.

The driver set the usb-serial port pointers to NULL on errors in attach,
effectively preventing usb-serial core from decrementing the port ref
counters and releasing the port devices and associated data.

Signed-off-by: Johan Hovold &lt;jhovold@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 3eb55cc4ed88eee3b5230f66abcdbd2a91639eda upstream.

The driver set the usb-serial port pointers to NULL on errors in attach,
effectively preventing usb-serial core from decrementing the port ref
counters and releasing the port devices and associated data.

Signed-off-by: Johan Hovold &lt;jhovold@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>USB: mos7840: fix urb leak at release</title>
<updated>2014-02-10T21:11:20+00:00</updated>
<author>
<name>Johan Hovold</name>
<email>jhovold@gmail.com</email>
</author>
<published>2012-10-25T11:35:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=ef5ebb463321e2b61e9f88a2ce44eb183a68478d'/>
<id>ef5ebb463321e2b61e9f88a2ce44eb183a68478d</id>
<content type='text'>
commit 65a4cdbb170e4ec1a7fa0e94936d47e24a17b0e8 upstream.

Make sure control urb is freed at release.

Signed-off-by: Johan Hovold &lt;jhovold@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 65a4cdbb170e4ec1a7fa0e94936d47e24a17b0e8 upstream.

Make sure control urb is freed at release.

Signed-off-by: Johan Hovold &lt;jhovold@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>USB: serial: Fix memory leak in sierra_release()</title>
<updated>2014-02-10T21:11:20+00:00</updated>
<author>
<name>Lennart Sorensen</name>
<email>lsorense@csclub.uwaterloo.ca</email>
</author>
<published>2012-10-24T14:23:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=fa6a45bdce7042309bafd1a777033eef998f5452'/>
<id>fa6a45bdce7042309bafd1a777033eef998f5452</id>
<content type='text'>
commit f7bc5051667b74c3861f79eed98c60d5c3b883f7 upstream.

I found a memory leak in sierra_release() (well sierra_probe() I guess)
that looses 8 bytes each time the driver releases a device.

Signed-off-by: Len Sorensen &lt;lsorense@csclub.uwaterloo.ca&gt;
Acked-by: Johan Hovold &lt;jhovold@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit f7bc5051667b74c3861f79eed98c60d5c3b883f7 upstream.

I found a memory leak in sierra_release() (well sierra_probe() I guess)
that looses 8 bytes each time the driver releases a device.

Signed-off-by: Len Sorensen &lt;lsorense@csclub.uwaterloo.ca&gt;
Acked-by: Johan Hovold &lt;jhovold@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>USB: whiteheat: fix memory leak in error path</title>
<updated>2014-02-10T21:11:20+00:00</updated>
<author>
<name>Johan Hovold</name>
<email>jhovold@gmail.com</email>
</author>
<published>2012-10-25T08:29:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=c899734ce7fb4a9ccb42efd647d81eabfb008275'/>
<id>c899734ce7fb4a9ccb42efd647d81eabfb008275</id>
<content type='text'>
commit c129197c99550d356cf5f69b046994dd53cd1b9d upstream.

Make sure command buffer is deallocated in case of errors during attach.

Cc: &lt;support@connecttech.com&gt;
Signed-off-by: Johan Hovold &lt;jhovold@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit c129197c99550d356cf5f69b046994dd53cd1b9d upstream.

Make sure command buffer is deallocated in case of errors during attach.

Cc: &lt;support@connecttech.com&gt;
Signed-off-by: Johan Hovold &lt;jhovold@gmail.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>usb: option: add SIMCom SIM5218</title>
<updated>2013-01-16T21:45:00+00:00</updated>
<author>
<name>Veli-Pekka Peltola</name>
<email>veli-pekka.peltola@bluegiga.com</email>
</author>
<published>2011-11-24T20:08:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=80de3a8ff44f7c4f23cedc6276628f335ca3fd6d'/>
<id>80de3a8ff44f7c4f23cedc6276628f335ca3fd6d</id>
<content type='text'>
commit ec0cd94d881ca89cc9fb61d00d0f4b2b52e605b3 upstream.

Tested with SIM5218EVB-KIT evaluation kit.

Signed-off-by: Veli-Pekka Peltola &lt;veli-pekka.peltola@bluegiga.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit ec0cd94d881ca89cc9fb61d00d0f4b2b52e605b3 upstream.

Tested with SIM5218EVB-KIT evaluation kit.

Signed-off-by: Veli-Pekka Peltola &lt;veli-pekka.peltola@bluegiga.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
Signed-off-by: Paul Gortmaker &lt;paul.gortmaker@windriver.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
