[coreboot] [PATCH] x86: ioremap mptable -v2

Ingo Molnar mingo at elte.hu
Mon Mar 2 11:18:23 CET 2009


* Yinghai Lu <yinghai at kernel.org> wrote:

> Impact: fix boot with mptable above max_low_mapped
> 
> try to use early_ioremap it.
> 
> v2: also get the exact size for reserve_bootmem in case we got big size than 4k
> 
> Signed-off-by: Yinghai Lu <yinghai at kernel.org>
> Reported-and-tested-by: Kevin O'Connor <kevin at koconnor.net>
> 
> ---
>  arch/x86/kernel/mpparse.c |   20 ++++++++++++++++++--
>  1 file changed, 18 insertions(+), 2 deletions(-)
> 
> Index: linux-2.6/arch/x86/kernel/mpparse.c
> ===================================================================
> --- linux-2.6.orig/arch/x86/kernel/mpparse.c
> +++ linux-2.6/arch/x86/kernel/mpparse.c
> @@ -611,12 +611,20 @@ static void __init __get_smp_config(unsi
>  		construct_default_ISA_mptable(mpf->feature1);
>  
>  	} else if (mpf->physptr) {
> +		struct mpc_table *mpc;
> +		unsigned long size;
>  
> +		mpc = early_ioremap(mpf->physptr, PAGE_SIZE);
> +		size = mpc->length;
> +		apic_printk(APIC_VERBOSE, "  mpc: %lx-%lx\n", (unsigned long)mpf->physptr,
> +			 mpf->physptr + size);
> +		early_iounmap(mpc, PAGE_SIZE);
> +		mpc = early_ioremap(mpf->physptr, size);

no objections, but this bit of __get_smp_config() needs to be 
done cleaner - the whole mpf->physptr != 0 bit should probably 
go into a helper function.

	Ingo




More information about the coreboot mailing list