<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers/usb/serial, branch v3.12.22</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>usb: qcserial: add a number of Dell devices</title>
<updated>2014-06-04T15:00:28+00:00</updated>
<author>
<name>Bjørn Mork</name>
<email>bjorn@mork.no</email>
</author>
<published>2014-04-27T14:47:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=5b6e78d1f9e2d9e865c522722b8d54773c11efbe'/>
<id>5b6e78d1f9e2d9e865c522722b8d54773c11efbe</id>
<content type='text'>
commit 4d7c0136a54f62501f8a34c4d08a5e0258d3d3ca upstream.

Dan writes:

"The Dell drivers use the same configuration for PIDs:

81A2: Dell Wireless 5806 Gobi(TM) 4G LTE Mobile Broadband Card
81A3: Dell Wireless 5570 HSPA+ (42Mbps) Mobile Broadband Card
81A4: Dell Wireless 5570e HSPA+ (42Mbps) Mobile Broadband Card
81A8: Dell Wireless 5808 Gobi(TM) 4G LTE Mobile Broadband Card
81A9: Dell Wireless 5808e Gobi(TM) 4G LTE Mobile Broadband Card

These devices are all clearly Sierra devices, but are also definitely
Gobi-based.  The A8 might be the MC7700/7710 and A9 is likely a MC7750.

&gt;From DellGobi5kSetup.exe from the Dell drivers:

usbif0: serial/firmware loader?
usbif2: nmea
usbif3: modem/ppp
usbif8: net/QMI"

Cc: &lt;stable@vger.kernel.org&gt;
Reported-by: AceLan Kao &lt;acelan.kao@canonical.com&gt;
Reported-by: Dan Williams &lt;dcbw@redhat.com&gt;
Signed-off-by: Bjørn Mork &lt;bjorn@mork.no&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 4d7c0136a54f62501f8a34c4d08a5e0258d3d3ca upstream.

Dan writes:

"The Dell drivers use the same configuration for PIDs:

81A2: Dell Wireless 5806 Gobi(TM) 4G LTE Mobile Broadband Card
81A3: Dell Wireless 5570 HSPA+ (42Mbps) Mobile Broadband Card
81A4: Dell Wireless 5570e HSPA+ (42Mbps) Mobile Broadband Card
81A8: Dell Wireless 5808 Gobi(TM) 4G LTE Mobile Broadband Card
81A9: Dell Wireless 5808e Gobi(TM) 4G LTE Mobile Broadband Card

These devices are all clearly Sierra devices, but are also definitely
Gobi-based.  The A8 might be the MC7700/7710 and A9 is likely a MC7750.

&gt;From DellGobi5kSetup.exe from the Dell drivers:

usbif0: serial/firmware loader?
usbif2: nmea
usbif3: modem/ppp
usbif8: net/QMI"

Cc: &lt;stable@vger.kernel.org&gt;
Reported-by: AceLan Kao &lt;acelan.kao@canonical.com&gt;
Reported-by: Dan Williams &lt;dcbw@redhat.com&gt;
Signed-off-by: Bjørn Mork &lt;bjorn@mork.no&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>usb: option: add and update a number of CMOTech devices</title>
<updated>2014-05-29T09:38:23+00:00</updated>
<author>
<name>Bjørn Mork</name>
<email>bjorn@mork.no</email>
</author>
<published>2014-04-25T16:49:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=5ba3b1ee9254602486b6a62780d775461a490d4d'/>
<id>5ba3b1ee9254602486b6a62780d775461a490d4d</id>
<content type='text'>
commit 34f972d6156fe9eea2ab7bb418c71f9d1d5c8e7b upstream.

A number of older CMOTech modems are based on Qualcomm
chips.  The blacklisted interfaces are QMI/wwan.

Reported-by: Lars Melin &lt;larsm17@gmail.com&gt;
Signed-off-by: Bjørn Mork &lt;bjorn@mork.no&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 34f972d6156fe9eea2ab7bb418c71f9d1d5c8e7b upstream.

A number of older CMOTech modems are based on Qualcomm
chips.  The blacklisted interfaces are QMI/wwan.

Reported-by: Lars Melin &lt;larsm17@gmail.com&gt;
Signed-off-by: Bjørn Mork &lt;bjorn@mork.no&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>usb: option: add Alcatel L800MA</title>
<updated>2014-05-29T09:38:23+00:00</updated>
<author>
<name>Bjørn Mork</name>
<email>bjorn@mork.no</email>
</author>
<published>2014-04-25T16:49:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=42f2c7fb3ea7029dcde2387418b33538440c2a88'/>
<id>42f2c7fb3ea7029dcde2387418b33538440c2a88</id>
<content type='text'>
commit dd6b48ecec2ea7d15f28d5e5474388681899a5e1 upstream.

Device interface layout:
0: ff/ff/ff - serial
1: ff/00/00 - serial AT+PPP
2: ff/ff/ff - QMI/wwan
3: 08/06/50 - storage

Signed-off-by: Bjørn Mork &lt;bjorn@mork.no&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit dd6b48ecec2ea7d15f28d5e5474388681899a5e1 upstream.

Device interface layout:
0: ff/ff/ff - serial
1: ff/00/00 - serial AT+PPP
2: ff/ff/ff - QMI/wwan
3: 08/06/50 - storage

Signed-off-by: Bjørn Mork &lt;bjorn@mork.no&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>usb: option: add Olivetti Olicard 500</title>
<updated>2014-05-29T09:38:22+00:00</updated>
<author>
<name>Bjørn Mork</name>
<email>bjorn@mork.no</email>
</author>
<published>2014-04-25T16:49:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=225f31b02e53e533a21922f207ea92f0c1c14a26'/>
<id>225f31b02e53e533a21922f207ea92f0c1c14a26</id>
<content type='text'>
commit 533b3994610f316e5cd61b56d0c4daa15c830f89 upstream.

Device interface layout:
0: ff/ff/ff - serial
1: ff/ff/ff - serial AT+PPP
2: 08/06/50 - storage
3: ff/ff/ff - serial
4: ff/ff/ff - QMI/wwan

Reported-by: Julio Araujo &lt;julio.araujo@wllctel.com.br&gt;
Signed-off-by: Bjørn Mork &lt;bjorn@mork.no&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 533b3994610f316e5cd61b56d0c4daa15c830f89 upstream.

Device interface layout:
0: ff/ff/ff - serial
1: ff/ff/ff - serial AT+PPP
2: 08/06/50 - storage
3: ff/ff/ff - serial
4: ff/ff/ff - QMI/wwan

Reported-by: Julio Araujo &lt;julio.araujo@wllctel.com.br&gt;
Signed-off-by: Bjørn Mork &lt;bjorn@mork.no&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>usb: qcserial: add Sierra Wireless MC7305/MC7355</title>
<updated>2014-05-29T09:38:21+00:00</updated>
<author>
<name>Bjørn Mork</name>
<email>bjorn@mork.no</email>
</author>
<published>2014-04-25T16:49:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=aa707d08b60e0c7f4261b886949a3403e7ae0b64'/>
<id>aa707d08b60e0c7f4261b886949a3403e7ae0b64</id>
<content type='text'>
commit bce4f588f19d59fc07fadfeb0b2a3a06c942827a upstream.

Signed-off-by: Bjørn Mork &lt;bjorn@mork.no&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit bce4f588f19d59fc07fadfeb0b2a3a06c942827a upstream.

Signed-off-by: Bjørn Mork &lt;bjorn@mork.no&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>usb: qcserial: add Sierra Wireless MC73xx</title>
<updated>2014-05-29T09:38:21+00:00</updated>
<author>
<name>Bjørn Mork</name>
<email>bjorn@mork.no</email>
</author>
<published>2014-04-25T16:49:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=47c41d33c7398409dbd677c353eff6bcf87da2f4'/>
<id>47c41d33c7398409dbd677c353eff6bcf87da2f4</id>
<content type='text'>
commit 70a3615fc07c2330ed7c1e922f3c44f4a67c0762 upstream.

Signed-off-by: Bjørn Mork &lt;bjorn@mork.no&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 70a3615fc07c2330ed7c1e922f3c44f4a67c0762 upstream.

Signed-off-by: Bjørn Mork &lt;bjorn@mork.no&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>usb: qcserial: add Sierra Wireless EM7355</title>
<updated>2014-05-29T09:38:20+00:00</updated>
<author>
<name>Bjørn Mork</name>
<email>bjorn@mork.no</email>
</author>
<published>2014-04-25T16:49:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=6da60ef3c3f1101992510501b1f387c69673a610'/>
<id>6da60ef3c3f1101992510501b1f387c69673a610</id>
<content type='text'>
commit a00986f81182a69dee4d2c48e8c19805bdf0f790 upstream.

Signed-off-by: Bjørn Mork &lt;bjorn@mork.no&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit a00986f81182a69dee4d2c48e8c19805bdf0f790 upstream.

Signed-off-by: Bjørn Mork &lt;bjorn@mork.no&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>USB: io_ti: fix firmware download on big-endian machines</title>
<updated>2014-05-29T09:38:20+00:00</updated>
<author>
<name>Johan Hovold</name>
<email>jhovold@gmail.com</email>
</author>
<published>2014-04-25T13:23:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=cc5aeeb5c66a30b9be357ccec62f51b29b136606'/>
<id>cc5aeeb5c66a30b9be357ccec62f51b29b136606</id>
<content type='text'>
commit 5509076d1b4485ce9fb07705fcbcd2695907ab5b upstream.

During firmware download the device expects memory addresses in
big-endian byte order. As the wIndex parameter which hold the address is
sent in little-endian byte order regardless of host byte order, we need
to use swab16 rather than cpu_to_be16.

Also make sure to handle the struct ti_i2c_desc size parameter which is
returned in little-endian byte order.

Reported-by: Ludovic Drolez &lt;ldrolez@debian.org&gt;
Tested-by: Ludovic Drolez &lt;ldrolez@debian.org&gt;
Signed-off-by: Johan Hovold &lt;jhovold@gmail.com&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 5509076d1b4485ce9fb07705fcbcd2695907ab5b upstream.

During firmware download the device expects memory addresses in
big-endian byte order. As the wIndex parameter which hold the address is
sent in little-endian byte order regardless of host byte order, we need
to use swab16 rather than cpu_to_be16.

Also make sure to handle the struct ti_i2c_desc size parameter which is
returned in little-endian byte order.

Reported-by: Ludovic Drolez &lt;ldrolez@debian.org&gt;
Tested-by: Ludovic Drolez &lt;ldrolez@debian.org&gt;
Signed-off-by: Johan Hovold &lt;jhovold@gmail.com&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>USB: serial: fix sysfs-attribute removal deadlock</title>
<updated>2014-05-29T09:38:19+00:00</updated>
<author>
<name>Johan Hovold</name>
<email>jhovold@gmail.com</email>
</author>
<published>2014-04-23T09:32:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=e53acf9754734aa0d58686494f640c00445316c3'/>
<id>e53acf9754734aa0d58686494f640c00445316c3</id>
<content type='text'>
commit 10164c2ad6d2c16809f6c09e278f946e47801b3a upstream.

Fix driver new_id sysfs-attribute removal deadlock by making sure to
not hold any locks that the attribute operations grab when removing the
attribute.

Specifically, usb_serial_deregister holds the table mutex when
deregistering the driver, which includes removing the new_id attribute.
This can lead to a deadlock as writing to new_id increments the
attribute's active count before trying to grab the same mutex in
usb_serial_probe.

The deadlock can easily be triggered by inserting a sleep in
usb_serial_deregister and writing the id of an unbound device to new_id
during module unload.

As the table mutex (in this case) is used to prevent subdriver unload
during probe, it should be sufficient to only hold the lock while
manipulating the usb-serial driver list during deregister. A racing
probe will then either fail to find a matching subdriver or fail to get
the corresponding module reference.

Since v3.15-rc1 this also triggers the following lockdep warning:

======================================================
[ INFO: possible circular locking dependency detected ]
3.15.0-rc2 #123 Tainted: G        W
-------------------------------------------------------
modprobe/190 is trying to acquire lock:
 (s_active#4){++++.+}, at: [&lt;c0167aa0&gt;] kernfs_remove_by_name_ns+0x4c/0x94

but task is already holding lock:
 (table_lock){+.+.+.}, at: [&lt;bf004d84&gt;] usb_serial_deregister+0x3c/0x78 [usbserial]

which lock already depends on the new lock.

the existing dependency chain (in reverse order) is:

-&gt; #1 (table_lock){+.+.+.}:
       [&lt;c0075f84&gt;] __lock_acquire+0x1694/0x1ce4
       [&lt;c0076de8&gt;] lock_acquire+0xb4/0x154
       [&lt;c03af3cc&gt;] _raw_spin_lock+0x4c/0x5c
       [&lt;c02bbc24&gt;] usb_store_new_id+0x14c/0x1ac
       [&lt;bf007eb4&gt;] new_id_store+0x68/0x70 [usbserial]
       [&lt;c025f568&gt;] drv_attr_store+0x30/0x3c
       [&lt;c01690e0&gt;] sysfs_kf_write+0x5c/0x60
       [&lt;c01682c0&gt;] kernfs_fop_write+0xd4/0x194
       [&lt;c010881c&gt;] vfs_write+0xbc/0x198
       [&lt;c0108e4c&gt;] SyS_write+0x4c/0xa0
       [&lt;c000f880&gt;] ret_fast_syscall+0x0/0x48

-&gt; #0 (s_active#4){++++.+}:
       [&lt;c03a7a28&gt;] print_circular_bug+0x68/0x2f8
       [&lt;c0076218&gt;] __lock_acquire+0x1928/0x1ce4
       [&lt;c0076de8&gt;] lock_acquire+0xb4/0x154
       [&lt;c0166b70&gt;] __kernfs_remove+0x254/0x310
       [&lt;c0167aa0&gt;] kernfs_remove_by_name_ns+0x4c/0x94
       [&lt;c0169fb8&gt;] remove_files.isra.1+0x48/0x84
       [&lt;c016a2fc&gt;] sysfs_remove_group+0x58/0xac
       [&lt;c016a414&gt;] sysfs_remove_groups+0x34/0x44
       [&lt;c02623b8&gt;] driver_remove_groups+0x1c/0x20
       [&lt;c0260e9c&gt;] bus_remove_driver+0x3c/0xe4
       [&lt;c026235c&gt;] driver_unregister+0x38/0x58
       [&lt;bf007fb4&gt;] usb_serial_bus_deregister+0x84/0x88 [usbserial]
       [&lt;bf004db4&gt;] usb_serial_deregister+0x6c/0x78 [usbserial]
       [&lt;bf005330&gt;] usb_serial_deregister_drivers+0x2c/0x4c [usbserial]
       [&lt;bf016618&gt;] usb_serial_module_exit+0x14/0x1c [sierra]
       [&lt;c009d6cc&gt;] SyS_delete_module+0x184/0x210
       [&lt;c000f880&gt;] ret_fast_syscall+0x0/0x48

other info that might help us debug this:

 Possible unsafe locking scenario:

       CPU0                    CPU1
       ----                    ----
  lock(table_lock);
                               lock(s_active#4);
                               lock(table_lock);
  lock(s_active#4);

 *** DEADLOCK ***

1 lock held by modprobe/190:
 #0:  (table_lock){+.+.+.}, at: [&lt;bf004d84&gt;] usb_serial_deregister+0x3c/0x78 [usbserial]

stack backtrace:
CPU: 0 PID: 190 Comm: modprobe Tainted: G        W     3.15.0-rc2 #123
[&lt;c0015e10&gt;] (unwind_backtrace) from [&lt;c0013728&gt;] (show_stack+0x20/0x24)
[&lt;c0013728&gt;] (show_stack) from [&lt;c03a9a54&gt;] (dump_stack+0x24/0x28)
[&lt;c03a9a54&gt;] (dump_stack) from [&lt;c03a7cac&gt;] (print_circular_bug+0x2ec/0x2f8)
[&lt;c03a7cac&gt;] (print_circular_bug) from [&lt;c0076218&gt;] (__lock_acquire+0x1928/0x1ce4)
[&lt;c0076218&gt;] (__lock_acquire) from [&lt;c0076de8&gt;] (lock_acquire+0xb4/0x154)
[&lt;c0076de8&gt;] (lock_acquire) from [&lt;c0166b70&gt;] (__kernfs_remove+0x254/0x310)
[&lt;c0166b70&gt;] (__kernfs_remove) from [&lt;c0167aa0&gt;] (kernfs_remove_by_name_ns+0x4c/0x94)
[&lt;c0167aa0&gt;] (kernfs_remove_by_name_ns) from [&lt;c0169fb8&gt;] (remove_files.isra.1+0x48/0x84)
[&lt;c0169fb8&gt;] (remove_files.isra.1) from [&lt;c016a2fc&gt;] (sysfs_remove_group+0x58/0xac)
[&lt;c016a2fc&gt;] (sysfs_remove_group) from [&lt;c016a414&gt;] (sysfs_remove_groups+0x34/0x44)
[&lt;c016a414&gt;] (sysfs_remove_groups) from [&lt;c02623b8&gt;] (driver_remove_groups+0x1c/0x20)
[&lt;c02623b8&gt;] (driver_remove_groups) from [&lt;c0260e9c&gt;] (bus_remove_driver+0x3c/0xe4)
[&lt;c0260e9c&gt;] (bus_remove_driver) from [&lt;c026235c&gt;] (driver_unregister+0x38/0x58)
[&lt;c026235c&gt;] (driver_unregister) from [&lt;bf007fb4&gt;] (usb_serial_bus_deregister+0x84/0x88 [usbserial])
[&lt;bf007fb4&gt;] (usb_serial_bus_deregister [usbserial]) from [&lt;bf004db4&gt;] (usb_serial_deregister+0x6c/0x78 [usbserial])
[&lt;bf004db4&gt;] (usb_serial_deregister [usbserial]) from [&lt;bf005330&gt;] (usb_serial_deregister_drivers+0x2c/0x4c [usbserial])
[&lt;bf005330&gt;] (usb_serial_deregister_drivers [usbserial]) from [&lt;bf016618&gt;] (usb_serial_module_exit+0x14/0x1c [sierra])
[&lt;bf016618&gt;] (usb_serial_module_exit [sierra]) from [&lt;c009d6cc&gt;] (SyS_delete_module+0x184/0x210)
[&lt;c009d6cc&gt;] (SyS_delete_module) from [&lt;c000f880&gt;] (ret_fast_syscall+0x0/0x48)

Signed-off-by: Johan Hovold &lt;jhovold@gmail.com&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 10164c2ad6d2c16809f6c09e278f946e47801b3a upstream.

Fix driver new_id sysfs-attribute removal deadlock by making sure to
not hold any locks that the attribute operations grab when removing the
attribute.

Specifically, usb_serial_deregister holds the table mutex when
deregistering the driver, which includes removing the new_id attribute.
This can lead to a deadlock as writing to new_id increments the
attribute's active count before trying to grab the same mutex in
usb_serial_probe.

The deadlock can easily be triggered by inserting a sleep in
usb_serial_deregister and writing the id of an unbound device to new_id
during module unload.

As the table mutex (in this case) is used to prevent subdriver unload
during probe, it should be sufficient to only hold the lock while
manipulating the usb-serial driver list during deregister. A racing
probe will then either fail to find a matching subdriver or fail to get
the corresponding module reference.

Since v3.15-rc1 this also triggers the following lockdep warning:

======================================================
[ INFO: possible circular locking dependency detected ]
3.15.0-rc2 #123 Tainted: G        W
-------------------------------------------------------
modprobe/190 is trying to acquire lock:
 (s_active#4){++++.+}, at: [&lt;c0167aa0&gt;] kernfs_remove_by_name_ns+0x4c/0x94

but task is already holding lock:
 (table_lock){+.+.+.}, at: [&lt;bf004d84&gt;] usb_serial_deregister+0x3c/0x78 [usbserial]

which lock already depends on the new lock.

the existing dependency chain (in reverse order) is:

-&gt; #1 (table_lock){+.+.+.}:
       [&lt;c0075f84&gt;] __lock_acquire+0x1694/0x1ce4
       [&lt;c0076de8&gt;] lock_acquire+0xb4/0x154
       [&lt;c03af3cc&gt;] _raw_spin_lock+0x4c/0x5c
       [&lt;c02bbc24&gt;] usb_store_new_id+0x14c/0x1ac
       [&lt;bf007eb4&gt;] new_id_store+0x68/0x70 [usbserial]
       [&lt;c025f568&gt;] drv_attr_store+0x30/0x3c
       [&lt;c01690e0&gt;] sysfs_kf_write+0x5c/0x60
       [&lt;c01682c0&gt;] kernfs_fop_write+0xd4/0x194
       [&lt;c010881c&gt;] vfs_write+0xbc/0x198
       [&lt;c0108e4c&gt;] SyS_write+0x4c/0xa0
       [&lt;c000f880&gt;] ret_fast_syscall+0x0/0x48

-&gt; #0 (s_active#4){++++.+}:
       [&lt;c03a7a28&gt;] print_circular_bug+0x68/0x2f8
       [&lt;c0076218&gt;] __lock_acquire+0x1928/0x1ce4
       [&lt;c0076de8&gt;] lock_acquire+0xb4/0x154
       [&lt;c0166b70&gt;] __kernfs_remove+0x254/0x310
       [&lt;c0167aa0&gt;] kernfs_remove_by_name_ns+0x4c/0x94
       [&lt;c0169fb8&gt;] remove_files.isra.1+0x48/0x84
       [&lt;c016a2fc&gt;] sysfs_remove_group+0x58/0xac
       [&lt;c016a414&gt;] sysfs_remove_groups+0x34/0x44
       [&lt;c02623b8&gt;] driver_remove_groups+0x1c/0x20
       [&lt;c0260e9c&gt;] bus_remove_driver+0x3c/0xe4
       [&lt;c026235c&gt;] driver_unregister+0x38/0x58
       [&lt;bf007fb4&gt;] usb_serial_bus_deregister+0x84/0x88 [usbserial]
       [&lt;bf004db4&gt;] usb_serial_deregister+0x6c/0x78 [usbserial]
       [&lt;bf005330&gt;] usb_serial_deregister_drivers+0x2c/0x4c [usbserial]
       [&lt;bf016618&gt;] usb_serial_module_exit+0x14/0x1c [sierra]
       [&lt;c009d6cc&gt;] SyS_delete_module+0x184/0x210
       [&lt;c000f880&gt;] ret_fast_syscall+0x0/0x48

other info that might help us debug this:

 Possible unsafe locking scenario:

       CPU0                    CPU1
       ----                    ----
  lock(table_lock);
                               lock(s_active#4);
                               lock(table_lock);
  lock(s_active#4);

 *** DEADLOCK ***

1 lock held by modprobe/190:
 #0:  (table_lock){+.+.+.}, at: [&lt;bf004d84&gt;] usb_serial_deregister+0x3c/0x78 [usbserial]

stack backtrace:
CPU: 0 PID: 190 Comm: modprobe Tainted: G        W     3.15.0-rc2 #123
[&lt;c0015e10&gt;] (unwind_backtrace) from [&lt;c0013728&gt;] (show_stack+0x20/0x24)
[&lt;c0013728&gt;] (show_stack) from [&lt;c03a9a54&gt;] (dump_stack+0x24/0x28)
[&lt;c03a9a54&gt;] (dump_stack) from [&lt;c03a7cac&gt;] (print_circular_bug+0x2ec/0x2f8)
[&lt;c03a7cac&gt;] (print_circular_bug) from [&lt;c0076218&gt;] (__lock_acquire+0x1928/0x1ce4)
[&lt;c0076218&gt;] (__lock_acquire) from [&lt;c0076de8&gt;] (lock_acquire+0xb4/0x154)
[&lt;c0076de8&gt;] (lock_acquire) from [&lt;c0166b70&gt;] (__kernfs_remove+0x254/0x310)
[&lt;c0166b70&gt;] (__kernfs_remove) from [&lt;c0167aa0&gt;] (kernfs_remove_by_name_ns+0x4c/0x94)
[&lt;c0167aa0&gt;] (kernfs_remove_by_name_ns) from [&lt;c0169fb8&gt;] (remove_files.isra.1+0x48/0x84)
[&lt;c0169fb8&gt;] (remove_files.isra.1) from [&lt;c016a2fc&gt;] (sysfs_remove_group+0x58/0xac)
[&lt;c016a2fc&gt;] (sysfs_remove_group) from [&lt;c016a414&gt;] (sysfs_remove_groups+0x34/0x44)
[&lt;c016a414&gt;] (sysfs_remove_groups) from [&lt;c02623b8&gt;] (driver_remove_groups+0x1c/0x20)
[&lt;c02623b8&gt;] (driver_remove_groups) from [&lt;c0260e9c&gt;] (bus_remove_driver+0x3c/0xe4)
[&lt;c0260e9c&gt;] (bus_remove_driver) from [&lt;c026235c&gt;] (driver_unregister+0x38/0x58)
[&lt;c026235c&gt;] (driver_unregister) from [&lt;bf007fb4&gt;] (usb_serial_bus_deregister+0x84/0x88 [usbserial])
[&lt;bf007fb4&gt;] (usb_serial_bus_deregister [usbserial]) from [&lt;bf004db4&gt;] (usb_serial_deregister+0x6c/0x78 [usbserial])
[&lt;bf004db4&gt;] (usb_serial_deregister [usbserial]) from [&lt;bf005330&gt;] (usb_serial_deregister_drivers+0x2c/0x4c [usbserial])
[&lt;bf005330&gt;] (usb_serial_deregister_drivers [usbserial]) from [&lt;bf016618&gt;] (usb_serial_module_exit+0x14/0x1c [sierra])
[&lt;bf016618&gt;] (usb_serial_module_exit [sierra]) from [&lt;c009d6cc&gt;] (SyS_delete_module+0x184/0x210)
[&lt;c009d6cc&gt;] (SyS_delete_module) from [&lt;c000f880&gt;] (ret_fast_syscall+0x0/0x48)

Signed-off-by: Johan Hovold &lt;jhovold@gmail.com&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "USB: serial: add usbid for dell wwan card to sierra.c"</title>
<updated>2014-05-29T09:38:19+00:00</updated>
<author>
<name>Johan Hovold</name>
<email>jhovold@gmail.com</email>
</author>
<published>2014-03-28T17:05:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=8e3e396462c30221a7ed37cdcf065ecf585c310d'/>
<id>8e3e396462c30221a7ed37cdcf065ecf585c310d</id>
<content type='text'>
commit 2e01280d2801c72878cf3a7119eac30077b463d5 upstream.

This reverts commit 1ebca9dad5abe8b2ed4dbd186cd657fb47c1f321.

This device was erroneously added to the sierra driver even though it's
not a Sierra device and was already handled by the option driver.

Cc: Richard Farina &lt;sidhayn@gmail.com&gt;
Signed-off-by: Johan Hovold &lt;jhovold@gmail.com&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 2e01280d2801c72878cf3a7119eac30077b463d5 upstream.

This reverts commit 1ebca9dad5abe8b2ed4dbd186cd657fb47c1f321.

This device was erroneously added to the sierra driver even though it's
not a Sierra device and was already handled by the option driver.

Cc: Richard Farina &lt;sidhayn@gmail.com&gt;
Signed-off-by: Johan Hovold &lt;jhovold@gmail.com&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</pre>
</div>
</content>
</entry>
</feed>
