Re: [PATCH 1/1] usb: gadget: f_loopback: fix the warning during the enumeration
Hi Krzysztof Opasiak writes: > On 11/16/2015 05:34 PM, Felipe Balbi wrote: >> >> Hi, >> >> Peter Chen writes: >>> 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: r4: r3: >>> [ 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:0009 r4:80b49c88 r3:0001 >>> [ 40.524396] [<8002cf68>] (warn_slowpath_common) from [<8002d05c>] >>> (warn_slowpath_fmt+0x38/0x40) >>> [ 40.533109] r8:bcfdef80 r7:bdb705cc r6:80d0 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:80d0 r3:80b4aa8c >>> [ 40.567270] [<801093ac>] (kmem_cache_alloc) from [<804d95e4>] >>> (ep_alloc_request+0x58/0x68) >>> [ 40.575550] r10:7f01f104 r9:0001 r8:bcfdef80 r7:bdb705cc >>> r6:bc178700 r5: >>> [ 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: r8:bcfdef80 r7:bc178700 >>> r6:bdb702d0 r5:bcfdefdc >>> [ 40.615866] r4:7f0199b4 r3:0002 >>> [ 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:0117 r7: >>> r6:bdb71010 r5:be11e060 >>> [ 40.653666] r4:bdb70010 >>> [ 40.656261] [<804d649c>] (ci_irq) from [<8007f638>] >>> (handle_irq_event_percpu+0x7c/0x13c) >>> [ 40.664367] r6: r5:be11e060 r4:bdb05cc0 r3:804d649c >>> [ 40.670149] [<8007f5bc>] (handle_irq_event_percpu) from [<8007f740>] >>> (handle_irq_event+0x48/0x6c) >>> [ 40.679036] r10: r9:be008000 r8:0001 r7: >>> 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: >>> [ 40.703898] [<8008277c>] (handle_fasteoi_irq) from [<8007ec04>] >>> (generic_handle_irq+0x28/0x3c) >>> [ 40.712524] r7: r6:80b4aaf4 r5:0117 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: 0001 0001 80024320 80b48000 80b4a9d0 >>> 80b4a984 80b433e4 >>> [ 40.764078] 9f20: 0001 807f4680 80b49f5c 80b49f20 80b49f50 >>> 80071ca4 800113fc >>> [ 40.772272] 9f40: 200b0013 >>> [ 40.775776] r9:807f4680 r8:0001 r7:80b49f34 r6: 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) >>> [
Re: [PATCH 1/1] usb: gadget: f_loopback: fix the warning during the enumeration
On 11/16/2015 05:34 PM, Felipe Balbi wrote: Hi, Peter Chen writes: 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: r4: r3: [ 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:0009 r4:80b49c88 r3:0001 [ 40.524396] [<8002cf68>] (warn_slowpath_common) from [<8002d05c>] (warn_slowpath_fmt+0x38/0x40) [ 40.533109] r8:bcfdef80 r7:bdb705cc r6:80d0 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:80d0 r3:80b4aa8c [ 40.567270] [<801093ac>] (kmem_cache_alloc) from [<804d95e4>] (ep_alloc_request+0x58/0x68) [ 40.575550] r10:7f01f104 r9:0001 r8:bcfdef80 r7:bdb705cc r6:bc178700 r5: [ 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: r8:bcfdef80 r7:bc178700 r6:bdb702d0 r5:bcfdefdc [ 40.615866] r4:7f0199b4 r3:0002 [ 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:0117 r7: r6:bdb71010 r5:be11e060 [ 40.653666] r4:bdb70010 [ 40.656261] [<804d649c>] (ci_irq) from [<8007f638>] (handle_irq_event_percpu+0x7c/0x13c) [ 40.664367] r6: r5:be11e060 r4:bdb05cc0 r3:804d649c [ 40.670149] [<8007f5bc>] (handle_irq_event_percpu) from [<8007f740>] (handle_irq_event+0x48/0x6c) [ 40.679036] r10: r9:be008000 r8:0001 r7: 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: [ 40.703898] [<8008277c>] (handle_fasteoi_irq) from [<8007ec04>] (generic_handle_irq+0x28/0x3c) [ 40.712524] r7: r6:80b4aaf4 r5:0117 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: 0001 0001 80024320 80b48000 80b4a9d0 80b4a984 80b433e4 [ 40.764078] 9f20: 0001 807f4680 80b49f5c 80b49f20 80b49f50 80071ca4 800113fc [ 40.772272] 9f40: 200b0013 [ 40.775776] r9:807f4680 r8:0001 r7:80b49f34 r6: 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"). Signed-off-by: Peter Chen Cc: Krzysztof Opasiak Cc: how is this stable material ? this commit was added to v4.4. merge window. Applying without stable tag. Peter added stable tag because my commit 91c
Re: [PATCH 1/1] usb: gadget: f_loopback: fix the warning during the enumeration
Hi, Peter Chen writes: > 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: r4: r3: > [ 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:0009 r4:80b49c88 r3:0001 > [ 40.524396] [<8002cf68>] (warn_slowpath_common) from [<8002d05c>] > (warn_slowpath_fmt+0x38/0x40) > [ 40.533109] r8:bcfdef80 r7:bdb705cc r6:80d0 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:80d0 r3:80b4aa8c > [ 40.567270] [<801093ac>] (kmem_cache_alloc) from [<804d95e4>] > (ep_alloc_request+0x58/0x68) > [ 40.575550] r10:7f01f104 r9:0001 r8:bcfdef80 r7:bdb705cc r6:bc178700 > r5: > [ 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: r8:bcfdef80 r7:bc178700 r6:bdb702d0 > r5:bcfdefdc > [ 40.615866] r4:7f0199b4 r3:0002 > [ 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:0117 r7: r6:bdb71010 > r5:be11e060 > [ 40.653666] r4:bdb70010 > [ 40.656261] [<804d649c>] (ci_irq) from [<8007f638>] > (handle_irq_event_percpu+0x7c/0x13c) > [ 40.664367] r6: r5:be11e060 r4:bdb05cc0 r3:804d649c > [ 40.670149] [<8007f5bc>] (handle_irq_event_percpu) from [<8007f740>] > (handle_irq_event+0x48/0x6c) > [ 40.679036] r10: r9:be008000 r8:0001 r7: 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: > [ 40.703898] [<8008277c>] (handle_fasteoi_irq) from [<8007ec04>] > (generic_handle_irq+0x28/0x3c) > [ 40.712524] r7: r6:80b4aaf4 r5:0117 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: 0001 0001 80024320 80b48000 80b4a9d0 > 80b4a984 80b433e4 > [ 40.764078] 9f20: 0001 807f4680 80b49f5c 80b49f20 80b49f50 > 80071ca4 800113fc > [ 40.772272] 9f40: 200b0013 > [ 40.775776] r9:807f4680 r8:0001 r7:80b49f34 r6: 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"). > > Signed-off-by: Peter Chen > Cc: Krzysztof Opasiak > Cc:
Re: [PATCH 1/1] usb: gadget: f_loopback: fix the warning during the enumeration
On 11/03/2015 08:57 AM, Peter Chen wrote: 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: r4: r3: [ 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:0009 r4:80b49c88 r3:0001 [ 40.524396] [<8002cf68>] (warn_slowpath_common) from [<8002d05c>] (warn_slowpath_fmt+0x38/0x40) [ 40.533109] r8:bcfdef80 r7:bdb705cc r6:80d0 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:80d0 r3:80b4aa8c [ 40.567270] [<801093ac>] (kmem_cache_alloc) from [<804d95e4>] (ep_alloc_request+0x58/0x68) [ 40.575550] r10:7f01f104 r9:0001 r8:bcfdef80 r7:bdb705cc r6:bc178700 r5: [ 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: r8:bcfdef80 r7:bc178700 r6:bdb702d0 r5:bcfdefdc [ 40.615866] r4:7f0199b4 r3:0002 [ 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:0117 r7: r6:bdb71010 r5:be11e060 [ 40.653666] r4:bdb70010 [ 40.656261] [<804d649c>] (ci_irq) from [<8007f638>] (handle_irq_event_percpu+0x7c/0x13c) [ 40.664367] r6: r5:be11e060 r4:bdb05cc0 r3:804d649c [ 40.670149] [<8007f5bc>] (handle_irq_event_percpu) from [<8007f740>] (handle_irq_event+0x48/0x6c) [ 40.679036] r10: r9:be008000 r8:0001 r7: 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: [ 40.703898] [<8008277c>] (handle_fasteoi_irq) from [<8007ec04>] (generic_handle_irq+0x28/0x3c) [ 40.712524] r7: r6:80b4aaf4 r5:0117 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: 0001 0001 80024320 80b48000 80b4a9d0 80b4a984 80b433e4 [ 40.764078] 9f20: 0001 807f4680 80b49f5c 80b49f20 80b49f50 80071ca4 800113fc [ 40.772272] 9f40: 200b0013 [ 40.775776] r9:807f4680 r8:0001 r7:80b49f34 r6: 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"). Signed-off-by: Peter Chen Cc: Krzysztof Opasiak Cc: --- drivers/usb/gadget/function/f_loopback.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/usb/gadget/function/f_loopback.c b/drivers/usb/gadget/fun
[PATCH 1/1] usb: gadget: f_loopback: fix the warning during the enumeration
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: r4: r3: [ 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:0009 r4:80b49c88 r3:0001 [ 40.524396] [<8002cf68>] (warn_slowpath_common) from [<8002d05c>] (warn_slowpath_fmt+0x38/0x40) [ 40.533109] r8:bcfdef80 r7:bdb705cc r6:80d0 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:80d0 r3:80b4aa8c [ 40.567270] [<801093ac>] (kmem_cache_alloc) from [<804d95e4>] (ep_alloc_request+0x58/0x68) [ 40.575550] r10:7f01f104 r9:0001 r8:bcfdef80 r7:bdb705cc r6:bc178700 r5: [ 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: r8:bcfdef80 r7:bc178700 r6:bdb702d0 r5:bcfdefdc [ 40.615866] r4:7f0199b4 r3:0002 [ 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:0117 r7: r6:bdb71010 r5:be11e060 [ 40.653666] r4:bdb70010 [ 40.656261] [<804d649c>] (ci_irq) from [<8007f638>] (handle_irq_event_percpu+0x7c/0x13c) [ 40.664367] r6: r5:be11e060 r4:bdb05cc0 r3:804d649c [ 40.670149] [<8007f5bc>] (handle_irq_event_percpu) from [<8007f740>] (handle_irq_event+0x48/0x6c) [ 40.679036] r10: r9:be008000 r8:0001 r7: 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: [ 40.703898] [<8008277c>] (handle_fasteoi_irq) from [<8007ec04>] (generic_handle_irq+0x28/0x3c) [ 40.712524] r7: r6:80b4aaf4 r5:0117 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: 0001 0001 80024320 80b48000 80b4a9d0 80b4a984 80b433e4 [ 40.764078] 9f20: 0001 807f4680 80b49f5c 80b49f20 80b49f50 80071ca4 800113fc [ 40.772272] 9f40: 200b0013 [ 40.775776] r9:807f4680 r8:0001 r7:80b49f34 r6: 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"). Signed-off-by: Peter Chen Cc: Krzysztof Opasiak Cc: --- drivers/usb/gadget/function/f_loopback.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/usb/gadget/function/f_loopback.c b/drivers/usb/gadget/function/f_loopback.c index 6b2102b..d2524a1 100644