Bug in arch/powerpc/sysdev/fsl_gtm.c

Kumar Gala galak at kernel.crashing.org
Wed Mar 16 02:53:42 EST 2011


On Feb 16, 2011, at 8:59 AM, Jean-Denis Boyer wrote:

> Hi.
> There is a bug in the function gtm_set_ref_timer16.
> When called, it correctly sets the requested timer,
> but the other timer that shares the register GTCFR is reset.
> 
> The parameter 'clear' passed to macro clrsetbits_8 should not be
> a bitwise complement, since the macro already complements it.
> 
> Here is a patch that should fix this issue.
> 
> --- linux-2.6.35.11/arch/powerpc/sysdev/fsl_gtm.c
> +++ linux/arch/powerpc/sysdev/fsl_gtm.c
> @@ -203,13 +203,10 @@
> 	spin_lock_irqsave(&gtm->lock, flags);
> 
> 	/*
> -	 * Properly reset timers: stop, reset, set up prescalers, reference
> +	 * Properly set timers: stop, set up prescalers, reference
> 	 * value and clear event register.
> 	 */
> -	clrsetbits_8(tmr->gtcfr, ~(GTCFR_STP(num) | GTCFR_RST(num)),
> -				 GTCFR_STP(num) | GTCFR_RST(num));
> -
> -	setbits8(tmr->gtcfr, GTCFR_STP(num));
> +	setbits8(tmr->gtcfr, GTCFR_STP(num) | GTCFR_RST(num));
> 
> 	if (tmr->gtpsr)
> 		out_be16(tmr->gtpsr, psr);

If you'd like this applied please re-send w/proper signed-off-by

- k


More information about the Linuxppc-dev mailing list