This patch is already approved by "Vinod Koul <vinod.koul@xxxxxxxxx>" Thanks. Best Regards. > -----Original Message----- > From: stable-owner@xxxxxxxxxxxxxxx [mailto:stable-owner@xxxxxxxxxxxxxxx] > On Behalf Of Jonghwan Choi > Sent: Thursday, October 10, 2013 2:16 PM > To: 'Jonghwan Choi' > Cc: stable@xxxxxxxxxxxxxxx; 'Michael Grzeschik'; 'Vinod Koul'; > cpgs@xxxxxxxxxxx > Subject: [PATCH 3.11-stable] dmaengine: imx-dma: fix slow path issue in > prep_dma_cyclic > > This patch looks like it should be in the 3.11-stable tree, should we > apply > it? > > ------------------ > > From: "Michael Grzeschik <m.grzeschik@xxxxxxxxxxxxxx>" > > commit edc530fe7ee5a562680615d2e7cd205879c751a7 upstream > > When perparing cyclic_dma buffers by the sound layer, it will dump the > following lockdep trace. The leading snd_pcm_action_single get called > with read_lock_irq called. To fix this, we change the kcalloc call from > GFP_KERNEL to GFP_ATOMIC. > > WARNING: at kernel/lockdep.c:2740 lockdep_trace_alloc+0xcc/0x114() > DEBUG_LOCKS_WARN_ON(irqs_disabled_flags(flags)) > Modules linked in: > CPU: 0 PID: 832 Comm: aplay Not tainted 3.11.0-20130823+ #903 > Backtrace: > [<c000b98c>] (dump_backtrace+0x0/0x10c) from [<c000bb28>] > (show_stack+0x18/0x1c) > r6:c004c090 r5:00000009 r4:c2e0bd18 r3:00404000 > [<c000bb10>] (show_stack+0x0/0x1c) from [<c02f397c>] (dump_stack+0x20/0x28) > [<c02f395c>] (dump_stack+0x0/0x28) from [<c001531c>] > (warn_slowpath_common+0x54/0x70) > [<c00152c8>] (warn_slowpath_common+0x0/0x70) from [<c00153dc>] > (warn_slowpath_fmt+0x38/0x40) > r8:00004000 r7:a3b90000 r6:000080d0 r5:60000093 r4:c2e0a000 r3:00000009 > [<c00153a4>] (warn_slowpath_fmt+0x0/0x40) from [<c004c090>] > (lockdep_trace_alloc+0xcc/0x114) > r3:c03955d8 r2:c03907db > [<c004bfc4>] (lockdep_trace_alloc+0x0/0x114) from [<c008f16c>] > (__kmalloc+0x34/0x118) > r6:000080d0 r5:c3800120 r4:000080d0 r3:c040a0f8 > [<c008f138>] (__kmalloc+0x0/0x118) from [<c019c95c>] > (imxdma_prep_dma_cyclic+0x64/0x168) > r7:a3b90000 r6:00000004 r5:c39d8420 r4:c3847150 > [<c019c8f8>] (imxdma_prep_dma_cyclic+0x0/0x168) from [<c024618c>] > (snd_dmaengine_pcm_trigger+0xa8/0x160) > [<c02460e4>] (snd_dmaengine_pcm_trigger+0x0/0x160) from [<c0241fa8>] > (soc_pcm_trigger+0x90/0xb4) > r8:c058c7b0 r7:c3b8140c r6:c39da560 r5:00000001 r4:c3b81000 > [<c0241f18>] (soc_pcm_trigger+0x0/0xb4) from [<c022ece4>] > (snd_pcm_do_start+0x2c/0x38) > r7:00000000 r6:00000003 r5:c058c7b0 r4:c3b81000 > [<c022ecb8>] (snd_pcm_do_start+0x0/0x38) from [<c022e958>] > (snd_pcm_action_single+0x40/0x6c) > [<c022e918>] (snd_pcm_action_single+0x0/0x6c) from [<c022ea64>] > (snd_pcm_action_lock_irq+0x7c/0x9c) > r7:00000003 r6:c3b810f0 r5:c3b810f0 r4:c3b81000 > [<c022e9e8>] (snd_pcm_action_lock_irq+0x0/0x9c) from [<c023009c>] > (snd_pcm_common_ioctl1+0x7f8/0xfd0) > r8:c3b7f888 r7:005407b8 r6:c2c991c0 r5:c3b81000 r4:c3b81000 r3:00004142 > [<c022f8a4>] (snd_pcm_common_ioctl1+0x0/0xfd0) from [<c023117c>] > (snd_pcm_playback_ioctl1+0x464/0x488) > [<c0230d18>] (snd_pcm_playback_ioctl1+0x0/0x488) from [<c02311d4>] > (snd_pcm_playback_ioctl+0x34/0x40) > r8:c3b7f888 r7:00004142 r6:00000004 r5:c2c991c0 r4:005407b8 > [<c02311a0>] (snd_pcm_playback_ioctl+0x0/0x40) from [<c00a14a4>] > (vfs_ioctl+0x30/0x44) > [<c00a1474>] (vfs_ioctl+0x0/0x44) from [<c00a1fe8>] > (do_vfs_ioctl+0x55c/0x5c0) > [<c00a1a8c>] (do_vfs_ioctl+0x0/0x5c0) from [<c00a208c>] > (SyS_ioctl+0x40/0x68) > [<c00a204c>] (SyS_ioctl+0x0/0x68) from [<c0009380>] > (ret_fast_syscall+0x0/0x44) > r8:c0009544 r7:00000036 r6:bedeaa58 r5:00000000 r4:000000c0 > > Signed-off-by: Michael Grzeschik <m.grzeschik@xxxxxxxxxxxxxx> > Signed-off-by: Vinod Koul <vinod.koul@xxxxxxxxx> > Signed-off-by: Jonghwan Choi <jhbird.choi@xxxxxxxxxxx> > --- > drivers/dma/imx-dma.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/dma/imx-dma.c b/drivers/dma/imx-dma.c > index ff2aab9..d193998 100644 > --- a/drivers/dma/imx-dma.c > +++ b/drivers/dma/imx-dma.c > @@ -885,7 +885,7 @@ static struct dma_async_tx_descriptor > *imxdma_prep_dma_cyclic( > kfree(imxdmac->sg_list); > > imxdmac->sg_list = kcalloc(periods + 1, > - sizeof(struct scatterlist), GFP_KERNEL); > + sizeof(struct scatterlist), GFP_ATOMIC); > if (!imxdmac->sg_list) > return NULL; > > -- > 1.7.9.5 > > -- > To unsubscribe from this list: send the line "unsubscribe stable" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html