Bartlomiej Zolnierkiewicz
da331ba8e9
drivers/dma/pl330.c: fix locking in pl330_free_chan_resources()
tasklet_kill() may sleep so call it before taking pch->lock.
Fixes following lockup:
BUG: scheduling while atomic: cat/2383/0x00000002
Modules linked in:
unwind_backtrace+0x0/0xfc
__schedule_bug+0x4c/0x58
__schedule+0x690/0x6e0
sys_sched_yield+0x70/0x78
tasklet_kill+0x34/0x8c
pl330_free_chan_resources+0x24/0x88
dma_chan_put+0x4c/0x50
[...]
BUG: spinlock lockup suspected on CPU#0, swapper/0/0
lock: 0xe52aa04c, .magic: dead4ead, .owner: cat/2383, .owner_cpu: 1
unwind_backtrace+0x0/0xfc
do_raw_spin_lock+0x194/0x204
_raw_spin_lock_irqsave+0x20/0x28
pl330_tasklet+0x2c/0x5a8
tasklet_action+0xfc/0x114
__do_softirq+0xe4/0x19c
irq_exit+0x98/0x9c
handle_IPI+0x124/0x16c
gic_handle_irq+0x64/0x68
__irq_svc+0x40/0x70
cpuidle_wrap_enter+0x4c/0xa0
cpuidle_enter_state+0x18/0x68
cpuidle_idle_call+0xac/0xe0
cpu_idle+0xac/0xf0
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Jassi Brar <jassisinghbrar@gmail.com>
Cc: Vinod Koul <vinod.koul@linux.intel.com>
Cc: Tomasz Figa <t.figa@samsung.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2013-07-03 16:07:22 -07:00
..
2013-07-02 16:30:46 -07:00
2013-06-25 00:51:33 +02:00
2013-06-25 21:04:22 -07:00
2013-07-02 09:28:37 -07:00
2013-06-13 13:05:40 -04:00
2013-07-02 14:23:01 -07:00
2013-07-03 09:10:19 -07:00
2013-07-02 14:42:51 -07:00
2013-07-03 09:46:29 -07:00
2013-07-02 14:33:21 -07:00
2013-07-02 13:43:38 -07:00
2013-07-02 14:33:21 -07:00
2013-07-03 16:07:22 -07:00
2013-06-03 14:20:18 -07:00
2013-06-17 16:08:36 -07:00
2013-06-17 16:57:20 -07:00
2013-06-24 16:23:25 -07:00
2013-07-02 16:14:35 -07:00
2013-07-02 09:28:37 -07:00
2013-06-12 11:13:38 +02:00
2013-06-24 16:24:17 -07:00
2013-06-07 12:29:31 -07:00
2013-07-02 13:43:38 -07:00
2013-06-11 20:34:36 +01:00
2013-06-04 17:06:46 -07:00
2013-06-23 16:12:46 -10:00
2013-07-02 16:15:23 -07:00
2013-07-02 16:14:35 -07:00
2013-06-25 16:25:32 -07:00
2013-06-11 11:41:51 -05:00
2013-06-13 10:13:29 -07:00
2013-07-02 13:43:38 -07:00
2013-06-17 16:46:06 -07:00
2013-07-02 16:14:35 -07:00
2013-07-02 11:44:19 -07:00
2013-07-03 09:46:29 -07:00
2013-07-03 09:10:19 -07:00
2013-07-03 09:10:19 -07:00
2013-06-20 16:41:37 +02:00
2013-07-03 09:10:19 -07:00
2013-06-01 14:46:42 +02:00
2013-07-03 09:10:19 -07:00
2013-07-02 11:44:19 -07:00
2013-07-02 14:42:51 -07:00
2013-06-01 23:51:48 +02:00
2013-06-29 12:57:48 +04:00
2013-06-24 16:41:32 -07:00
2013-07-02 14:23:01 -07:00
2013-06-11 11:41:51 -05:00
2013-06-20 02:15:45 +02:00
2013-06-13 17:41:18 -07:00
2013-07-03 09:10:19 -07:00
2013-07-02 13:43:38 -07:00
2013-06-14 18:28:02 -07:00
2013-07-03 09:10:19 -07:00
2013-06-20 16:47:41 -07:00
2013-06-19 01:31:50 +09:00
2013-07-03 09:10:19 -07:00
2013-06-25 17:22:30 -07:00
2013-07-02 14:42:51 -07:00
2013-06-24 16:20:43 -07:00
2013-06-29 12:46:41 +04:00
2013-06-11 02:46:21 -07:00
2013-07-02 19:53:30 -07:00
2013-06-24 16:23:25 -07:00
2013-06-03 14:09:14 -07:00
2013-07-02 13:43:38 -07:00
2013-06-10 10:14:33 -04:00
2013-06-29 12:57:28 +04:00
2013-06-17 16:38:57 -07:00
2013-06-17 16:38:57 -07:00