diff options
author | Per Forlin <per.forlin@linaro.org> | 2011-08-29 13:33:34 +0200 |
---|---|---|
committer | Linus WALLEIJ <linus.walleij@stericsson.com> | 2011-10-22 18:48:09 +0200 |
commit | fbdd15081578e8e27288f72c208dab334dd7d11f (patch) | |
tree | d97e3c109adf9f1693bdacfd716ed60f5901278b /arch | |
parent | 6201bec5cc4f13e77e25f0e22046ef62da8b7751 (diff) |
dmaengine/ste_dma40: fix Oops due to double free of client descriptor
The client list may exist in two lists at the same time. This makes free
fail since the same desc is freed multiple times. Remove desc from
client list when adding it to the pending queue. Move free of client owned
descriptors from free_dma() to terminate_all().
Unable to handle kernel paging request at virtual address 00100104
pgd = dea8c000
[00100104] *pgd=1ea62831, *pte=00000000, *ppte=00000000
Internal error: Oops: 817 [#1] PREEMPT SMP
Modules linked in:
CPU: 0 Not tainted (3.1.0-rc3+ #58)
PC is at d40_free_chan_resources+0x64/0x330
ST-Ericsson ID: 362972
ST-Ericsson FOSS-OUT ID: NA
ST-Ericsson Linux next: NA
Change-Id: I66946e99ec5a47f6c5600bffc62ea9f56b6ff257
Signed-off-by: Per Forlin <per.forlin@linaro.org>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/34964
Tested-by: Narayanan GOPALAKRISHNAN <narayanan.gopalakrishnan@stericsson.com>
Reviewed-by: Per FORLIN <per.forlin@stericsson.com>
Reviewed-by: Linus WALLEIJ <linus.walleij@stericsson.com>
Diffstat (limited to 'arch')
0 files changed, 0 insertions, 0 deletions