On Tue, 30 Sep 2008 16:27:59 +0200 Haavard Skinnemoen <[email protected]> wrote:
> The tasklet checks RAW.BLOCK twice, and does not check RAW.XFER. This is
> obviously wrong, and could theoretically cause the driver to hang.
>
> Reported-by: Nicolas Ferre <[email protected]>
> Signed-off-by: Haavard Skinnemoen <[email protected]>
> ---
> drivers/dma/dw_dmac.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/dma/dw_dmac.c b/drivers/dma/dw_dmac.c
> index 94df917..0778d99 100644
> --- a/drivers/dma/dw_dmac.c
> +++ b/drivers/dma/dw_dmac.c
> @@ -364,7 +364,7 @@ static void dw_dma_tasklet(unsigned long data)
> int i;
>
> status_block = dma_readl(dw, RAW.BLOCK);
> - status_xfer = dma_readl(dw, RAW.BLOCK);
> + status_xfer = dma_readl(dw, RAW.XFER);
> status_err = dma_readl(dw, RAW.ERROR);
>
> dev_vdbg(dw->dma.dev, "tasklet: status_block=%x status_err=%x\n",
We haven't heard from Dan for a week and this still wasn't in his tree
yesterday.
I think I'll cheerily send it in to Linus for 2.6.27.
On Fri, Oct 3, 2008 at 2:26 AM, Andrew Morton <[email protected]> wrote:
> We haven't heard from Dan for a week and this still wasn't in his tree
> yesterday.
Sorry for the non-response, I'll continue to be on vacation until the
13th with intermittent access to lkml.
>
> I think I'll cheerily send it in to Linus for 2.6.27.
Acked-by: Dan Williams <[email protected]>