diff options
author | Xin Xie <xxie@nvidia.com> | 2011-03-17 16:02:13 -0700 |
---|---|---|
committer | Varun Colbert <vcolbert@nvidia.com> | 2011-03-22 16:39:24 -0800 |
commit | 3218d13d46522296c952ce1fe23b95f99dbcaa50 (patch) | |
tree | 2995ba5c722b7eb6f4a44aabbb7fdc79ddb8d1b0 /arch/arm/include | |
parent | fe2156c8af2b43a71138e86ce48e0221f51e0091 (diff) |
[ARM]: tegra: fix APB DMA transfer timeout
In one bug report, the APB readl DMA transfer took up to 300mS. And
after apb_readl() has the timeout, the kernel crashed due to the NULL
pointer dereference.
In the apb_readl(), after the timeout the tegra_dma_req is destroyed at
the function return. But the DMA interrupt handler later will try to
delete the same destroyed DMA request link list node which will cause
the kernel crash.
Fix this by dequeue the DMA request if the DMA transfer timeout happens.
Reviewed-on: http://git-master/r/23413
(cherry picked from commit 41d4494d0d3235b8f0c605364d5bd0370f3d5323)
Change-Id: Id62b73ea4b81294a85ff1dfcfd96fede07f9497d
Reviewed-on: http://git-master/r/23775
Reviewed-by: Jonathan Mayo <jmayo@nvidia.com>
Reviewed-by: Scott Peterson <speterson@nvidia.com>
Tested-by: Bharat Nihalani <bnihalani@nvidia.com>
Diffstat (limited to 'arch/arm/include')
0 files changed, 0 insertions, 0 deletions