projects
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
2186bdf
)
MLK-22366-6 usb: cdns3: gadget: do not call disconnect if it is not configured
author
Peter Chen
<peter.chen@nxp.com>
Wed, 7 Aug 2019 01:47:06 +0000
(09:47 +0800)
committer
Peter Chen
<peter.chen@nxp.com>
Fri, 30 Aug 2019 08:17:19 +0000
(16:17 +0800)
Fix below oops:
init: Received control message 'start' for 'adbd' from pid: 3359 (/vendor/bin/hw/android.hardware.usb@1.1-service.imx)
init: starting service 'adbd'...
init: Created socket '/dev/socket/adbd', mode 660, user 1000, group 1000
read descriptors
read strings
android_work: did not send uevent (0 0 (null))
android_work: sent uevent USB_STATE=CONNECTED
android_work: sent uevent USB_STATE=DISCONNECTED
configfs-gadget gadget: high-speed config #1: b
android_work: sent uevent USB_STATE=CONNECTED
android_work: sent uevent USB_STATE=CONFIGURED
init: Received control message 'start' for 'adbd' from pid: 3499 (system_server)
init: Received control message 'stop' for 'adbd' from pid: 3359 (/vendor/bin/hw/android.hardware.usb@1.1-service.imx)
android_work: sent uevent USB_STATE=DISCONNECTED
audit: audit_lost=179935 audit_rate_limit=5 audit_backlog_limit=64
audit: rate limit exceeded
read descriptors
read strings
android_work: did not send uevent (0 0 (null))
audit: audit_lost=179970 audit_rate_limit=5 audit_backlog_limit=64
audit: rate limit exceeded
using random self ethernet address
using random host ethernet address
read descriptors
read strings
usb0: HOST MAC f2:80:c5:eb:a1:fd
usb0: MAC 92:da:4f:13:01:73
android_work: did not send uevent (0 0 (null))
audit: audit_lost=180005 audit_rate_limit=5 audit_backlog_limit=64
audit: rate limit exceeded
read descriptors
read strings
android_work: did not send uevent (0 0 (null))
android_work: sent uevent USB_STATE=CONNECTED
android_work: sent uevent USB_STATE=DISCONNECTED
init: Received control message 'start' for 'adbd' from pid: 3499 (system_server)
composite_disconnect: Calling disconnect on a Gadget that is not connected
android_work: did not send uevent (0 0 (null))
init: Received control message 'stop' for 'adbd' from pid: 3359 (/vendor/bin/hw/android.hardware.usb@1.1-service.imx)
init: Sending signal 9 to service 'adbd' (pid 22343) process group...
------------[ cut here ]------------
audit: audit_lost=180038 audit_rate_limit=5 audit_backlog_limit=64
audit: rate limit exceeded
WARNING: CPU: 0 PID: 3468 at /home/tianyang/maddev_pie9.0/vendor/nxp-opensource/kernel_imx/drivers/usb/gadget/composite.c:2009 composite_disconnect+0x80/0x88
Modules linked in:
CPU: 0 PID: 3468 Comm: HWC-UEvent-Thre Not tainted
4.14.98-07846-g0b40a9b
-dirty #16
Hardware name: Freescale i.MX8QM MEK (DT)
task:
ffff8008f2349c00
task.stack:
ffff00000b0a8000
PC is at composite_disconnect+0x80/0x88
LR is at composite_disconnect+0x80/0x88
pc : [<
ffff0000089ff9b0
>] lr : [<
ffff0000089ff9b0
>] pstate:
600001c5
sp :
ffff000008003dd0
x29:
ffff000008003dd0
x28:
ffff8008f2349c00
x27:
ffff000009885018
x26:
ffff000008004000
Timeout for IPC response!
x25:
ffff000009885018
x24:
ffff000009c8e280
x23:
ffff8008f2d98010
x22:
00000000000001c0
x21:
ffff8008f2d98394
x20:
ffff8008f2d98010
x19:
0000000000000000
x18:
0000e3956f4f075a
fxos8700 4-001e: i2c block read acc failed
x17:
0000e395735727e8
x16:
ffff00000829f4d4
x15:
ffffffffffffffff
x14:
7463656e6e6f6320
x13:
746f6e2009090920
x12:
7369207461687420
x11:
7465676461472061
x10:
206e6f207463656e
x9 :
6e6f637369642067
x8 :
ffff000009c8e280
x7 :
ffff0000086ca6cc
x6 :
ffff000009f15e78
x5 :
0000000000000000
x4 :
0000000000000000
x3 :
ffffffffffffffff
x2 :
c3f28b86000c3900
x1 :
c3f28b86000c3900
x0 :
000000000000004e
X20: 0xffff8008f2d97f90:
7f90
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
7fb0
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
libprocessgroup: Failed to kill process cgroup uid 0 pid 22343 in 215ms, 1 processes remain
7fd0
Timeout for IPC response!
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
using random self ethernet address
7ff0
00000000
00000000
00000000
00000000
f76c8010
ffff8008
f76c8010
ffff8008
8010
00000100
00000000
f2d98018
ffff8008
f2d98018
ffff8008
08a067dc
using random host ethernet address
ffff0000
8030
f206d800
ffff8008
091c3650
ffff0000
f7957b18
ffff8008
f7957730
ffff8008
8050
f716a630
ffff8008
00000000
00000005
00000000
00000000
095d1568
ffff0000
8070
f76c8010
ffff8008
f716a800
ffff8008
095cac68
ffff0000
f206d828
ffff8008
X21: 0xffff8008f2d98314:
8314
ffff8008
00000000
00000000
00000000
00000000
00000000
00000000
00000000
8334
00000000
00000000
00000000
00000000
00000000
08a04cf4
ffff0000
00000000
8354
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
8374
00000000
00000000
00000000
00001001
00000000
00000000
00000000
00000000
8394
e4bbe4bb
0f230000
ffff0000
0afae000
ffff0000
ae001000
00000000
f206d400
Timeout for IPC response!
83b4
ffff8008
00000000
00000000
f7957b18
ffff8008
f7957718
ffff8008
f7957018
83d4
ffff8008
f7957118
ffff8008
f7957618
ffff8008
f7957818
ffff8008
f7957918
83f4
ffff8008
f7957d18
ffff8008
00000000
00000000
00000000
00000000
00000000
X23: 0xffff8008f2d97f90:
7f90
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
7fb0
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
7fd0
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
7ff0
00000000
00000000
00000000
00000000
f76c8010
ffff8008
f76c8010
ffff8008
8010
00000100
00000000
f2d98018
ffff8008
f2d98018
ffff8008
08a067dc
ffff0000
8030
f206d800
ffff8008
091c3650
ffff0000
f7957b18
ffff8008
f7957730
ffff8008
8050
f716a630
ffff8008
00000000
00000005
00000000
00000000
095d1568
ffff0000
8070
f76c8010
ffff8008
f716a800
ffff8008
095cac68
ffff0000
f206d828
ffff8008
X28: 0xffff8008f2349b80:
9b80
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
9ba0
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
9bc0
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
9be0
00000000
00000000
00000000
00000000
00000000
00000000
00000000
00000000
9c00
00000022
00000000
ffffffff
ffffffff
00010001
00000000
00000000
00000000
9c20
0b0a8000
ffff0000
00000002
00404040
00000000
00000000
00000000
00000000
9c40
00000001
00000000
00000001
00000000
001ebd44
00000001
f390b800
ffff8008
9c60
00000000
00000001
00000070
00000070
00000070
00000000
09031d48
ffff0000
Call trace:
Exception stack(0xffff000008003c90 to 0xffff000008003dd0)
3c80:
000000000000004e
c3f28b86000c3900
3ca0:
c3f28b86000c3900
ffffffffffffffff
0000000000000000
0000000000000000
3cc0:
ffff000009f15e78
ffff0000086ca6cc
ffff000009c8e280
6e6f637369642067
3ce0:
206e6f207463656e
7465676461472061
7369207461687420
746f6e2009090920
3d00:
7463656e6e6f6320
ffffffffffffffff
ffff00000829f4d4
0000e395735727e8
3d20:
0000e3956f4f075a
0000000000000000
ffff8008f2d98010
ffff8008f2d98394
3d40:
00000000000001c0
ffff8008f2d98010
ffff000009c8e280
ffff000009885018
3d60:
ffff000008004000
ffff000009885018
ffff8008f2349c00
ffff000008003dd0
3d80:
ffff0000089ff9b0
ffff000008003dd0
ffff0000089ff9b0
00000000600001c5
3da0:
ffff8008f33f2cd8
0000000000000000
0000ffffffffffff
0000000000000000
init: Received control message 'start' for 'adbd' from pid: 3359 (/vendor/bin/hw/android.hardware.usb@1.1-service.imx)
3dc0:
ffff000008003dd0
ffff0000089ff9b0
[<
ffff0000089ff9b0
>] composite_disconnect+0x80/0x88
[<
ffff000008a044d4
>] android_disconnect+0x3c/0x68
[<
ffff0000089ba9f8
>] cdns3_device_irq_handler+0xfc/0x2c8
[<
ffff0000089b84c0
>] cdns3_irq+0x44/0x94
[<
ffff00000814494c
>] __handle_irq_event_percpu+0x60/0x24c
[<
ffff000008144c0c
>] handle_irq_event+0x58/0xc0
[<
ffff00000814873c
>] handle_fasteoi_irq+0x98/0x180
[<
ffff000008143a10
>] generic_handle_irq+0x24/0x38
[<
ffff000008144170
>] __handle_domain_irq+0x60/0xac
[<
ffff0000080819c4
>] gic_handle_irq+0xd4/0x17c
Exception stack(0xffff00000b0ab950 to 0xffff00000b0aba90)
Reviewed-by: Jun Li <jun.li@nxp.com>
Signed-off-by: Peter Chen <peter.chen@nxp.com>
drivers/usb/cdns3/gadget.c
patch
|
blob
|
history
diff --git
a/drivers/usb/cdns3/gadget.c
b/drivers/usb/cdns3/gadget.c
index
3a4d651
..
1007fee
100644
(file)
--- a/
drivers/usb/cdns3/gadget.c
+++ b/
drivers/usb/cdns3/gadget.c
@@
-1039,7
+1039,9
@@
static void cdns3_check_usb_interrupt_proceed(struct cdns3_device *priv_dev,
/* Disconnection detected */
if (usb_ists & (USB_ISTS_DIS2I | USB_ISTS_DISI)) {
if (priv_dev->gadget_driver &&
- priv_dev->gadget_driver->disconnect) {
+ priv_dev->gadget_driver->disconnect &&
+ priv_dev->gadget.state ==
+ USB_STATE_CONFIGURED) {
spin_unlock(&priv_dev->lock);
priv_dev->gadget_driver->disconnect(&priv_dev->gadget);
spin_lock(&priv_dev->lock);