[PATCH] PowerPC: add setup_cpu for 44x for processor-specific init

Kumar Gala galak at kernel.crashing.org
Fri Sep 21 04:54:00 EST 2007


> diff -ruN linux-2.6.orig/arch/powerpc/kernel/cputable.c linux-2.6/ 
> arch/powerpc/kernel/cputable.c
> --- linux-2.6.orig/arch/powerpc/kernel/cputable.c	2007-09-20  
> 19:30:47.000000000 +0400
> +++ linux-2.6/arch/powerpc/kernel/cputable.c	2007-09-20  
> 21:27:35.000000000 +0400

[snip]

> @@ -1318,18 +1327,14 @@
>
>  	for (i = 0; i < ARRAY_SIZE(cpu_specs); i++,s++)
>  		if ((pvr & s->pvr_mask) == s->pvr_value) {
> +			cpu_setup_t setup_func  = PTRRELOC(s->cpu_setup);
> +
>  			*cur = cpu_specs + i;
> -#ifdef CONFIG_PPC64
> -			/* ppc64 expects identify_cpu to also call setup_cpu
> -			 * for that processor. I will consolidate that at a
> -			 * later time, for now, just use our friend #ifdef.
> -			 * we also don't need to PTRRELOC the function pointer
> -			 * on ppc64 as we are running at 0 in real mode.
> +			/* ppc expects identify_cpu to also call setup_cpu
> +			 * for that processor.
>  			 */
> -			if (s->cpu_setup) {
> -				s->cpu_setup(offset, s);
> -			}
> -#endif /* CONFIG_PPC64 */
> +			if (setup_func)
> +				setup_func(offset, s);
>  			return s;
>  		}

This should just be something like:

#if defined(CONFIG_PPC64) || defined(CONFIG_BOOKE)
	if (s->cpu_setup)
...
#endif

we know reloc_offset is always 0 in book-e, plus fixup the comment.

- k






More information about the Linuxppc-dev mailing list