<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers/usb/storage/usb.c, branch linux-3.5.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: storage: fixed keyword related space issues.</title>
<updated>2012-05-17T16:48:29+00:00</updated>
<author>
<name>Jeffrin Jose</name>
<email>ahiliation@yahoo.co.in</email>
</author>
<published>2012-05-16T19:04:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=db2c8624847b0b67c04c3d6271823f3fee671e26'/>
<id>db2c8624847b0b67c04c3d6271823f3fee671e26</id>
<content type='text'>
Fixed keyword related space issues found by
checkpatch.pl tool in drivers/usb/storage/usb.c

Signed-off-by: Jeffrin Jose &lt;ahiliation@yahoo.co.in&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>
Fixed keyword related space issues found by
checkpatch.pl tool in drivers/usb/storage/usb.c

Signed-off-by: Jeffrin Jose &lt;ahiliation@yahoo.co.in&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>USB: storage: fixed several trailing white spaces issues.</title>
<updated>2012-05-17T16:48:29+00:00</updated>
<author>
<name>Jeffrin Jose</name>
<email>ahiliation@yahoo.co.in</email>
</author>
<published>2012-05-16T19:03:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=a1631062f2f2e1b57108e810983a077d6b847092'/>
<id>a1631062f2f2e1b57108e810983a077d6b847092</id>
<content type='text'>
Fixed several trailing white spaces issues found
by checkpatch.pl tool in drivers/usb/storage/usb.c

Signed-off-by: Jeffrin Jose &lt;ahiliation@yahoo.co.in&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>
Fixed several trailing white spaces issues found
by checkpatch.pl tool in drivers/usb/storage/usb.c

Signed-off-by: Jeffrin Jose &lt;ahiliation@yahoo.co.in&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>USB: storage: fixed C99 comment issue.</title>
<updated>2012-05-17T16:48:29+00:00</updated>
<author>
<name>Jeffrin Jose</name>
<email>ahiliation@yahoo.co.in</email>
</author>
<published>2012-05-16T19:03:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=a7edf6823a76a06082ac1e60471706a380495f6c'/>
<id>a7edf6823a76a06082ac1e60471706a380495f6c</id>
<content type='text'>
Fixed C99 comment issue in drivers/usb/storage/usb.c
found using checkpatch.pl tool.

Signed-off-by: Jeffrin Jose &lt;ahiliation@yahoo.co.in&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>
Fixed C99 comment issue in drivers/usb/storage/usb.c
found using checkpatch.pl tool.

Signed-off-by: Jeffrin Jose &lt;ahiliation@yahoo.co.in&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>usb: storage: fix lockdep warning inside usb_stor_pre_reset(v2)</title>
<updated>2012-04-06T20:54:00+00:00</updated>
<author>
<name>Ming Lei</name>
<email>tom.leiming@gmail.com</email>
</author>
<published>2012-03-19T07:20:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=c825bab0cef8b90bab8b63eb5686b8c8eb22e798'/>
<id>c825bab0cef8b90bab8b63eb5686b8c8eb22e798</id>
<content type='text'>
This patch fixes one lockdep warning[1] inside usb_stor_pre_reset.

If the current configuration includes multiple mass storage interfaces,
the 'AA' lockdep warning will be triggered since the lock class of
'us-&gt;dev_mutex' is acquired two times in .reset path. It isn't
a real deadlock, so just take the lockdep_set_class annotation to
remove the warning.

[1], lockdep warning log
:[ INFO: possible recursive locking detected ]
:3.3.0-0.rc5.git3.1.fc17.x86_64 #1 Tainted: G        W
:---------------------------------------------
:usb-storage/14846 is trying to acquire lock:
: (&amp;(us-&gt;dev_mutex)){+.+.+.}, at: [&lt;ffffffffa0481c0c&gt;] usb_stor_pre_reset+0x1c/0x20 [usb_storage]
:but task is already holding lock:
: (&amp;(us-&gt;dev_mutex)){+.+.+.}, at: [&lt;ffffffffa0481c0c&gt;] usb_stor_pre_reset+0x1c/0x20 [usb_storage]
:other info that might help us debug this:
: Possible unsafe locking scenario:
:       CPU0
:       ----
:  lock(&amp;(us-&gt;dev_mutex));
:  lock(&amp;(us-&gt;dev_mutex));
: *** DEADLOCK ***
: May be due to missing lock nesting notation
:2 locks held by usb-storage/14846:
: #0:  (&amp;__lockdep_no_validate__){......}, at: [&lt;ffffffff8147e6a5&gt;] usb_lock_device_for_reset+0x95/0x100
: #1:  (&amp;(us-&gt;dev_mutex)){+.+.+.}, at: [&lt;ffffffffa0481c0c&gt;] usb_stor_pre_reset+0x1c/0x20 [usb_storage]
:stack backtrace:
:Pid: 14846, comm: usb-storage Tainted: G        W 3.3.0-0.rc5.git3.1.fc17.x86_64 #1
:Call Trace:
: [&lt;ffffffff810cbdaf&gt;] __lock_acquire+0x168f/0x1bb0
: [&lt;ffffffff81021083&gt;] ? native_sched_clock+0x13/0x80
: [&lt;ffffffff810210f9&gt;] ? sched_clock+0x9/0x10
: [&lt;ffffffff810210f9&gt;] ? sched_clock+0x9/0x10
: [&lt;ffffffff810a2975&gt;] ? sched_clock_local+0x25/0xa0
: [&lt;ffffffff810cc9a1&gt;] lock_acquire+0xa1/0x1e0
: [&lt;ffffffffa0481c0c&gt;] ? usb_stor_pre_reset+0x1c/0x20 [usb_storage]
: [&lt;ffffffff81699c86&gt;] mutex_lock_nested+0x76/0x3a0
: [&lt;ffffffffa0481c0c&gt;] ? usb_stor_pre_reset+0x1c/0x20 [usb_storage]
: [&lt;ffffffffa0481c0c&gt;] ? usb_stor_pre_reset+0x1c/0x20 [usb_storage]
: [&lt;ffffffffa0481c0c&gt;] usb_stor_pre_reset+0x1c/0x20 [usb_storage]
: [&lt;ffffffff8148184d&gt;] usb_reset_device+0x7d/0x190
: [&lt;ffffffffa048119c&gt;] usb_stor_port_reset+0x7c/0x80 [usb_storage]
: [&lt;ffffffffa0481234&gt;] usb_stor_invoke_transport+0x94/0x560 [usb_storage]
: [&lt;ffffffff810cd3b2&gt;] ? mark_held_locks+0xb2/0x130
: [&lt;ffffffff8169dbd0&gt;] ? _raw_spin_unlock_irq+0x30/0x50
: [&lt;ffffffffa047fe3e&gt;] usb_stor_transparent_scsi_command+0xe/0x10 [usb_storage]
: [&lt;ffffffffa0481ae3&gt;] usb_stor_control_thread+0x173/0x280 [usb_storage]
: [&lt;ffffffffa0481970&gt;] ? fill_inquiry_response+0x20/0x20 [usb_storage]
: [&lt;ffffffff8108a3f7&gt;] kthread+0xb7/0xc0
: [&lt;ffffffff816a7d34&gt;] kernel_thread_helper+0x4/0x10
: [&lt;ffffffff8169e0f4&gt;] ? retint_restore_args+0x13/0x13
: [&lt;ffffffff8108a340&gt;] ? kthread_worker_fn+0x1a0/0x1a0
: [&lt;ffffffff816a7d30&gt;] ? gs_change+0x13/0x13

Reported-By: Dave Jones &lt;davej@redhat.com&gt;
Signed-off-by: Ming Lei &lt;tom.leiming@gmail.com&gt;
Acked-by: Alan Stern &lt;stern@rowland.harvard.edu&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>
This patch fixes one lockdep warning[1] inside usb_stor_pre_reset.

If the current configuration includes multiple mass storage interfaces,
the 'AA' lockdep warning will be triggered since the lock class of
'us-&gt;dev_mutex' is acquired two times in .reset path. It isn't
a real deadlock, so just take the lockdep_set_class annotation to
remove the warning.

[1], lockdep warning log
:[ INFO: possible recursive locking detected ]
:3.3.0-0.rc5.git3.1.fc17.x86_64 #1 Tainted: G        W
:---------------------------------------------
:usb-storage/14846 is trying to acquire lock:
: (&amp;(us-&gt;dev_mutex)){+.+.+.}, at: [&lt;ffffffffa0481c0c&gt;] usb_stor_pre_reset+0x1c/0x20 [usb_storage]
:but task is already holding lock:
: (&amp;(us-&gt;dev_mutex)){+.+.+.}, at: [&lt;ffffffffa0481c0c&gt;] usb_stor_pre_reset+0x1c/0x20 [usb_storage]
:other info that might help us debug this:
: Possible unsafe locking scenario:
:       CPU0
:       ----
:  lock(&amp;(us-&gt;dev_mutex));
:  lock(&amp;(us-&gt;dev_mutex));
: *** DEADLOCK ***
: May be due to missing lock nesting notation
:2 locks held by usb-storage/14846:
: #0:  (&amp;__lockdep_no_validate__){......}, at: [&lt;ffffffff8147e6a5&gt;] usb_lock_device_for_reset+0x95/0x100
: #1:  (&amp;(us-&gt;dev_mutex)){+.+.+.}, at: [&lt;ffffffffa0481c0c&gt;] usb_stor_pre_reset+0x1c/0x20 [usb_storage]
:stack backtrace:
:Pid: 14846, comm: usb-storage Tainted: G        W 3.3.0-0.rc5.git3.1.fc17.x86_64 #1
:Call Trace:
: [&lt;ffffffff810cbdaf&gt;] __lock_acquire+0x168f/0x1bb0
: [&lt;ffffffff81021083&gt;] ? native_sched_clock+0x13/0x80
: [&lt;ffffffff810210f9&gt;] ? sched_clock+0x9/0x10
: [&lt;ffffffff810210f9&gt;] ? sched_clock+0x9/0x10
: [&lt;ffffffff810a2975&gt;] ? sched_clock_local+0x25/0xa0
: [&lt;ffffffff810cc9a1&gt;] lock_acquire+0xa1/0x1e0
: [&lt;ffffffffa0481c0c&gt;] ? usb_stor_pre_reset+0x1c/0x20 [usb_storage]
: [&lt;ffffffff81699c86&gt;] mutex_lock_nested+0x76/0x3a0
: [&lt;ffffffffa0481c0c&gt;] ? usb_stor_pre_reset+0x1c/0x20 [usb_storage]
: [&lt;ffffffffa0481c0c&gt;] ? usb_stor_pre_reset+0x1c/0x20 [usb_storage]
: [&lt;ffffffffa0481c0c&gt;] usb_stor_pre_reset+0x1c/0x20 [usb_storage]
: [&lt;ffffffff8148184d&gt;] usb_reset_device+0x7d/0x190
: [&lt;ffffffffa048119c&gt;] usb_stor_port_reset+0x7c/0x80 [usb_storage]
: [&lt;ffffffffa0481234&gt;] usb_stor_invoke_transport+0x94/0x560 [usb_storage]
: [&lt;ffffffff810cd3b2&gt;] ? mark_held_locks+0xb2/0x130
: [&lt;ffffffff8169dbd0&gt;] ? _raw_spin_unlock_irq+0x30/0x50
: [&lt;ffffffffa047fe3e&gt;] usb_stor_transparent_scsi_command+0xe/0x10 [usb_storage]
: [&lt;ffffffffa0481ae3&gt;] usb_stor_control_thread+0x173/0x280 [usb_storage]
: [&lt;ffffffffa0481970&gt;] ? fill_inquiry_response+0x20/0x20 [usb_storage]
: [&lt;ffffffff8108a3f7&gt;] kthread+0xb7/0xc0
: [&lt;ffffffff816a7d34&gt;] kernel_thread_helper+0x4/0x10
: [&lt;ffffffff8169e0f4&gt;] ? retint_restore_args+0x13/0x13
: [&lt;ffffffff8108a340&gt;] ? kthread_worker_fn+0x1a0/0x1a0
: [&lt;ffffffff816a7d30&gt;] ? gs_change+0x13/0x13

Reported-By: Dave Jones &lt;davej@redhat.com&gt;
Signed-off-by: Ming Lei &lt;tom.leiming@gmail.com&gt;
Acked-by: Alan Stern &lt;stern@rowland.harvard.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'usb-3.3-rc4' into usb-next</title>
<updated>2012-02-23T16:21:03+00:00</updated>
<author>
<name>Greg Kroah-Hartman</name>
<email>gregkh@linuxfoundation.org</email>
</author>
<published>2012-02-23T16:20:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=c69263c66e5b2a5d0c7e5a41c189b1846ae1de92'/>
<id>c69263c66e5b2a5d0c7e5a41c189b1846ae1de92</id>
<content type='text'>
This is to pull in the xhci changes and the other fixes and device id
updates that were done in Linus's tree.

Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is to pull in the xhci changes and the other fixes and device id
updates that were done in Linus's tree.

Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>usb-storage: fix freezing of the scanning thread</title>
<updated>2012-02-22T00:29:15+00:00</updated>
<author>
<name>Alan Stern</name>
<email>stern@rowland.harvard.edu</email>
</author>
<published>2012-02-21T18:16:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=bb94a406682770a35305daaa241ccdb7cab399de'/>
<id>bb94a406682770a35305daaa241ccdb7cab399de</id>
<content type='text'>
This patch (as1521b) fixes the interaction between usb-storage's
scanning thread and the freezer.  The current implementation has a
race: If the device is unplugged shortly after being plugged in and
just as a system sleep begins, the scanning thread may get frozen
before the khubd task.  Khubd won't be able to freeze until the
disconnect processing is complete, and the disconnect processing can't
proceed until the scanning thread finishes, so the sleep transition
will fail.

The implementation in the 3.2 kernel suffers from an additional
problem.  There the scanning thread calls set_freezable_with_signal(),
and the signals sent by the freezer will mess up the thread's I/O
delays, which are all interruptible.

The solution to both problems is the same: Replace the kernel thread
used for scanning with a delayed-work routine on the system freezable
work queue.  Freezable work queues have the nice property that you can
cancel a work item even while the work queue is frozen, and no signals
are needed.

The 3.2 version of this patch solves the problem in Bugzilla #42730.

Signed-off-by: Alan Stern &lt;stern@rowland.harvard.edu&gt;
Acked-by: Seth Forshee &lt;seth.forshee@canonical.com&gt;
CC: stable &lt;stable@vger.kernel.org&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>
This patch (as1521b) fixes the interaction between usb-storage's
scanning thread and the freezer.  The current implementation has a
race: If the device is unplugged shortly after being plugged in and
just as a system sleep begins, the scanning thread may get frozen
before the khubd task.  Khubd won't be able to freeze until the
disconnect processing is complete, and the disconnect processing can't
proceed until the scanning thread finishes, so the sleep transition
will fail.

The implementation in the 3.2 kernel suffers from an additional
problem.  There the scanning thread calls set_freezable_with_signal(),
and the signals sent by the freezer will mess up the thread's I/O
delays, which are all interruptible.

The solution to both problems is the same: Replace the kernel thread
used for scanning with a delayed-work routine on the system freezable
work queue.  Freezable work queues have the nice property that you can
cancel a work item even while the work queue is frozen, and no signals
are needed.

The 3.2 version of this patch solves the problem in Bugzilla #42730.

Signed-off-by: Alan Stern &lt;stern@rowland.harvard.edu&gt;
Acked-by: Seth Forshee &lt;seth.forshee@canonical.com&gt;
CC: stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>usb: Re-enable usb-storage support dynamic id</title>
<updated>2012-01-24T22:31:04+00:00</updated>
<author>
<name>Huajun Li</name>
<email>huajun.li.lee@gmail.com</email>
</author>
<published>2012-01-14T02:16:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=fd7ff36d6a3f6413f838a2037b957b0e33ba9056'/>
<id>fd7ff36d6a3f6413f838a2037b957b0e33ba9056</id>
<content type='text'>
Enable usb-storage support dynamic id again by using a fixed id entry
that describes a device using the Bulk-Only transport with the
Transparent SCSI protocol.

Signed-off-by: Huajun Li &lt;huajun.li.lee@gmail.com&gt;
Reviewed-by: Alan Stern &lt;stern@rowland.harvard.edu&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>
Enable usb-storage support dynamic id again by using a fixed id entry
that describes a device using the Bulk-Only transport with the
Transparent SCSI protocol.

Signed-off-by: Huajun Li &lt;huajun.li.lee@gmail.com&gt;
Reviewed-by: Alan Stern &lt;stern@rowland.harvard.edu&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb</title>
<updated>2012-01-09T20:09:47+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2012-01-09T20:09:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=55b81e6f2795484ea8edf5805c95c007cacfa736'/>
<id>55b81e6f2795484ea8edf5805c95c007cacfa736</id>
<content type='text'>
* 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (232 commits)
  USB: Add USB-ID for Multiplex RC serial adapter to cp210x.c
  xhci: Clean up 32-bit build warnings.
  USB: update documentation for usbmon
  usb: usb-storage doesn't support dynamic id currently, the patch disables the feature to fix an oops
  drivers/usb/class/cdc-acm.c: clear dangling pointer
  drivers/usb/dwc3/dwc3-pci.c: introduce missing kfree
  drivers/usb/host/isp1760-if.c: introduce missing kfree
  usb: option: add ZD Incorporated HSPA modem
  usb: ch9: fix up MaxStreams helper
  USB: usb-skeleton.c: cleanup open_count
  USB: usb-skeleton.c: fix open/disconnect race
  xhci: Properly handle COMP_2ND_BW_ERR
  USB: remove dead code from suspend/resume path
  USB: add quirk for another camera
  drivers: usb: wusbcore: Fix dependency for USB_WUSB
  xhci: Better debugging for critical host errors.
  xhci: Be less verbose during URB cancellation.
  xhci: Remove debugging about ring structure allocation.
  xhci: Remove debugging about toggling cycle bits.
  xhci: Remove debugging for individual transfers.
  ...
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (232 commits)
  USB: Add USB-ID for Multiplex RC serial adapter to cp210x.c
  xhci: Clean up 32-bit build warnings.
  USB: update documentation for usbmon
  usb: usb-storage doesn't support dynamic id currently, the patch disables the feature to fix an oops
  drivers/usb/class/cdc-acm.c: clear dangling pointer
  drivers/usb/dwc3/dwc3-pci.c: introduce missing kfree
  drivers/usb/host/isp1760-if.c: introduce missing kfree
  usb: option: add ZD Incorporated HSPA modem
  usb: ch9: fix up MaxStreams helper
  USB: usb-skeleton.c: cleanup open_count
  USB: usb-skeleton.c: fix open/disconnect race
  xhci: Properly handle COMP_2ND_BW_ERR
  USB: remove dead code from suspend/resume path
  USB: add quirk for another camera
  drivers: usb: wusbcore: Fix dependency for USB_WUSB
  xhci: Better debugging for critical host errors.
  xhci: Be less verbose during URB cancellation.
  xhci: Remove debugging about ring structure allocation.
  xhci: Remove debugging about toggling cycle bits.
  xhci: Remove debugging for individual transfers.
  ...
</pre>
</div>
</content>
</entry>
<entry>
<title>usb: usb-storage doesn't support dynamic id currently, the patch disables the feature to fix an oops</title>
<updated>2012-01-05T00:04:30+00:00</updated>
<author>
<name>Huajun Li</name>
<email>huajun.li.lee@gmail.com</email>
</author>
<published>2012-01-04T11:25:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=1a3a026ba1b6bbfe0b7f79ab38cf991d691e7c9a'/>
<id>1a3a026ba1b6bbfe0b7f79ab38cf991d691e7c9a</id>
<content type='text'>
Echo vendor and product number of a non usb-storage device to
usb-storage driver's new_id, then plug in the device to host and you
will find following oops msg, the root cause is usb_stor_probe1()
refers invalid id entry if giving a dynamic id, so just disable the
feature.

[ 3105.018012] general protection fault: 0000 [#1] SMP DEBUG_PAGEALLOC
[ 3105.018062] CPU 0
[ 3105.018075] Modules linked in: usb_storage usb_libusual bluetooth
dm_crypt binfmt_misc snd_hda_codec_analog snd_hda_intel snd_hda_codec
snd_hwdep hp_wmi ppdev sparse_keymap snd_pcm snd_seq_midi snd_rawmidi
snd_seq_midi_event snd_seq snd_timer snd_seq_device psmouse snd
serio_raw tpm_infineon soundcore i915 snd_page_alloc tpm_tis
parport_pc tpm tpm_bios drm_kms_helper drm i2c_algo_bit video lp
parport usbhid hid sg sr_mod sd_mod ehci_hcd uhci_hcd usbcore e1000e
usb_common floppy
[ 3105.018408]
[ 3105.018419] Pid: 189, comm: khubd Tainted: G          I  3.2.0-rc7+
#29 Hewlett-Packard HP Compaq dc7800p Convertible Minitower/0AACh
[ 3105.018481] RIP: 0010:[&lt;ffffffffa045830d&gt;]  [&lt;ffffffffa045830d&gt;]
usb_stor_probe1+0x2fd/0xc20 [usb_storage]
[ 3105.018536] RSP: 0018:ffff880056a3d830  EFLAGS: 00010286
[ 3105.018562] RAX: ffff880065f4e648 RBX: ffff88006bb28000 RCX: 0000000000000000
[ 3105.018597] RDX: ffff88006f23c7b0 RSI: 0000000000000001 RDI: 0000000000000206
[ 3105.018632] RBP: ffff880056a3d900 R08: 0000000000000000 R09: ffff880067365000
[ 3105.018665] R10: 00000000000002ac R11: 0000000000000010 R12: ffff6000b41a7340
[ 3105.018698] R13: ffff880065f4ef60 R14: ffff88006bb28b88 R15: ffff88006f23d270
[ 3105.018733] FS:  0000000000000000(0000) GS:ffff88007a200000(0000)
knlGS:0000000000000000
[ 3105.018773] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[ 3105.018801] CR2: 00007fc99c8c4650 CR3: 0000000001e05000 CR4: 00000000000006f0
[ 3105.018835] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 3105.018870] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[ 3105.018906] Process khubd (pid: 189, threadinfo ffff880056a3c000,
task ffff88005677a400)
[ 3105.018945] Stack:
[ 3105.018959]  0000000000000000 0000000000000000 ffff880056a3d8d0
0000000000000002
[ 3105.019011]  0000000000000000 ffff880056a3d918 ffff880000000000
0000000000000002
[ 3105.019058]  ffff880056a3d8d0 0000000000000012 ffff880056a3d8d0
0000000000000006
[ 3105.019105] Call Trace:
[ 3105.019128]  [&lt;ffffffffa0458cd4&gt;] storage_probe+0xa4/0xe0 [usb_storage]
[ 3105.019173]  [&lt;ffffffffa0097822&gt;] usb_probe_interface+0x172/0x330 [usbcore]
[ 3105.019211]  [&lt;ffffffff815fda67&gt;] driver_probe_device+0x257/0x3b0
[ 3105.019243]  [&lt;ffffffff815fdd43&gt;] __device_attach+0x73/0x90
[ 3105.019272]  [&lt;ffffffff815fdcd0&gt;] ? __driver_attach+0x110/0x110
[ 3105.019303]  [&lt;ffffffff815fb93c&gt;] bus_for_each_drv+0x9c/0xf0
[ 3105.019334]  [&lt;ffffffff815fd6c7&gt;] device_attach+0xf7/0x120
[ 3105.019364]  [&lt;ffffffff815fc905&gt;] bus_probe_device+0x45/0x80
[ 3105.019396]  [&lt;ffffffff815f98a6&gt;] device_add+0x876/0x990
[ 3105.019434]  [&lt;ffffffffa0094e42&gt;] usb_set_configuration+0x822/0x9e0 [usbcore]
[ 3105.019479]  [&lt;ffffffffa00a3492&gt;] generic_probe+0x62/0xf0 [usbcore]
[ 3105.019518]  [&lt;ffffffffa0097a46&gt;] usb_probe_device+0x66/0xb0 [usbcore]
[ 3105.019555]  [&lt;ffffffff815fda67&gt;] driver_probe_device+0x257/0x3b0
[ 3105.019589]  [&lt;ffffffff815fdd43&gt;] __device_attach+0x73/0x90
[ 3105.019617]  [&lt;ffffffff815fdcd0&gt;] ? __driver_attach+0x110/0x110
[ 3105.019648]  [&lt;ffffffff815fb93c&gt;] bus_for_each_drv+0x9c/0xf0
[ 3105.019680]  [&lt;ffffffff815fd6c7&gt;] device_attach+0xf7/0x120
[ 3105.019709]  [&lt;ffffffff815fc905&gt;] bus_probe_device+0x45/0x80
[ 3105.021040] usb usb6: usb auto-resume
[ 3105.021045] usb usb6: wakeup_rh
[ 3105.024849]  [&lt;ffffffff815f98a6&gt;] device_add+0x876/0x990
[ 3105.025086]  [&lt;ffffffffa0088987&gt;] usb_new_device+0x1e7/0x2b0 [usbcore]
[ 3105.025086]  [&lt;ffffffffa008a4d7&gt;] hub_thread+0xb27/0x1ec0 [usbcore]
[ 3105.025086]  [&lt;ffffffff810d5200&gt;] ? wake_up_bit+0x50/0x50
[ 3105.025086]  [&lt;ffffffffa00899b0&gt;] ? usb_remote_wakeup+0xa0/0xa0 [usbcore]
[ 3105.025086]  [&lt;ffffffff810d49b8&gt;] kthread+0xd8/0xf0
[ 3105.025086]  [&lt;ffffffff81939884&gt;] kernel_thread_helper+0x4/0x10
[ 3105.025086]  [&lt;ffffffff8192a8c0&gt;] ? _raw_spin_unlock_irq+0x50/0x80
[ 3105.025086]  [&lt;ffffffff8192b1b4&gt;] ? retint_restore_args+0x13/0x13
[ 3105.025086]  [&lt;ffffffff810d48e0&gt;] ? __init_kthread_worker+0x80/0x80
[ 3105.025086]  [&lt;ffffffff81939880&gt;] ? gs_change+0x13/0x13
[ 3105.025086] Code: 00 48 83 05 cd ad 00 00 01 48 83 05 cd ad 00 00
01 4c 8b ab 30 0c 00 00 48 8b 50 08 48 83 c0 30 48 89 45 a0 4c 89 a3
40 0c 00 00 &lt;41&gt; 0f b6 44 24 10 48 89 55 a8 3c ff 0f 84 b8 04 00 00 48
83 05
[ 3105.025086] RIP  [&lt;ffffffffa045830d&gt;] usb_stor_probe1+0x2fd/0xc20
[usb_storage]
[ 3105.025086]  RSP &lt;ffff880056a3d830&gt;
[ 3105.060037] hub 6-0:1.0: hub_resume
[ 3105.062616] usb usb5: usb auto-resume
[ 3105.064317] ehci_hcd 0000:00:1d.7: resume root hub
[ 3105.094809] ---[ end trace a7919e7f17c0a727 ]---
[ 3105.130069] hub 5-0:1.0: hub_resume
[ 3105.132131] usb usb4: usb auto-resume
[ 3105.132136] usb usb4: wakeup_rh
[ 3105.180059] hub 4-0:1.0: hub_resume
[ 3106.290052] usb usb6: suspend_rh (auto-stop)
[ 3106.290077] usb usb4: suspend_rh (auto-stop)

Signed-off-by: Huajun Li &lt;huajun.li.lee@gmail.com&gt;
Cc: stable &lt;stable@vger.kernel.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>
Echo vendor and product number of a non usb-storage device to
usb-storage driver's new_id, then plug in the device to host and you
will find following oops msg, the root cause is usb_stor_probe1()
refers invalid id entry if giving a dynamic id, so just disable the
feature.

[ 3105.018012] general protection fault: 0000 [#1] SMP DEBUG_PAGEALLOC
[ 3105.018062] CPU 0
[ 3105.018075] Modules linked in: usb_storage usb_libusual bluetooth
dm_crypt binfmt_misc snd_hda_codec_analog snd_hda_intel snd_hda_codec
snd_hwdep hp_wmi ppdev sparse_keymap snd_pcm snd_seq_midi snd_rawmidi
snd_seq_midi_event snd_seq snd_timer snd_seq_device psmouse snd
serio_raw tpm_infineon soundcore i915 snd_page_alloc tpm_tis
parport_pc tpm tpm_bios drm_kms_helper drm i2c_algo_bit video lp
parport usbhid hid sg sr_mod sd_mod ehci_hcd uhci_hcd usbcore e1000e
usb_common floppy
[ 3105.018408]
[ 3105.018419] Pid: 189, comm: khubd Tainted: G          I  3.2.0-rc7+
#29 Hewlett-Packard HP Compaq dc7800p Convertible Minitower/0AACh
[ 3105.018481] RIP: 0010:[&lt;ffffffffa045830d&gt;]  [&lt;ffffffffa045830d&gt;]
usb_stor_probe1+0x2fd/0xc20 [usb_storage]
[ 3105.018536] RSP: 0018:ffff880056a3d830  EFLAGS: 00010286
[ 3105.018562] RAX: ffff880065f4e648 RBX: ffff88006bb28000 RCX: 0000000000000000
[ 3105.018597] RDX: ffff88006f23c7b0 RSI: 0000000000000001 RDI: 0000000000000206
[ 3105.018632] RBP: ffff880056a3d900 R08: 0000000000000000 R09: ffff880067365000
[ 3105.018665] R10: 00000000000002ac R11: 0000000000000010 R12: ffff6000b41a7340
[ 3105.018698] R13: ffff880065f4ef60 R14: ffff88006bb28b88 R15: ffff88006f23d270
[ 3105.018733] FS:  0000000000000000(0000) GS:ffff88007a200000(0000)
knlGS:0000000000000000
[ 3105.018773] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[ 3105.018801] CR2: 00007fc99c8c4650 CR3: 0000000001e05000 CR4: 00000000000006f0
[ 3105.018835] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 3105.018870] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[ 3105.018906] Process khubd (pid: 189, threadinfo ffff880056a3c000,
task ffff88005677a400)
[ 3105.018945] Stack:
[ 3105.018959]  0000000000000000 0000000000000000 ffff880056a3d8d0
0000000000000002
[ 3105.019011]  0000000000000000 ffff880056a3d918 ffff880000000000
0000000000000002
[ 3105.019058]  ffff880056a3d8d0 0000000000000012 ffff880056a3d8d0
0000000000000006
[ 3105.019105] Call Trace:
[ 3105.019128]  [&lt;ffffffffa0458cd4&gt;] storage_probe+0xa4/0xe0 [usb_storage]
[ 3105.019173]  [&lt;ffffffffa0097822&gt;] usb_probe_interface+0x172/0x330 [usbcore]
[ 3105.019211]  [&lt;ffffffff815fda67&gt;] driver_probe_device+0x257/0x3b0
[ 3105.019243]  [&lt;ffffffff815fdd43&gt;] __device_attach+0x73/0x90
[ 3105.019272]  [&lt;ffffffff815fdcd0&gt;] ? __driver_attach+0x110/0x110
[ 3105.019303]  [&lt;ffffffff815fb93c&gt;] bus_for_each_drv+0x9c/0xf0
[ 3105.019334]  [&lt;ffffffff815fd6c7&gt;] device_attach+0xf7/0x120
[ 3105.019364]  [&lt;ffffffff815fc905&gt;] bus_probe_device+0x45/0x80
[ 3105.019396]  [&lt;ffffffff815f98a6&gt;] device_add+0x876/0x990
[ 3105.019434]  [&lt;ffffffffa0094e42&gt;] usb_set_configuration+0x822/0x9e0 [usbcore]
[ 3105.019479]  [&lt;ffffffffa00a3492&gt;] generic_probe+0x62/0xf0 [usbcore]
[ 3105.019518]  [&lt;ffffffffa0097a46&gt;] usb_probe_device+0x66/0xb0 [usbcore]
[ 3105.019555]  [&lt;ffffffff815fda67&gt;] driver_probe_device+0x257/0x3b0
[ 3105.019589]  [&lt;ffffffff815fdd43&gt;] __device_attach+0x73/0x90
[ 3105.019617]  [&lt;ffffffff815fdcd0&gt;] ? __driver_attach+0x110/0x110
[ 3105.019648]  [&lt;ffffffff815fb93c&gt;] bus_for_each_drv+0x9c/0xf0
[ 3105.019680]  [&lt;ffffffff815fd6c7&gt;] device_attach+0xf7/0x120
[ 3105.019709]  [&lt;ffffffff815fc905&gt;] bus_probe_device+0x45/0x80
[ 3105.021040] usb usb6: usb auto-resume
[ 3105.021045] usb usb6: wakeup_rh
[ 3105.024849]  [&lt;ffffffff815f98a6&gt;] device_add+0x876/0x990
[ 3105.025086]  [&lt;ffffffffa0088987&gt;] usb_new_device+0x1e7/0x2b0 [usbcore]
[ 3105.025086]  [&lt;ffffffffa008a4d7&gt;] hub_thread+0xb27/0x1ec0 [usbcore]
[ 3105.025086]  [&lt;ffffffff810d5200&gt;] ? wake_up_bit+0x50/0x50
[ 3105.025086]  [&lt;ffffffffa00899b0&gt;] ? usb_remote_wakeup+0xa0/0xa0 [usbcore]
[ 3105.025086]  [&lt;ffffffff810d49b8&gt;] kthread+0xd8/0xf0
[ 3105.025086]  [&lt;ffffffff81939884&gt;] kernel_thread_helper+0x4/0x10
[ 3105.025086]  [&lt;ffffffff8192a8c0&gt;] ? _raw_spin_unlock_irq+0x50/0x80
[ 3105.025086]  [&lt;ffffffff8192b1b4&gt;] ? retint_restore_args+0x13/0x13
[ 3105.025086]  [&lt;ffffffff810d48e0&gt;] ? __init_kthread_worker+0x80/0x80
[ 3105.025086]  [&lt;ffffffff81939880&gt;] ? gs_change+0x13/0x13
[ 3105.025086] Code: 00 48 83 05 cd ad 00 00 01 48 83 05 cd ad 00 00
01 4c 8b ab 30 0c 00 00 48 8b 50 08 48 83 c0 30 48 89 45 a0 4c 89 a3
40 0c 00 00 &lt;41&gt; 0f b6 44 24 10 48 89 55 a8 3c ff 0f 84 b8 04 00 00 48
83 05
[ 3105.025086] RIP  [&lt;ffffffffa045830d&gt;] usb_stor_probe1+0x2fd/0xc20
[usb_storage]
[ 3105.025086]  RSP &lt;ffff880056a3d830&gt;
[ 3105.060037] hub 6-0:1.0: hub_resume
[ 3105.062616] usb usb5: usb auto-resume
[ 3105.064317] ehci_hcd 0000:00:1d.7: resume root hub
[ 3105.094809] ---[ end trace a7919e7f17c0a727 ]---
[ 3105.130069] hub 5-0:1.0: hub_resume
[ 3105.132131] usb usb4: usb auto-resume
[ 3105.132136] usb usb4: wakeup_rh
[ 3105.180059] hub 4-0:1.0: hub_resume
[ 3106.290052] usb usb6: suspend_rh (auto-stop)
[ 3106.290077] usb usb4: suspend_rh (auto-stop)

Signed-off-by: Huajun Li &lt;huajun.li.lee@gmail.com&gt;
Cc: stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>usb_storage: don't use set_freezable_with_signal()</title>
<updated>2011-11-21T20:32:26+00:00</updated>
<author>
<name>Tejun Heo</name>
<email>tj@kernel.org</email>
</author>
<published>2011-11-21T20:32:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=ec012476af73a1a8a82565a915e9b48c2e337878'/>
<id>ec012476af73a1a8a82565a915e9b48c2e337878</id>
<content type='text'>
The current implementation of set_freezable_with_signal() is buggy and
tricky to get right.  usb-storage is the only user and its use can be
avoided trivially.

All usb-storage wants is to be able to sleep with timeout and get
woken up if freezing() becomes true.  This can be trivially
implemented by doing interruptible wait w/ freezing() included in the
wait condition.  There's no reason to use set_freezable_with_signal().

Perform interruptible wait on freezing() instead of using
set_freezable_with_signal(), which is scheduled for removal.

Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Cc: Oleg Nesterov &lt;oleg@redhat.com&gt;
Cc: "Rafael J. Wysocki" &lt;rjw@sisk.pl&gt;
Cc: Seth Forshee &lt;seth.forshee@canonical.com&gt;
Cc: Alan Stern &lt;stern@rowland.harvard.edu&gt;
Cc: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The current implementation of set_freezable_with_signal() is buggy and
tricky to get right.  usb-storage is the only user and its use can be
avoided trivially.

All usb-storage wants is to be able to sleep with timeout and get
woken up if freezing() becomes true.  This can be trivially
implemented by doing interruptible wait w/ freezing() included in the
wait condition.  There's no reason to use set_freezable_with_signal().

Perform interruptible wait on freezing() instead of using
set_freezable_with_signal(), which is scheduled for removal.

Signed-off-by: Tejun Heo &lt;tj@kernel.org&gt;
Cc: Oleg Nesterov &lt;oleg@redhat.com&gt;
Cc: "Rafael J. Wysocki" &lt;rjw@sisk.pl&gt;
Cc: Seth Forshee &lt;seth.forshee@canonical.com&gt;
Cc: Alan Stern &lt;stern@rowland.harvard.edu&gt;
Cc: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</pre>
</div>
</content>
</entry>
</feed>
