diff options
| -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 |
