diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-29 12:03:19 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-29 12:03:19 -0400 |
commit | 1f43c5393033de90bac4410352b1d2a69dcbe7ef (patch) | |
tree | 3e6c3b9e9ea4dd6620a3b8332546a3cbbeddb1fd | |
parent | c135b6592bd63925397e60425e0301f33f06c7a6 (diff) | |
parent | e90955c26d8af318658c45caadb1d330ac6a506c (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.txt | 12 | ||||
-rw-r--r-- | arch/x86/kernel/cpu/mtrr/generic.c | 2 | ||||
-rw-r--r-- | arch/x86/kernel/e820_64.c | 2 | ||||
-rw-r--r-- | arch/x86/kernel/smpboot.c | 10 | ||||
-rw-r--r-- | arch/x86/kernel/vsmp_64.c | 2 | ||||
-rw-r--r-- | include/asm-x86/tsc.h | 2 |
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 | ||
42 | Protocol 2.06: (Kernel 2.6.22) Added a field that contains the size of | 42 | Protocol 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 | ||
45 | Protocol 2.09: (kernel 2.6.26) Added a field of 64-bit physical | 45 | Protocol 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 | |||
49 | Protocol 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 | |||
53 | Protocol 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 |
136 | static int __init detect_vsmp_box(void) | 136 | static void __init detect_vsmp_box(void) |
137 | { | 137 | { |
138 | } | 138 | } |
139 | int is_vsmp_box(void) | 139 | int 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 | ||
35 | static inline cycles_t vget_cycles(void) | 35 | static __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 |