Hello,
I use a 'USB controller: PLX Technology, Inc. Device 3380 (rev ab)' for
a custom usb gadget.
With a more recent kernel (4.12+) the cpu hangs and the gadget device is
not functioning at all.
I used git-bisect and a basic test gadget from the kernel tree
(tools/usb/ffs-aio-example/simple/device_app/aio_simple.c) to find the
first
bad commit: f16443a034c7aa359ddf6f0f9bc40d01ca31faea
The bug still occurs with 4.18.0-rc7+.
Steps to reproduce:
1. Compile and run the testtool
'tools/usb/ffs-aio-example/simple/device_app/aio_simple.c'
2. Connect with a host system
3. Disconnect from host system
4. Kernel suffers CPU lockups
Shell output:
---
$ ./a.out /dev/usb_gadget/aio_simple_gadget
Event Bind
Event Enable <- connected to host
submit: in
submit: out
Event Suspend <- disconnected from host
---hangs--- <- Event Disable is missing
---
Dmesg:
---
Sending NMI from CPU 0 to CPUs 1:
NMI backtrace for cpu 1
CPU: 1 PID: 0 Comm: swapper/1 Not tainted 4.18.0-rc7+ #1
Hardware name: To be filled by O.E.M. To be filled by O.E.M./'TA32',
BIOS TA32R020 03/25/2015
RIP: 0010:native_queued_spin_lock_slowpath+0x149/0x1c0
Code: eb e5 8b 0f 89 ca 89 c8 80 ce 01 f0 0f b1 17 0f 94 c2 84 d2 74 7b
f7 c1 00 ff ff ff 75 48 85 c9 74 0e 8b 07 84 c0 74 08 f3 90 <8b> 07 84
c0 75 f8 b8 01 00 00 00 66 89 07 c3 8b 17 b8 00 02 00 00
RSP: 0018:ffff95c579083d88 EFLAGS: 00000002
RAX: 0000000000000101 RBX: 0000000000000083 RCX: 0000000000000001
RDX: 0000000000000101 RSI: 0000000000000000 RDI: ffff95c575f38358
RBP: ffff95c575f38400 R08: 0000000000000000 R09: 0000000000000000
R10: ffff95c579083c10 R11: 0000000000000006 R12: 0000000000000000
R13: ffff95c536844c10 R14: 0000000000000086 R15: 0000000000000000
FS: 0000000000000000(0000) GS:ffff95c579080000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000562f27fc38bc CR3: 000000001a00a000 CR4: 00000000001006e0
Call Trace:
<IRQ>
_raw_spin_lock_irqsave+0x32/0x40
net2280_disable+0x3f/0xe0 [net2280]
usb_ep_disable+0x79/0x90 [udc_core]
ffs_func_eps_disable.isra.16+0x4e/0x90 [usb_f_fs]
ffs_func_set_alt+0x96/0x2c0 [usb_f_fs]
? scan_dma_completions+0xd6/0x1d0 [net2280]
reset_config+0x38/0xa0 [libcomposite]
composite_disconnect+0x31/0x60 [libcomposite]
stop_activity+0x5c/0x80 [net2280]
net2280_irq+0xb7/0x11c0 [net2280]
__handle_irq_event_percpu+0x81/0x1a0
handle_irq_event_percpu+0x30/0x80
handle_irq_event+0x3c/0x60
handle_edge_irq+0x94/0x1f0
handle_irq+0x1f/0x30
do_IRQ+0x41/0xd0
common_interrupt+0xf/0xf
</IRQ>
RIP: 0010:cpuidle_enter_state+0x10d/0x270
Code: e8 f8 fd b2 ff 44 8b 6b 04 49 89 c7 0f 1f 44 00 00 31 ff e8 95 08
b3 ff 80 7c 24 07 00 0f 85 de 00 00 00 fb 66 0f 1f 44 00 00 <4d> 29 f7
48 ba cf f7 53 e3 a5 9b c4 20 4c 89 f8 4d 89 fc 48 f7 ea
RSP: 0018:ffffa10e80393e88 EFLAGS: 00000246 ORIG_RAX: ffffffffffffffdb
RAX: ffff95c5790a20c0 RBX: ffff95c5790aa200 RCX: 000000000000001f
RDX: 0000000000000000 RSI: 000000dcb565c18b RDI: 0000000000000000
RBP: 0000000000000003 R08: fffffffbe16f1f40 R09: 0000006f1db87e00
R10: 00000000000004ed R11: ffff95c5790a0fe8 R12: ffffffffa6cbf580
R13: 0000000000000001 R14: 0000006f14016b16 R15: 0000006f140e6066
? cpuidle_enter_state+0xfb/0x270
do_idle+0x226/0x2a0
cpu_startup_entry+0x6f/0x80
start_secondary+0x1a4/0x200
secondary_startup_64+0xa5/0xb0
INFO: rcu_sched detected stalls on CPUs/tasks:
1-...0: (2 GPs behind) idle=3de/0/1 softirq=7741/7742 fqs=10502
(detected by 0, t=21007 jiffies, g=6361, c=6360, q=905)
---
Architecture: x86-64
Kernel Version: 4.18.0-rc7+ build from master
Thanks.
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html