>-----Original Message----- >From: Chen Peter-B29397 >Sent: Wednesday, February 15, 2012 10:48 AM >To: Li Yang-R58472; balbi@xxxxxx >Cc: linux-usb@xxxxxxxxxxxxxxx >Subject: [PATCH 1/1] usb: fsl_udc_core: Fix scheduling while atomic dump >message > >When loading g_ether gadget, there is below message: > >Backtrace: >[<80012248>] (dump_backtrace+0x0/0x10c) from [<803cb42c>] >(dump_stack+0x18/0x1c) r7:00000000 r6:80512000 r5:8052bef8 r4:80513f30 >[<803cb414>] (dump_stack+0x0/0x1c) from [<8000feb4>] (show_regs+0x44/0x50) >[<8000fe70>] (show_regs+0x0/0x50) from [<8004c840>] >(__schedule_bug+0x68/0x84) >r5:8052bef8 r4:80513f30 >[<8004c7d8>] (__schedule_bug+0x0/0x84) from [<803cd0e4>] >(__schedule+0x4b0/0x528) >r5:8052bef8 r4:809aad00 >[<803ccc34>] (__schedule+0x0/0x528) from [<803cd214>] >(_cond_resched+0x44/0x58) [<803cd1d0>] (_cond_resched+0x0/0x58) from >[<800a9488>] (dma_pool_alloc+0x184/0x250) r5:9f9b4000 r4:9fb4fb80 >[<800a9304>] (dma_pool_alloc+0x0/0x250) from [<802a8ad8>] >(fsl_req_to_dtd+0xac/0x180) [<802a8a2c>] (fsl_req_to_dtd+0x0/0x180) from >[<802a8ce4>] (fsl_ep_queue+0x138/0x274) [<802a8bac>] >(fsl_ep_queue+0x0/0x274) from [<7f004328>] (composite_setup+0x2d4/0xfac >[g_ether]) [<7f004054>] (composite_setup+0x0/0xfac [g_ether]) from >[<802a9bb4>] (fsl_udc_irq+0x8dc/0xd38) [<802a92d8>] (fsl_udc_irq+0x0/0xd38) >from [<800704f8>] (handle_irq_event_percpu+0x54/0x188) >[<800704a4>] (handle_irq_event_percpu+0x0/0x188) from [<80070674>] >(handle_irq_event+0x48/0x68) [<8007062c>] (handle_irq_event+0x0/0x68) from >[<800738ec>] (handle_level_irq+0xb4/0x138) > r5:80514f94 r4:80514f40 > [<80073838>] (handle_level_irq+0x0/0x138) from [<8006ffa4>] >(generic_handle_irq+0x38/0x44) > r7:00000012 r6:80510b1c r5:80529860 r4:80512000 [<8006ff6c>] >(generic_handle_irq+0x0/0x44) from [<8000f4c4>] (handle_IRQ+0x54/0xb4) >[<8000f470>] (handle_IRQ+0x0/0xb4) from [<800085b8>] >(tzic_handle_irq+0x64/0x94) > r9:412fc085 r8:00000000 r7:80513f30 r6:00000001 r5:00000000 r4:00000000 >[<80008554>] (tzic_handle_irq+0x0/0x94) from [<8000e680>] >(__irq_svc+0x40/0x60) > >The reason of above dump message is calling dma_poll_alloc with can- >schedule mem_flags at interrupt context. Changing mem_flags from >GFP_KERNEL to GFP_ATOMIC fix this problem. Thanks for the patch. But I think the proper way to fix this is to use the gfp_flags parameter passed by fsl_ep_queue(). - Leo -- 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