ia64/xen-unstable

changeset 4761:87b6c8e69c79

bitkeeper revision 1.1389.5.11 (4278fd69QwxUePkKl_WI29DSDv8_kA)

Fix MP-table parsing to correctly use ISA fixmap area.
Signed-off-by: Keir Fraser <keir@xensource.com>
author kaf24@firebug.cl.cam.ac.uk
date Wed May 04 16:50:49 2005 +0000 (2005-05-04)
parents 08b215440aaa
children 7705c55a6f69
files linux-2.6.11-xen-sparse/arch/xen/i386/kernel/mpparse.c linux-2.6.11-xen-sparse/arch/xen/i386/kernel/setup.c
line diff
     1.1 --- a/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/mpparse.c	Wed May 04 14:05:54 2005 +0000
     1.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/mpparse.c	Wed May 04 16:50:49 2005 +0000
     1.3 @@ -690,7 +690,7 @@ void __init get_smp_config (void)
     1.4  		 * Read the physical hardware table.  Anything here will
     1.5  		 * override the defaults.
     1.6  		 */
     1.7 -		if (!smp_read_mpc((void *)mpf->mpf_physptr)) {
     1.8 +		if (!smp_read_mpc(isa_bus_to_virt(mpf->mpf_physptr))) {
     1.9  			smp_found_config = 0;
    1.10  			printk(KERN_ERR "BIOS bug, MP table errors detected!...\n");
    1.11  			printk(KERN_ERR "... disabling SMP support. (tell your hw vendor)\n");
    1.12 @@ -743,7 +743,6 @@ static int __init smp_scan_config (unsig
    1.13  			smp_found_config = 1;
    1.14  			printk(KERN_INFO "found SMP MP-table at %08lx\n",
    1.15  						virt_to_phys(mpf));
    1.16 -			reserve_bootmem(virt_to_phys(mpf), PAGE_SIZE);
    1.17  			if (mpf->mpf_physptr) {
    1.18  				/*
    1.19  				 * We cannot access to MPC table to compute
     2.1 --- a/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/setup.c	Wed May 04 14:05:54 2005 +0000
     2.2 +++ b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/setup.c	Wed May 04 16:50:49 2005 +0000
     2.3 @@ -1133,12 +1133,6 @@ static unsigned long __init setup_memory
     2.4  	 */
     2.5  	acpi_reserve_bootmem();
     2.6  #endif
     2.7 -#ifdef CONFIG_X86_FIND_SMP_CONFIG
     2.8 -	/*
     2.9 -	 * Find and reserve possible boot-time SMP configuration:
    2.10 -	 */
    2.11 -	find_smp_config();
    2.12 -#endif
    2.13  
    2.14  #ifdef CONFIG_BLK_DEV_INITRD
    2.15  	if (xen_start_info.mod_start) {
    2.16 @@ -1503,6 +1497,13 @@ void __init setup_arch(char **cmdline_p)
    2.17  #endif
    2.18  	paging_init();
    2.19  
    2.20 +#ifdef CONFIG_X86_FIND_SMP_CONFIG
    2.21 +	/*
    2.22 +	 * Find and reserve possible boot-time SMP configuration:
    2.23 +	 */
    2.24 +	find_smp_config();
    2.25 +#endif
    2.26 +
    2.27  	/* Make sure we have a correctly sized P->M table. */
    2.28  	if (max_pfn != xen_start_info.nr_pages) {
    2.29  		phys_to_machine_mapping = alloc_bootmem_low_pages(