kmalloc under spin_lock can't sleep. Signed-off-by: Domen Puncer <domen.puncer@xxxxxxxx> Index: linux-mailed/arch/mips/au1000/common/dbdma.c =================================================================== --- linux-mailed.orig/arch/mips/au1000/common/dbdma.c +++ linux-mailed/arch/mips/au1000/common/dbdma.c @@ -290,7 +290,7 @@ au1xxx_dbdma_chan_alloc(u32 srcid, u32 d /* If kmalloc fails, it is caught below same * as a channel not available. */ - ctp = kmalloc(sizeof(chan_tab_t), GFP_KERNEL); + ctp = kmalloc(sizeof(chan_tab_t), GFP_ATOMIC); chan_tab_ptr[i] = ctp; break; }