Patches contributed by Eötvös Lorand University


commit 33be8333421f842789fa7e363ce4142947e094f0
Author: Ingo Molnar <mingo@elte.hu>
Date:   Wed Jun 18 14:47:09 2008 +0200

    x86: boot IRQ quirks and rerouting, fix
    
    fix:
    
    init/built-in.o: In function `nosmp':
    main.c:(.init.text+0x14): undefined reference to `noioapicquirk'
    main.c:(.init.text+0x1e): undefined reference to `noioapicreroute'
    init/built-in.o: In function `maxcpus':
    main.c:(.init.text+0x133): undefined reference to `noioapicquirk'
    main.c:(.init.text+0x13d): undefined reference to `noioapicreroute'
    arch/x86/kernel/built-in.o: In function `parse_noapic':
    io_apic_32.c:(.init.text+0x7836): undefined reference to `noioapicquirk'
    io_apic_32.c:(.init.text+0x7840): undefined reference to `noioapicreroute'
    
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

diff --git a/include/asm-x86/io_apic.h b/include/asm-x86/io_apic.h
index a39670ae17df..721605d8f116 100644
--- a/include/asm-x86/io_apic.h
+++ b/include/asm-x86/io_apic.h
@@ -168,8 +168,10 @@ extern int timer_through_8259;
 
 static inline void disable_ioapic_setup(void)
 {
+#ifdef CONFIG_PCI
 	noioapicquirk = 1;
 	noioapicreroute = -1;
+#endif
 	skip_ioapic_setup = 1;
 }
 

commit a29d1cfe9e9337aedeed505afddc8465ac709b87
Author: Ingo Molnar <mingo@elte.hu>
Date:   Mon Jun 2 13:19:08 2008 +0200

    printk: export console_drivers
    
    this symbol is needed by drivers/video/xen-fbfront.ko.
    
    [ cherry-picked from tip/core/printk ]
    
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

diff --git a/kernel/printk.c b/kernel/printk.c
index 028ed75d4864..1fb1382009f3 100644
--- a/kernel/printk.c
+++ b/kernel/printk.c
@@ -75,6 +75,8 @@ EXPORT_SYMBOL(oops_in_progress);
 static DECLARE_MUTEX(console_sem);
 static DECLARE_MUTEX(secondary_console_sem);
 struct console *console_drivers;
+EXPORT_SYMBOL_GPL(console_drivers);
+
 /*
  * This is used for debugging the mess that is the VT code by
  * keeping track if we have the console semaphore held. It's

commit aea5f9f89bae5d5f9eb3fe3cddedbbfb82e6e44f
Author: Ingo Molnar <mingo@elte.hu>
Date:   Fri Jul 4 12:16:55 2008 +0200

    x86: fix "x86: let setup_arch call init_apic_mappings for 32bit"
    
    add back this line lost from trap_init():
    
            set_trap_gate(0,  &divide_error);
    
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

diff --git a/arch/x86/kernel/traps_32.c b/arch/x86/kernel/traps_32.c
index f60feee83253..d7cc292691ff 100644
--- a/arch/x86/kernel/traps_32.c
+++ b/arch/x86/kernel/traps_32.c
@@ -1198,6 +1198,7 @@ void __init trap_init(void)
 	early_iounmap(p, 4);
 #endif
 
+	set_trap_gate(0,  &divide_error);
 	set_intr_gate(1,  &debug);
 	set_intr_gate(2,  &nmi);
 	set_system_intr_gate(3, &int3); /* int3/4 can be called from all */

commit 4a7017370aa0a94a00ae5b5705e9169cdcae5fb8
Author: Ingo Molnar <mingo@elte.hu>
Date:   Thu Jul 3 15:57:47 2008 +0200

    x86: move prefill_possible_map calling early, fix
    
    fix:
    
    arch/x86/kernel/built-in.o: In function `setup_arch':
    : undefined reference to `prefill_possible_map'
    
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

diff --git a/include/asm-x86/smp.h b/include/asm-x86/smp.h
index b324a0645a78..2e221f1ce0b2 100644
--- a/include/asm-x86/smp.h
+++ b/include/asm-x86/smp.h
@@ -109,8 +109,6 @@ int native_cpu_up(unsigned int cpunum);
 extern int __cpu_disable(void);
 extern void __cpu_die(unsigned int cpu);
 
-extern void prefill_possible_map(void);
-
 void smp_store_cpu_info(int id);
 #define cpu_physical_id(cpu)	per_cpu(x86_cpu_to_apicid, cpu)
 
@@ -119,11 +117,15 @@ static inline int num_booting_cpus(void)
 {
 	return cpus_weight(cpu_callout_map);
 }
+#endif /* CONFIG_SMP */
+
+#if defined(CONFIG_SMP) && defined(CONFIG_HOTPLUG_CPU)
+extern void prefill_possible_map(void);
 #else
 static inline void prefill_possible_map(void)
 {
 }
-#endif /* CONFIG_SMP */
+#endif
 
 extern unsigned disabled_cpus __cpuinitdata;
 

commit 3ae960a598b9dfe87b29eb70738d91a13e692498
Author: Ingo Molnar <mingo@elte.hu>
Date:   Mon Jun 30 10:33:47 2008 +0200

    - x86: move early_ioremap prototypes to io.h
    
    now that the early-ioremap code is unified, move the prototypes too from
    io_32.h to io.h.
    
    this fixes:
    
    arch/x86/kernel/setup.c:531: error: implicit declaration of function ‘early_ioremap_init'
    
    on 64-bit.
    
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

diff --git a/include/asm-x86/io.h b/include/asm-x86/io.h
index c63563df4ac8..bf5d629b3a39 100644
--- a/include/asm-x86/io.h
+++ b/include/asm-x86/io.h
@@ -5,6 +5,20 @@
 
 #include <linux/compiler.h>
 
+/*
+ * early_ioremap() and early_iounmap() are for temporary early boot-time
+ * mappings, before the real ioremap() is functional.
+ * A boot-time mapping is currently limited to at most 16 pages.
+ */
+#ifndef __ASSEMBLY__
+extern void early_ioremap_init(void);
+extern void early_ioremap_clear(void);
+extern void early_ioremap_reset(void);
+extern void *early_ioremap(unsigned long offset, unsigned long size);
+extern void early_iounmap(void *addr, unsigned long size);
+extern void __iomem *fix_ioremap(unsigned idx, unsigned long phys);
+#endif
+
 #define build_mmio_read(name, size, type, reg, barrier) \
 static inline type name(const volatile void __iomem *addr) \
 { type ret; asm volatile("mov" size " %1,%0":"=" reg (ret) \

commit 1bb3a029078d437aa05bda8a8c8f8ecb1265e231
Author: Ingo Molnar <mingo@elte.hu>
Date:   Mon Jun 30 08:47:42 2008 +0200

    x86: nmi_watchdog - documentation fix - v2
    
    typo fixes from Randy Dunlap and Alan Cox.
    
    Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

diff --git a/Documentation/nmi_watchdog.txt b/Documentation/nmi_watchdog.txt
index 101bfcf19c0d..90aa4531cb67 100644
--- a/Documentation/nmi_watchdog.txt
+++ b/Documentation/nmi_watchdog.txt
@@ -69,7 +69,7 @@ to the overall system performance.
 On x86 nmi_watchdog is disabled by default so you have to enable it with
 a boot time parameter.
 
-NOTE: Prior to 2.4.2-ac18 the NMI-oopser is enabled unconditionally
+NOTE: In kernels prior to 2.4.2-ac18 the NMI-oopser is enabled unconditionally
 on x86 SMP boxes.
 
 [ feel free to send bug reports, suggestions and patches to

commit 330ddd20894f99a2b956ad59cf0cfdba188bde63
Author: Ingo Molnar <mingo@elte.hu>
Date:   Thu Jun 26 12:40:35 2008 +0200

    x86: build fix
    
    fix:
    
    In file included from arch/x86/kernel/setup.c:118:
    include/asm/highmem.h:64: error: expected identifier or ‘(' before ‘do'
    include/asm/highmem.h:64: error: expected identifier or ‘(' before ‘while'
    include/asm/highmem.h:67: error: expected identifier or ‘(' before ‘do'
    include/asm/highmem.h:67: error: expected identifier or ‘(' before ‘while'
    
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index 172a83e57ee7..63dbb5e8f7ee 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -114,9 +114,6 @@
 #ifdef CONFIG_X86_64
 #include <asm/numa_64.h>
 #endif
-#ifdef CONFIG_X86_32
-#include <asm/highmem.h>
-#endif
 
 #ifndef CONFIG_DEBUG_BOOT_PARAMS
 struct boot_params __initdata boot_params;

commit 3442682a54a9f44047efe526869aa52bd74fe16e
Author: Ingo Molnar <mingo@elte.hu>
Date:   Thu Jun 26 12:29:29 2008 +0200

    x86: remove extra newline from setup.c
    
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index f2e314b5b5fa..172a83e57ee7 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -806,4 +806,3 @@ void __init setup_arch(char **cmdline_p)
 #endif
 #endif
 }
-

commit 3eb11edc1321e14a121deeb8b18c177750226eca
Author: Ingo Molnar <mingo@elte.hu>
Date:   Mon Jun 23 22:19:22 2008 +0200

    x86: build fix
    
    fix:
    
    arch/x86/kernel/setup_32.c:409: error: 'enable_local_apic' undeclared (first use in this function)
    arch/x86/kernel/setup_32.c:409: error: (Each undeclared identifier is reported only once
    arch/x86/kernel/setup_32.c:409: error: for each function it appears in.)
    
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

diff --git a/arch/x86/kernel/setup_32.c b/arch/x86/kernel/setup_32.c
index b42f570a5a56..1e670372c191 100644
--- a/arch/x86/kernel/setup_32.c
+++ b/arch/x86/kernel/setup_32.c
@@ -406,7 +406,9 @@ void __init setup_arch(char **cmdline_p)
 	parse_early_param();
 
 	if (acpi_mps_check()){
+#ifdef CONFIG_X86_LOCAL_APIC
 		enable_local_apic = -1;
+#endif
 		clear_cpu_cap(&boot_cpu_data, X86_FEATURE_APIC);
 	}
 

commit 1ea598c29748a559a0086a84a016886d786e6272
Author: Ingo Molnar <mingo@elte.hu>
Date:   Fri Jun 13 20:31:54 2008 +0200

    x86: fix sleep.c build error
    
    fix:
    
    arch/x86/kernel/acpi/sleep.c: In function ‘acpi_save_state_mem':
    arch/x86/kernel/acpi/sleep.c:75: error: ‘stack_start' undeclared (first use in this function)
    arch/x86/kernel/acpi/sleep.c:75: error: (Each undeclared identifier is reported
    only once
    arch/x86/kernel/acpi/sleep.c:75: error: for each function it appears in.)
    
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

diff --git a/arch/x86/kernel/acpi/sleep.c b/arch/x86/kernel/acpi/sleep.c
index a81f468ab410..e6a4b564ccaa 100644
--- a/arch/x86/kernel/acpi/sleep.c
+++ b/arch/x86/kernel/acpi/sleep.c
@@ -86,7 +86,9 @@ int acpi_save_state_mem(void)
 	saved_magic = 0x12345678;
 #else /* CONFIG_64BIT */
 	header->trampoline_segment = setup_trampoline() >> 4;
+#ifdef CONFIG_SMP
 	stack_start.sp = temp_stack + 4096;
+#endif
 	initial_code = (unsigned long)wakeup_long64;
 	saved_magic = 0x123456789abcdef0;
 #endif /* CONFIG_64BIT */