aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2008-04-29 12:03:19 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-04-29 12:03:19 -0400
commit1f43c5393033de90bac4410352b1d2a69dcbe7ef (patch)
tree3e6c3b9e9ea4dd6620a3b8332546a3cbbeddb1fd
parentc135b6592bd63925397e60425e0301f33f06c7a6 (diff)
parente90955c26d8af318658c45caadb1d330ac6a506c (diff)
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86-fixes
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86-fixes: x86: fix PCI MSI breaks when booting with nosmp x86: vget_cycles() __always_inline x86: add more boot protocol documentation bootprotocol: cleanup x86: fix warning in "x86: clean up vSMP detection" x86: !x & y typo in mtrr code
-rw-r--r--Documentation/i386/boot.txt12
-rw-r--r--arch/x86/kernel/cpu/mtrr/generic.c2
-rw-r--r--arch/x86/kernel/e820_64.c2
-rw-r--r--arch/x86/kernel/smpboot.c10
-rw-r--r--arch/x86/kernel/vsmp_64.c2
-rw-r--r--include/asm-x86/tsc.h2
6 files changed, 17 insertions, 13 deletions
diff --git a/Documentation/i386/boot.txt b/Documentation/i386/boot.txt
index 0fac3465f2e3..95ad15c3b01f 100644
--- a/Documentation/i386/boot.txt
+++ b/Documentation/i386/boot.txt
@@ -40,9 +40,17 @@ Protocol 2.05: (Kernel 2.6.20) Make protected mode kernel relocatable.
40 Introduce relocatable_kernel and kernel_alignment fields. 40 Introduce relocatable_kernel and kernel_alignment fields.
41 41
42Protocol 2.06: (Kernel 2.6.22) Added a field that contains the size of 42Protocol 2.06: (Kernel 2.6.22) Added a field that contains the size of
43 the boot command line 43 the boot command line.
44 44
45Protocol 2.09: (kernel 2.6.26) Added a field of 64-bit physical 45Protocol 2.07: (Kernel 2.6.24) Added paravirtualised boot protocol.
46 Introduced hardware_subarch and hardware_subarch_data
47 and KEEP_SEGMENTS flag in load_flags.
48
49Protocol 2.08: (Kernel 2.6.26) Added crc32 checksum and ELF format
50 payload. Introduced payload_offset and payload length
51 fields to aid in locating the payload.
52
53Protocol 2.09: (Kernel 2.6.26) Added a field of 64-bit physical
46 pointer to single linked list of struct setup_data. 54 pointer to single linked list of struct setup_data.
47 55
48**** MEMORY LAYOUT 56**** MEMORY LAYOUT
diff --git a/arch/x86/kernel/cpu/mtrr/generic.c b/arch/x86/kernel/cpu/mtrr/generic.c
index 353efe4f5017..5d241ce94a44 100644
--- a/arch/x86/kernel/cpu/mtrr/generic.c
+++ b/arch/x86/kernel/cpu/mtrr/generic.c
@@ -90,7 +90,7 @@ u8 mtrr_type_lookup(u64 start, u64 end)
90 * Look of multiple ranges matching this address and pick type 90 * Look of multiple ranges matching this address and pick type
91 * as per MTRR precedence 91 * as per MTRR precedence
92 */ 92 */
93 if (!mtrr_state.enabled & 2) { 93 if (!(mtrr_state.enabled & 2)) {
94 return mtrr_state.def_type; 94 return mtrr_state.def_type;
95 } 95 }
96 96
diff --git a/arch/x86/kernel/e820_64.c b/arch/x86/kernel/e820_64.c
index 645ee5e32a27..124480c0008d 100644
--- a/arch/x86/kernel/e820_64.c
+++ b/arch/x86/kernel/e820_64.c
@@ -100,7 +100,7 @@ void __init free_early(unsigned long start, unsigned long end)
100 for (j = i + 1; j < MAX_EARLY_RES && early_res[j].end; j++) 100 for (j = i + 1; j < MAX_EARLY_RES && early_res[j].end; j++)
101 ; 101 ;
102 102
103 memcpy(&early_res[i], &early_res[i + 1], 103 memmove(&early_res[i], &early_res[i + 1],
104 (j - 1 - i) * sizeof(struct early_res)); 104 (j - 1 - i) * sizeof(struct early_res));
105 105
106 early_res[j - 1].end = 0; 106 early_res[j - 1].end = 0;
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
index 04c662ba18f1..84241a256dc8 100644
--- a/arch/x86/kernel/smpboot.c
+++ b/arch/x86/kernel/smpboot.c
@@ -1149,14 +1149,10 @@ static int __init smp_sanity_check(unsigned max_cpus)
1149 "forcing use of dummy APIC emulation.\n"); 1149 "forcing use of dummy APIC emulation.\n");
1150 smpboot_clear_io_apic(); 1150 smpboot_clear_io_apic();
1151#ifdef CONFIG_X86_32 1151#ifdef CONFIG_X86_32
1152 if (nmi_watchdog == NMI_LOCAL_APIC) { 1152 connect_bsp_APIC();
1153 printk(KERN_INFO "activating minimal APIC for"
1154 "NMI watchdog use.\n");
1155 connect_bsp_APIC();
1156 setup_local_APIC();
1157 end_local_APIC_setup();
1158 }
1159#endif 1153#endif
1154 setup_local_APIC();
1155 end_local_APIC_setup();
1160 return -1; 1156 return -1;
1161 } 1157 }
1162 1158
diff --git a/arch/x86/kernel/vsmp_64.c b/arch/x86/kernel/vsmp_64.c
index caf2a26f5cfd..ba8c0b75ab0a 100644
--- a/arch/x86/kernel/vsmp_64.c
+++ b/arch/x86/kernel/vsmp_64.c
@@ -133,7 +133,7 @@ int is_vsmp_box(void)
133 } 133 }
134} 134}
135#else 135#else
136static int __init detect_vsmp_box(void) 136static void __init detect_vsmp_box(void)
137{ 137{
138} 138}
139int is_vsmp_box(void) 139int is_vsmp_box(void)
diff --git a/include/asm-x86/tsc.h b/include/asm-x86/tsc.h
index d2d8eb5b55f5..548873ab5fc1 100644
--- a/include/asm-x86/tsc.h
+++ b/include/asm-x86/tsc.h
@@ -32,7 +32,7 @@ static inline cycles_t get_cycles(void)
32 return ret; 32 return ret;
33} 33}
34 34
35static inline cycles_t vget_cycles(void) 35static __always_inline cycles_t vget_cycles(void)
36{ 36{
37 /* 37 /*
38 * We only do VDSOs on TSC capable CPUs, so this shouldnt 38 * We only do VDSOs on TSC capable CPUs, so this shouldnt