dma: fix sleep in atomic bug
dma_alloc_coherent use GFP_ATOMIC, fix this bug:
BUG: sleeping function called from invalid context at mm/page_alloc.c:1939
in_atomic(): 1, irqs_disabled(): 0, pid: 44, name: mmcqd
2 locks held by mmcqd/44:
#0: (&host->lock){......}, at: [<
c0631fec>] rk2818_sdmmc_request+0x38/0x7c
#1: (&rk2818_dma[i].lock){......}, at: [<
c04574e4>] rk28_dma_request+0x28/0x108
[<
c044f108>] (unwind_backtrace+0x0/0xdc) from [<
c06f3ac0>] (dump_stack+0x18/0x1c)
[<
c06f3ac0>] (dump_stack+0x18/0x1c) from [<
c045cc8c>] (__might_sleep+0x124/0x144)
[<
c045cc8c>] (__might_sleep+0x124/0x144) from [<
c04a8174>] (__alloc_pages_nodemask+0xb8/0x5ac)
[<
c04a8174>] (__alloc_pages_nodemask+0xb8/0x5ac) from [<
c044fc70>] (__dma_alloc+0x150/0x3e0)
[<
c044fc70>] (__dma_alloc+0x150/0x3e0) from [<
c044ff8c>] (dma_alloc_coherent+0x58/0x64)
[<
c044ff8c>] (dma_alloc_coherent+0x58/0x64) from [<
c0457534>] (rk28_dma_request+0x78/0x108)
[<
c0457534>] (rk28_dma_request+0x78/0x108) from [<
c044e3b4>] (request_dma+0x7c/0xa8)
[<
c044e3b4>] (request_dma+0x7c/0xa8) from [<
c0631d70>] (rk2818_sdmmc_start_request+0x25c/0x38c)
[<
c0631d70>] (rk2818_sdmmc_start_request+0x25c/0x38c) from [<
c063200c>] (rk2818_sdmmc_request+0x58/0x7c)
[<
c063200c>] (rk2818_sdmmc_request+0x58/0x7c) from [<
c0629fa8>] (mmc_wait_for_req+0x150/0x16c)
[<
c0629fa8>] (mmc_wait_for_req+0x150/0x16c) from [<
c06307b0>] (mmc_blk_issue_rq+0x234/0x4b8)
[<
c06307b0>] (mmc_blk_issue_rq+0x234/0x4b8) from [<
c06313b4>] (mmc_queue_thread+0x100/0x104)
[<
c06313b4>] (mmc_queue_thread+0x100/0x104) from [<
c047a868>] (kthread+0x84/0x8c)
[<
c047a868>] (kthread+0x84/0x8c) from [<
c044a8fc>] (kernel_thread_exit+0x0/0x8)