Gavin Shan
ffe5adcb76
drivers/usb: Delete XHCI command timer if necessary
...
When xhci_mem_cleanup() is called, it's possible that the command
timer isn't initialized and scheduled. For those cases, to delete
the command timer causes soft-lockup as below stack dump shows.
The patch avoids deleting the command timer if it's not scheduled
with the help of timer_pending().
NMI watchdog: BUG: soft lockup - CPU#40 stuck for 23s! [kworker/40:1:8140]
:
NIP [c000000000150b30] lock_timer_base.isra.34+0x90/0xa0
LR [c000000000150c24] try_to_del_timer_sync+0x34/0xa0
Call Trace:
[c000000f67c975e0] [c0000000015b84f8] mon_ops+0x0/0x8 (unreliable)
[c000000f67c97620] [c000000000150c24] try_to_del_timer_sync+0x34/0xa0
[c000000f67c97660] [c000000000150cf0] del_timer_sync+0x60/0x80
[c000000f67c97690] [c00000000070ac0c] xhci_mem_cleanup+0x5c/0x5e0
[c000000f67c97740] [c00000000070c2e8] xhci_mem_init+0x1158/0x13b0
[c000000f67c97860] [c000000000700978] xhci_init+0x88/0x110
[c000000f67c978e0] [c000000000701644] xhci_gen_setup+0x2b4/0x590
[c000000f67c97970] [c0000000006d4410] xhci_pci_setup+0x40/0x190
[c000000f67c979f0] [c0000000006b1af8] usb_add_hcd+0x418/0xba0
[c000000f67c97ab0] [c0000000006cb15c] usb_hcd_pci_probe+0x1dc/0x5c0
[c000000f67c97b50] [c0000000006d3ba4] xhci_pci_probe+0x64/0x1f0
[c000000f67c97ba0] [c0000000004fe9ac] local_pci_probe+0x6c/0x130
[c000000f67c97c30] [c0000000000e5ce8] work_for_cpu_fn+0x38/0x60
[c000000f67c97c60] [c0000000000eacb8] process_one_work+0x198/0x470
[c000000f67c97cf0] [c0000000000eb6ac] worker_thread+0x37c/0x5a0
[c000000f67c97d80] [c0000000000f2730] kthread+0x110/0x130
[c000000f67c97e30] [c000000000009660] ret_from_kernel_thread+0x5c/0x7c
Cc: <stable@vger.kernel.org>
Reported-by: Priya M. A <priyama2@in.ibm.com>
Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-08-03 14:41:48 -07:00
..
2015-03-18 16:56:40 +01:00
2015-02-11 14:38:28 -08:00
2015-03-18 13:28:35 +01:00
2015-05-10 16:01:10 +02:00
2014-12-14 16:10:09 -08:00
2015-05-24 09:29:36 -07:00
2015-01-09 12:31:53 -08:00
2015-05-31 16:14:07 +09:00
2015-05-31 16:14:07 +09:00
2014-07-09 16:16:07 -07:00
2015-04-28 12:51:30 +02:00
2014-11-07 09:01:50 -08:00
2014-11-07 09:01:50 -08:00
2013-12-08 18:06:46 -08:00
2015-03-26 10:50:52 +01:00
2015-02-03 15:28:31 -08:00
2015-06-03 14:13:41 +09:00
2015-01-09 12:31:53 -08:00
2015-01-09 12:31:53 -08:00
2013-12-08 18:06:46 -08:00
2013-12-03 10:34:33 -08:00
2015-01-09 09:58:49 -08:00
2015-01-09 12:31:53 -08:00
2015-01-09 12:31:53 -08:00
2014-11-07 09:01:51 -08:00
2014-09-23 21:35:50 -07:00
2014-11-20 14:56:11 +01:00
2015-05-08 01:43:44 +02:00
2015-01-09 12:31:53 -08:00
2014-12-14 16:10:09 -08:00
2015-01-09 12:31:53 -08:00
2015-05-31 16:14:07 +09:00
2014-07-09 16:13:03 -07:00
2014-10-20 16:21:49 +02:00
2015-04-03 19:03:19 +02:00
2015-04-10 13:45:27 +02:00
2014-11-07 09:02:38 -08:00
2015-05-31 15:51:24 +09:00
2015-05-10 16:01:10 +02:00
2014-11-07 09:02:38 -08:00
2014-11-03 15:26:15 -08:00
2013-12-03 10:34:33 -08:00
2015-04-03 19:03:18 +02:00
2013-12-03 10:34:33 -08:00
2015-05-10 16:01:11 +02:00
2015-04-03 19:03:18 +02:00
2015-06-27 12:44:34 -07:00
2015-05-24 09:29:36 -07:00
2015-04-03 19:03:18 +02:00
2015-03-26 10:54:01 +01:00
2015-01-09 12:31:53 -08:00
2015-05-10 16:01:11 +02:00
2014-12-14 16:10:09 -08:00
2015-05-10 16:01:11 +02:00
2015-04-03 19:03:17 +02:00
2015-01-09 12:31:53 -08:00
2014-07-18 16:34:07 -07:00
2014-10-20 16:21:49 +02:00
2013-12-08 18:06:46 -08:00
2014-12-14 16:10:09 -08:00
2014-05-03 17:58:46 -04:00
2015-05-11 21:42:25 +05:30
2015-01-09 12:31:53 -08:00
2013-12-08 18:06:46 -08:00
2014-12-14 16:10:09 -08:00
2015-07-22 14:46:50 -07:00
2015-01-25 21:01:13 +08:00
2013-12-08 18:06:46 -08:00
2015-01-09 12:31:53 -08:00
2014-12-14 16:10:09 -08:00
2014-09-23 21:35:50 -07:00
2015-01-09 12:31:53 -08:00
2015-07-22 14:49:42 -07:00
2014-11-03 15:38:17 -08:00
2015-04-10 13:45:27 +02:00
2015-01-31 09:05:06 -08:00
2014-05-27 16:25:32 -07:00
2015-04-10 13:45:27 +02:00
2014-01-08 15:01:39 -08:00
2015-04-10 13:45:27 +02:00
2015-06-08 14:26:22 -07:00
2015-04-03 19:03:16 +02:00
2013-12-03 10:34:33 -08:00
2015-01-09 12:31:53 -08:00
2014-07-09 16:16:07 -07:00
2015-04-10 13:45:27 +02:00
2013-12-04 16:58:47 -08:00
2015-01-09 12:31:53 -08:00
2015-01-09 10:05:47 -08:00
2015-07-22 14:19:37 -07:00
2015-08-03 14:41:48 -07:00
2014-05-27 15:40:40 -07:00
2014-05-27 15:40:40 -07:00
2015-07-22 14:19:36 -07:00
2015-05-31 15:45:31 +09:00
2014-07-09 15:49:10 -07:00
2014-07-09 15:49:10 -07:00
2015-08-03 14:41:48 -07:00
2014-10-03 14:44:45 -07:00
2015-04-07 12:31:55 -04:00
2015-07-22 14:19:36 -07:00
2015-07-22 14:19:37 -07:00