Will Deacon
0baf8f6a2a
dma: pl330: ensure DMA descriptors are zero-initialised
...
I see the following splat with 3.13-rc1 when attempting to perform DMA:
[ 253.004516] Alignment trap: not handling instruction e1902f9f at [<c0204b40>]
[ 253.004583] Unhandled fault: alignment exception (0x221) at 0xdfdfdfd7
[ 253.004646] Internal error: : 221 [#1 ] PREEMPT SMP ARM
[ 253.004691] Modules linked in: dmatest(+) [last unloaded: dmatest]
[ 253.004798] CPU: 0 PID: 671 Comm: kthreadd Not tainted 3.13.0-rc1+ #2
[ 253.004864] task: df9b0900 ti: df03e000 task.ti: df03e000
[ 253.004937] PC is at dmaengine_unmap_put+0x14/0x34
[ 253.005010] LR is at pl330_tasklet+0x3c8/0x550
[ 253.005087] pc : [<c0204b44>] lr : [<c0207478>] psr: a00e0193
[ 253.005087] sp : df03fe48 ip : 00000000 fp : df03bf18
[ 253.005178] r10: bf00e108 r9 : 00000001 r8 : 00000000
[ 253.005245] r7 : df837040 r6 : dfb41800 r5 : df837048 r4 : df837000
[ 253.005316] r3 : dfdfdfcf r2 : dfb41f80 r1 : df837048 r0 : dfdfdfd7
[ 253.005384] Flags: NzCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment kernel
[ 253.005459] Control: 30c5387d Table: 9fb9ba80 DAC: fffffffd
[ 253.005520] Process kthreadd (pid: 671, stack limit = 0xdf03e248)
This is due to desc->txd.unmap containing garbage (uninitialised memory).
Rather than add another dummy initialisation to _init_desc, instead
ensure that the descriptors are zero-initialised during allocation and
remove the dummy, per-field initialisation.
Cc: Andriy Shevchenko <andriy.shevchenko@intel.com>
Acked-by: Jassi Brar <jassisinghbrar@gmail.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Acked-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
2013-12-18 10:08:56 -08:00
..
2013-10-09 20:04:04 -05:00
2013-11-20 13:20:24 -08:00
2013-11-16 12:02:36 +05:30
2013-11-13 14:10:48 +05:30
2013-12-12 22:43:41 -08:00
2013-11-28 13:46:00 +05:30
2013-08-25 16:43:45 +05:30
2013-12-04 11:22:05 +05:30
2013-12-12 22:43:41 -08:00
2013-11-16 12:02:36 +05:30
2013-02-26 09:24:48 -08:00
2013-10-25 11:15:56 +05:30
2013-01-07 17:36:37 +01:00
2013-11-12 14:28:25 +05:30
2013-10-25 11:15:58 +05:30
2013-12-13 00:57:03 -08:00
2012-03-13 11:37:22 +05:30
2013-12-12 22:43:41 -08:00
2013-11-20 13:20:24 -08:00
2013-11-14 11:04:38 -08:00
2013-12-12 22:43:41 -08:00
2013-11-13 14:26:27 +05:30
2013-10-31 22:36:13 +05:30
2013-11-20 13:20:24 -08:00
2012-09-01 08:57:12 -07:00
2013-10-25 11:16:04 +05:30
2013-11-16 12:02:36 +05:30
2010-03-30 22:02:32 +09:00
2013-10-25 11:16:07 +05:30
2013-12-12 22:43:42 -08:00
2013-10-08 06:42:10 +09:00
2013-11-28 13:39:11 +05:30
2013-11-20 13:20:24 -08:00
2013-10-09 20:04:04 -05:00
2013-12-12 22:48:53 -08:00
2013-11-14 11:04:42 -08:00
2013-11-13 15:38:31 +05:30
2013-08-19 14:45:05 +05:30
2013-10-25 11:16:11 +05:30
2013-09-02 11:59:58 +05:30
2013-12-18 10:08:56 -08:00
2013-12-04 11:24:30 +05:30
2013-10-25 11:16:13 +05:30
2013-08-13 17:01:01 +05:30
2013-06-04 11:12:10 +02:00
2013-05-23 21:13:19 +02:00
2013-10-25 11:16:15 +05:30
2013-10-25 11:16:16 +05:30
2013-11-14 11:04:38 -08:00
2011-07-14 04:02:08 +05:30
2013-12-12 22:43:41 -08:00
2012-03-13 11:36:06 +05:30
2012-07-01 14:15:23 +01:00
2012-07-01 14:15:23 +01:00