[email protected] writes:
> From: Sandeep Paulraj <[email protected]>
>
> In the edma_free_cont_slots API, the variable slot was being modified
> and then used in the for loop.
> This results in incorrect behaviour when the API is used.
>
> Signed-off-by: Sandeep Paulraj <[email protected]>
> ---
> arch/arm/mach-davinci/dma.c | 8 ++++----
> 1 files changed, 4 insertions(+), 4 deletions(-)
Applied to davinci git, queuing for 2.6.32 fixes.
Kevin
> diff --git a/arch/arm/mach-davinci/dma.c b/arch/arm/mach-davinci/dma.c
> index f2e57d2..89ce3e1 100644
> --- a/arch/arm/mach-davinci/dma.c
> +++ b/arch/arm/mach-davinci/dma.c
> @@ -813,7 +813,7 @@ EXPORT_SYMBOL(edma_alloc_cont_slots);
> */
> int edma_free_cont_slots(unsigned slot, int count)
> {
> - unsigned ctlr;
> + unsigned ctlr, slot_to_free;
> int i;
>
> ctlr = EDMA_CTLR(slot);
> @@ -826,11 +826,11 @@ int edma_free_cont_slots(unsigned slot, int count)
>
> for (i = slot; i < slot + count; ++i) {
> ctlr = EDMA_CTLR(i);
> - slot = EDMA_CHAN_SLOT(i);
> + slot_to_free = EDMA_CHAN_SLOT(i);
>
> - memcpy_toio(edmacc_regs_base[ctlr] + PARM_OFFSET(slot),
> + memcpy_toio(edmacc_regs_base[ctlr] + PARM_OFFSET(slot_to_free),
> &dummy_paramset, PARM_SIZE);
> - clear_bit(slot, edma_info[ctlr]->edma_inuse);
> + clear_bit(slot_to_free, edma_info[ctlr]->edma_inuse);
> }
>
> return 0;
> --
> 1.6.0.4
>
> _______________________________________________
> Davinci-linux-open-source mailing list
> [email protected]
> http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source