projects
/
GitHub
/
moto-9609
/
android_kernel_motorola_exynos9610.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
1fb7f12
)
usb: gadget: f_loopback: fix the warning during the enumeration
author
Peter Chen
<peter.chen@freescale.com>
Tue, 3 Nov 2015 07:57:38 +0000
(15:57 +0800)
committer
Felipe Balbi
<balbi@ti.com>
Tue, 17 Nov 2015 17:35:47 +0000
(11:35 -0600)
The current code tries to allocate memory with GFP_KERNEL at
interrupt context, it would show below warning during the enumeration
when I test it with chipidea hardware, change GFP flag as GFP_ATOMIC
can fix this issue.
[ 40.438237] zero gadget: high-speed config #2: loopback
[ 40.444924] ------------[ cut here ]------------
[ 40.449609] WARNING: CPU: 0 PID: 0 at kernel/locking/lockdep.c:2755 lockdep_trace_alloc+0x108/0x128()
[ 40.461715] DEBUG_LOCKS_WARN_ON(irqs_disabled_flags(flags))
[ 40.467130] Modules linked in:
[ 40.470216] usb_f_ss_lb g_zero libcomposite evbug
[ 40.473822] CPU: 0 PID: 0 Comm: swapper/0 Not tainted
4.3.0-rc5-00168-gb730aaf
#604
[ 40.481496] Hardware name: Freescale i.MX6 SoloX (Device Tree)
[ 40.487345] Backtrace:
[ 40.489857] [<
80014e94
>] (dump_backtrace) from [<
80015088
>] (show_stack+0x18/0x1c)
[ 40.497445] r6:
80b67a80
r5:
00000000
r4:
00000000
r3:
00000000
[ 40.503234] [<
80015070
>] (show_stack) from [<
802e27b4
>] (dump_stack+0x8c/0xa4)
[ 40.510503] [<
802e2728
>] (dump_stack) from [<
8002cfe8
>] (warn_slowpath_common+0x80/0xbc)
[ 40.518612] r6:
8007510c
r5:
00000009
r4:
80b49c88
r3:
00000001
[ 40.524396] [<
8002cf68
>] (warn_slowpath_common) from [<
8002d05c
>] (warn_slowpath_fmt+0x38/0x40)
[ 40.533109] r8:
bcfdef80
r7:
bdb705cc
r6:
000080d0
r5:
be001e80
r4:
809cc278
[ 40.539965] [<
8002d028
>] (warn_slowpath_fmt) from [<
8007510c
>] (lockdep_trace_alloc+0x108/0x128)
[ 40.548766] r3:
809d0128
r2:
809cc278
[ 40.552401] r4:
600b0193
[ 40.554990] [<
80075004
>] (lockdep_trace_alloc) from [<
801093d4
>] (kmem_cache_alloc+0x28/0x15c)
[ 40.563618] r4:
000080d0
r3:
80b4aa8c
[ 40.567270] [<
801093ac
>] (kmem_cache_alloc) from [<
804d95e4
>] (ep_alloc_request+0x58/0x68)
[ 40.575550] r10:
7f01f104
r9:
00000001
r8:
bcfdef80
r7:
bdb705cc
r6:
bc178700
r5:
00000000
[ 40.583512] r4:
bcfdef80
r3:
813c0a38
[ 40.587183] [<
804d958c
>] (ep_alloc_request) from [<
7f01f7ec
>] (loopback_set_alt+0x114/0x21c [usb_f_ss_lb])
[ 40.596929] [<
7f01f6d8
>] (loopback_set_alt [usb_f_ss_lb]) from [<
7f006910
>] (composite_setup+0xbd0/0x17e8 [libcomposite])
[ 40.607902] r10:
bd3a2c0c
r9:
00000000
r8:
bcfdef80
r7:
bc178700
r6:
bdb702d0
r5:
bcfdefdc
[ 40.615866] r4:
7f0199b4
r3:
00000002
[ 40.619542] [<
7f005d40
>] (composite_setup [libcomposite]) from [<
804dae88
>] (udc_irq+0x784/0xd1c)
[ 40.628431] r10:
80bb5619
r9:
c0876140
r8:
00012001
r7:
bdb71010
r6:
bdb70568
r5:
00010001
[ 40.636392] r4:
bdb70014
[ 40.638985] [<
804da704
>] (udc_irq) from [<
804d64f8
>] (ci_irq+0x5c/0x118)
[ 40.645702] r10:
80bb5619
r9:
be11e000
r8:
00000117
r7:
00000000
r6:
bdb71010
r5:
be11e060
[ 40.653666] r4:
bdb70010
[ 40.656261] [<
804d649c
>] (ci_irq) from [<
8007f638
>] (handle_irq_event_percpu+0x7c/0x13c)
[ 40.664367] r6:
00000000
r5:
be11e060
r4:
bdb05cc0
r3:
804d649c
[ 40.670149] [<
8007f5bc
>] (handle_irq_event_percpu) from [<
8007f740
>] (handle_irq_event+0x48/0x6c)
[ 40.679036] r10:
00000000
r9:
be008000
r8:
00000001
r7:
00000000
r6:
bdb05cc0
r5:
be11e060
[ 40.686998] r4:
be11e000
[ 40.689581] [<
8007f6f8
>] (handle_irq_event) from [<
80082850
>] (handle_fasteoi_irq+0xd4/0x1b0)
[ 40.698120] r6:
80b56a30
r5:
be11e060
r4:
be11e000
r3:
00000000
[ 40.703898] [<
8008277c
>] (handle_fasteoi_irq) from [<
8007ec04
>] (generic_handle_irq+0x28/0x3c)
[ 40.712524] r7:
00000000
r6:
80b4aaf4
r5:
00000117
r4:
80b445fc
[ 40.718304] [<
8007ebdc
>] (generic_handle_irq) from [<
8007ef20
>] (__handle_domain_irq+0x6c/0xe8)
[ 40.727033] [<
8007eeb4
>] (__handle_domain_irq) from [<
800095d4
>] (gic_handle_irq+0x48/0x94)
[ 40.735402] r9:
c080f100
r8:
80b4ac6c
r7:
c080e100
r6:
80b67d40
r5:
80b49f00
r4:
c080e10c
[ 40.743290] [<
8000958c
>] (gic_handle_irq) from [<
80015d38
>] (__irq_svc+0x58/0x78)
[ 40.750791] Exception stack(0x80b49f00 to 0x80b49f48)
[ 40.755873] 9f00:
00000001
00000001
00000000
80024320
80b48000
80b4a9d0
80b4a984
80b433e4
[ 40.764078] 9f20:
00000001
807f4680
00000000
80b49f5c
80b49f20
80b49f50
80071ca4
800113fc
[ 40.772272] 9f40:
200b0013
ffffffff
[ 40.775776] r9:
807f4680
r8:
00000001
r7:
80b49f34
r6:
ffffffff
r5:
200b0013
r4:
800113fc
[ 40.783677] [<
800113d4
>] (arch_cpu_idle) from [<
8006c5bc
>] (default_idle_call+0x28/0x38)
[ 40.791798] [<
8006c594
>] (default_idle_call) from [<
8006c6dc
>] (cpu_startup_entry+0x110/0x1b0)
[ 40.800445] [<
8006c5cc
>] (cpu_startup_entry) from [<
807e95dc
>] (rest_init+0x12c/0x168)
[ 40.808376] r7:
80b4a8c0
r3:
807f4b7c
[ 40.812030] [<
807e94b0
>] (rest_init) from [<
80ad7cc0
>] (start_kernel+0x360/0x3d4)
[ 40.819528] r5:
80bcb000
r4:
80bcb050
[ 40.823171] [<
80ad7960
>] (start_kernel) from [<
8000807c
>] (0x8000807c)
It fixes commit
91c42b0da8e3
("usb: gadget: loopback: Fix looping back
logic implementation").
Cc: <stable@vger.kernel.org> # v3.18+
Signed-off-by: Peter Chen <peter.chen@freescale.com>
Reviewed-by: Krzysztof Opasiak <k.opasiak@samsung.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/gadget/function/f_loopback.c
patch
|
blob
|
blame
|
history
diff --git
a/drivers/usb/gadget/function/f_loopback.c
b/drivers/usb/gadget/function/f_loopback.c
index 23933bdf2d9d6cebc66750050ba704c9a20d109c..ddc3aad886b7457dd0ab4c79587104b474889ca0 100644
(file)
--- a/
drivers/usb/gadget/function/f_loopback.c
+++ b/
drivers/usb/gadget/function/f_loopback.c
@@
-329,7
+329,7
@@
static int alloc_requests(struct usb_composite_dev *cdev,
for (i = 0; i < loop->qlen && result == 0; i++) {
result = -ENOMEM;
- in_req = usb_ep_alloc_request(loop->in_ep, GFP_
KERNEL
);
+ in_req = usb_ep_alloc_request(loop->in_ep, GFP_
ATOMIC
);
if (!in_req)
goto fail;