Srinivas Kandagatla
b5c16a60e5
mmc: mmci: fix mmci_post_request
...
If the post request is cancelling the channel and descriptor and which are
equal to host->dma_current and host->dma_desc_current respectively, then it
makes sense to reset these pointers to NULL, so that the driver does not
reference it.
Also the host_cookie can be reset to 0 in cases of error, so that the
core could reissue the same mmc_request.
This patch was tested with 'mmc: core: fix prepared requests while doing
bkops' to fix the below issue.
mmci-pl18x 12400000.sdcc: error during DMA transfer!
Unable to handle kernel paging request at virtual address 40000000
pgd = c0204000
[40000000] *pgd=00000000
Internal error: Oops: 805 [#1 ] SMP ARM
Modules linked in: ipv6 ath6kl_sdio ath6kl_core
CPU: 0 PID: 0 Comm: swapper/0 Tainted: G W 3.17.0-rc7-linaro-multi-v7 #1
task: c0c9d7e0 ti: c0c92000 task.ti: c0c92000
PC is at v7_dma_inv_range+0x34/0x4c
LR is at __dma_page_dev_to_cpu+0x80/0x100
pc : [<c021efc0>] lr : [<c021af18>] psr: 400f0193
sp : c0c93e20 ip : c0c9a478 fp : c08ea538
r10: c0c9f548 r9 : 00000002 r8 : e97d9000
r7 : 00000200 r6 : c0c9d504 r5 : c0db0880 r4 : 00000000
r3 : 0000003f r2 : 00000040 r1 : 40000200 r0 : 40000000
Flags: nZcv IRQs off FIQs on Mode SVC_32 ISA ARM Segment kernel
Control: 10c5787d Table: a9ef406a DAC: 00000015
Process swapper/0 (pid: 0, stack limit = 0xc0c92250)
Stack: (0xc0c93e20 to 0xc0c94000)
3e20: c021f058 e9a17178 e9a171bc e99dfd6c 00000001 00000001 e995de10 00000002
3e40: 00000000 c021b574 00000000 c04bc4a4 00000000 e9b49ac0 c0ce6e6c e99dfda4
3e60: 00000088 e9810780 c0d8291c c072ea58 00000000 c072d3fc 00000000 c072f534
3e80: 00000000 e9b49ac0 00000100 c0c9a444 00000088 c072f6b4 c072f5d4 e9d40080
3ea0: e98107dc 00000000 00000000 c0280a60 00000000 7d55bf61 e9810780 e98107dc
3ec0: 00000000 f0002000 c0d460e8 c0d460e8 c0c92000 c0280b60 e9810780 c0ce7190
3ee0: 00000000 c028369c c02835f4 00000088 00000088 c0280278 c0c8ec70 c020f080
3f00: f000200c c0c9a958 c0c93f28 c02088e4 c04bd630 c04bd5bc 200f0013 ffffffff
3f20: c0c93f5c c0212800 00000001 a987c000 c0c93f3c c04bd574 00000000 0000015b
3f40: ea7a0e40 00000000 c0d460e8 c0d460e8 c0c92000 c08ea538 29b12000 c0c93f70
3f60: c04bd630 c04bd5bc 200f0013 ffffffff c04bd574 c071bd24 7d50c9b4 c0719a44
3f80: 7d50c9b4 0000015b c0c9a498 c0c92028 c0c9a498 c0c9a4fc ea7a0e40 c0c8ee38
3fa0: c0d460e8 c0276198 00000000 c0d8291a 00000000 c0c9a400 00000000 c0be0bc4
3fc0: ffffffff ffffffff c0be05f8 00000000 00000000 c0c533d8 c0d82ed4 c0c9a47c
3fe0: c0c533d4 c0c9e870 8020406a 511f06f0 00000000 80208074 00000000 00000000
[<c021efc0>] (v7_dma_inv_range) from [<c021af18>] (__dma_page_dev_to_cpu+0x80/0x100)
[<c021af18>] (__dma_page_dev_to_cpu) from [<c021b574>] (arm_dma_unmap_sg+0x5c/0x84)
[<c021b574>] (arm_dma_unmap_sg) from [<c072ea58>] (mmci_dma_unmap.isra.16+0x60/0x74)
[<c072ea58>] (mmci_dma_unmap.isra.16) from [<c072f534>] (mmci_data_irq+0x1fc/0x29c)
[<c072f534>] (mmci_data_irq) from [<c072f6b4>] (mmci_irq+0xe0/0x114)
[<c072f6b4>] (mmci_irq) from [<c0280a60>] (handle_irq_event_percpu+0x78/0x134)
[<c0280a60>] (handle_irq_event_percpu) from [<c0280b60>] (handle_irq_event+0x44/0x64)
[<c0280b60>] (handle_irq_event) from [<c028369c>] (handle_fasteoi_irq+0xa8/0x1a8)
[<c028369c>] (handle_fasteoi_irq) from [<c0280278>] (generic_handle_irq+0x2c/0x3c)
[<c0280278>] (generic_handle_irq) from [<c020f080>] (handle_IRQ+0x40/0x90)
[<c020f080>] (handle_IRQ) from [<c02088e4>] (gic_handle_irq+0x38/0x68)
[<c02088e4>] (gic_handle_irq) from [<c0212800>] (__irq_svc+0x40/0x54)
Exception stack(0xc0c93f28 to 0xc0c93f70)
3f20: 00000001 a987c000 c0c93f3c c04bd574 00000000 0000015b
3f40: ea7a0e40 00000000 c0d460e8 c0d460e8 c0c92000 c08ea538 29b12000 c0c93f70
3f60: c04bd630 c04bd5bc 200f0013 ffffffff
[<c0212800>] (__irq_svc) from [<c04bd5bc>] (msm_cpu_pm_enter_sleep+0x48/0x4c)
[<c04bd5bc>] (msm_cpu_pm_enter_sleep) from [<c071bd24>] (qcom_lpm_enter_spc+0x20/0x2c)
[<c071bd24>] (qcom_lpm_enter_spc) from [<c0719a44>] (cpuidle_enter_state+0x44/0xf0)
[<c0719a44>] (cpuidle_enter_state) from [<c0276198>] (cpu_startup_entry+0x1f4/0x238)
[<c0276198>] (cpu_startup_entry) from [<c0be0bc4>] (start_kernel+0x384/0x390)
Code: 1e070f3e e1110003 e1c11003 1e071f3e (ee070f36)
---[ end trace cf6cb3f6432c9834 ]---
Kernel panic - not syncing: Fatal exception in interrupt
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
2014-11-10 12:40:29 +01:00
..
2014-10-31 22:24:44 +01:00
2014-09-30 01:16:44 +02:00
2014-10-18 18:11:04 -07:00
2014-10-17 11:55:32 -04:00
2014-11-07 11:07:35 -08:00
2014-10-23 14:02:06 -04:00
2014-11-03 15:04:26 -08:00
2014-10-13 11:28:42 +02:00
2014-10-08 17:37:16 -04:00
2014-10-31 06:33:26 -04:00
2014-10-15 07:05:03 +02:00
2014-10-26 20:50:00 +01:00
2014-10-27 23:27:35 +01:00
2014-10-24 12:48:47 -07:00
2014-10-14 10:51:23 +02:00
2014-09-29 20:22:36 +09:00
2014-11-05 18:26:10 -08:00
2014-10-09 02:39:07 -04:00
2014-10-22 22:59:00 +02:00
2014-10-23 14:45:09 -07:00
2014-10-09 14:58:15 -04:00
2014-11-03 01:51:28 +09:00
2014-10-29 11:52:35 -07:00
2014-10-19 18:41:18 -07:00
2014-11-07 19:03:18 +01:00
2014-10-18 12:12:45 -07:00
2014-11-05 18:33:46 +00:00
2014-10-31 15:04:58 -07:00
2014-10-31 19:51:11 -07:00
2014-10-15 07:23:49 +02:00
2014-11-02 01:31:10 +00:00
2014-10-14 15:05:35 -04:00
2014-10-21 08:18:38 -07:00
2014-10-21 11:21:19 -07:00
2014-10-18 12:25:30 -07:00
2014-11-03 19:08:06 -02:00
2014-10-14 02:18:22 +02:00
2014-10-07 21:29:18 -04:00
2014-10-15 06:58:16 +02:00
2014-10-28 19:52:52 +11:00
2014-11-10 12:40:29 +01:00
2014-11-02 14:45:52 -08:00
2014-10-31 16:18:35 -04:00
2014-10-07 14:48:29 -04:00
2014-10-17 07:08:51 -04:00
2014-11-04 10:19:48 +00:00
2014-10-13 16:23:15 +02:00
2014-10-31 18:48:29 -07:00
2014-11-05 14:34:06 -08:00
2014-10-28 11:16:26 +01:00
2014-10-27 21:45:13 -07:00
2014-10-14 02:18:25 +02:00
2014-10-22 10:08:22 +02:00
2014-10-21 08:17:43 -07:00
2014-11-05 14:59:25 +00:00
2014-10-29 16:33:14 -07:00
2014-10-21 07:47:54 -07:00
2014-10-28 09:57:00 +01:00
2014-10-28 22:05:07 +01:00
2014-11-06 12:58:46 +00:00
2014-10-09 14:58:15 -04:00
2014-11-05 11:30:45 -08:00
2014-10-21 13:06:38 -07:00
2014-11-03 18:59:50 -04:00
2014-11-06 12:23:36 -08:00
2014-10-02 21:35:54 -07:00
2014-11-06 12:25:40 -08:00
2014-10-15 07:23:49 +02:00
2014-10-30 14:53:49 +02:00
2014-10-18 10:25:09 -07:00
2014-10-20 21:09:17 +02:00
2014-10-23 16:24:02 +01:00