Commit 3d14bdad40315b54470cb7812293d14c8af2bf7d
Exists in
master
and in
7 other branches
Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/…
…git/tip/linux-2.6-tip * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (36 commits) x86: fix section mismatch warnings in mcheck/mce_amd_64.c x86: offer frame pointers in all build modes x86: remove duplicated #include's x86: k8 numa register active regions later x86: update Alan Cox's email addresses x86: rename all fields of mpc_table mpc_X to X x86: rename all fields of mpc_oemtable oem_X to X x86: rename all fields of mpc_bus mpc_X to X x86: rename all fields of mpc_cpu mpc_X to X x86: rename all fields of mpc_intsrc mpc_X to X x86: rename all fields of mpc_lintsrc mpc_X to X x86: rename all fields of mpc_iopic mpc_X to X x86: irqinit_64.c init_ISA_irqs should be static Documentation/x86/boot.txt: payload length was changed to payload_length x86: setup_percpu.c fix style problems x86: irqinit_64.c fix style problems x86: irqinit_32.c fix style problems x86: i8259.c fix style problems x86: irq_32.c fix style problems x86: ioport.c fix style problems ...
Showing 43 changed files Side-by-side Diff
- Documentation/x86/boot.txt
- arch/x86/Kconfig
- arch/x86/include/asm/es7000/mpparse.h
- arch/x86/include/asm/genapic_32.h
- arch/x86/include/asm/mach-default/mach_mpparse.h
- arch/x86/include/asm/mach-generic/mach_mpparse.h
- arch/x86/include/asm/mach-generic/mach_mpspec.h
- arch/x86/include/asm/mpspec_def.h
- arch/x86/include/asm/numaq/mpparse.h
- arch/x86/include/asm/setup.h
- arch/x86/include/asm/summit/mpparse.h
- arch/x86/kernel/apic.c
- arch/x86/kernel/apm_32.c
- arch/x86/kernel/cpu/mcheck/mce_32.c
- arch/x86/kernel/cpu/mcheck/mce_amd_64.c
- arch/x86/kernel/cpu/mcheck/p5.c
- arch/x86/kernel/cpu/mcheck/p6.c
- arch/x86/kernel/cpu/mcheck/winchip.c
- arch/x86/kernel/head_64.S
- arch/x86/kernel/i8259.c
- arch/x86/kernel/io_apic.c
- arch/x86/kernel/ioport.c
- arch/x86/kernel/irq.c
- arch/x86/kernel/irq_32.c
- arch/x86/kernel/irq_64.c
- arch/x86/kernel/irqinit_32.c
- arch/x86/kernel/irqinit_64.c
- arch/x86/kernel/mpparse.c
- arch/x86/kernel/nmi.c
- arch/x86/kernel/numaq_32.c
- arch/x86/kernel/process_32.c
- arch/x86/kernel/setup_percpu.c
- arch/x86/kernel/smp.c
- arch/x86/kernel/smpboot.c
- arch/x86/kernel/time_32.c
- arch/x86/kernel/time_64.c
- arch/x86/kernel/traps.c
- arch/x86/kernel/visws_quirks.c
- arch/x86/mach-generic/es7000.c
- arch/x86/mach-generic/numaq.c
- arch/x86/mach-generic/probe.c
- arch/x86/mm/k8topology_64.c
- lib/Kconfig.debug
Documentation/x86/boot.txt
... | ... | @@ -44,7 +44,7 @@ |
44 | 44 | and KEEP_SEGMENTS flag in load_flags. |
45 | 45 | |
46 | 46 | Protocol 2.08: (Kernel 2.6.26) Added crc32 checksum and ELF format |
47 | - payload. Introduced payload_offset and payload length | |
47 | + payload. Introduced payload_offset and payload_length | |
48 | 48 | fields to aid in locating the payload. |
49 | 49 | |
50 | 50 | Protocol 2.09: (Kernel 2.6.26) Added a field of 64-bit physical |
arch/x86/Kconfig
arch/x86/include/asm/es7000/mpparse.h
... | ... | @@ -10,8 +10,7 @@ |
10 | 10 | |
11 | 11 | #ifndef CONFIG_X86_GENERICARCH |
12 | 12 | extern int acpi_madt_oem_check(char *oem_id, char *oem_table_id); |
13 | -extern int mps_oem_check(struct mp_config_table *mpc, char *oem, | |
14 | - char *productid); | |
13 | +extern int mps_oem_check(struct mpc_table *mpc, char *oem, char *productid); | |
15 | 14 | #endif |
16 | 15 | |
17 | 16 | #ifdef CONFIG_ACPI |
arch/x86/include/asm/genapic_32.h
... | ... | @@ -15,9 +15,9 @@ |
15 | 15 | * Copyright 2003 Andi Kleen, SuSE Labs. |
16 | 16 | */ |
17 | 17 | |
18 | -struct mpc_config_bus; | |
19 | -struct mp_config_table; | |
20 | -struct mpc_config_processor; | |
18 | +struct mpc_bus; | |
19 | +struct mpc_table; | |
20 | +struct mpc_cpu; | |
21 | 21 | |
22 | 22 | struct genapic { |
23 | 23 | char *name; |
... | ... | @@ -51,7 +51,7 @@ |
51 | 51 | /* When one of the next two hooks returns 1 the genapic |
52 | 52 | is switched to this. Essentially they are additional probe |
53 | 53 | functions. */ |
54 | - int (*mps_oem_check)(struct mp_config_table *mpc, char *oem, | |
54 | + int (*mps_oem_check)(struct mpc_table *mpc, char *oem, | |
55 | 55 | char *productid); |
56 | 56 | int (*acpi_madt_oem_check)(char *oem_id, char *oem_table_id); |
57 | 57 |
arch/x86/include/asm/mach-default/mach_mpparse.h
1 | 1 | #ifndef _ASM_X86_MACH_DEFAULT_MACH_MPPARSE_H |
2 | 2 | #define _ASM_X86_MACH_DEFAULT_MACH_MPPARSE_H |
3 | 3 | |
4 | -static inline int mps_oem_check(struct mp_config_table *mpc, char *oem, | |
5 | - char *productid) | |
4 | +static inline int | |
5 | +mps_oem_check(struct mpc_table *mpc, char *oem, char *productid) | |
6 | 6 | { |
7 | 7 | return 0; |
8 | 8 | } |
arch/x86/include/asm/mach-generic/mach_mpparse.h
... | ... | @@ -2,10 +2,9 @@ |
2 | 2 | #define _ASM_X86_MACH_GENERIC_MACH_MPPARSE_H |
3 | 3 | |
4 | 4 | |
5 | -extern int mps_oem_check(struct mp_config_table *mpc, char *oem, | |
6 | - char *productid); | |
5 | +extern int mps_oem_check(struct mpc_table *, char *, char *); | |
7 | 6 | |
8 | -extern int acpi_madt_oem_check(char *oem_id, char *oem_table_id); | |
7 | +extern int acpi_madt_oem_check(char *, char *); | |
9 | 8 | |
10 | 9 | #endif /* _ASM_X86_MACH_GENERIC_MACH_MPPARSE_H */ |
arch/x86/include/asm/mach-generic/mach_mpspec.h
... | ... | @@ -7,7 +7,7 @@ |
7 | 7 | /* Maximum 256 PCI busses, plus 1 ISA bus in each of 4 cabinets. */ |
8 | 8 | #define MAX_MP_BUSSES 260 |
9 | 9 | |
10 | -extern void numaq_mps_oem_check(struct mp_config_table *mpc, char *oem, | |
11 | - char *productid); | |
10 | +extern void numaq_mps_oem_check(struct mpc_table *, char *, char *); | |
11 | + | |
12 | 12 | #endif /* _ASM_X86_MACH_GENERIC_MACH_MPSPEC_H */ |
arch/x86/include/asm/mpspec_def.h
... | ... | @@ -39,17 +39,17 @@ |
39 | 39 | |
40 | 40 | #define MPC_SIGNATURE "PCMP" |
41 | 41 | |
42 | -struct mp_config_table { | |
43 | - char mpc_signature[4]; | |
44 | - unsigned short mpc_length; /* Size of table */ | |
45 | - char mpc_spec; /* 0x01 */ | |
46 | - char mpc_checksum; | |
47 | - char mpc_oem[8]; | |
48 | - char mpc_productid[12]; | |
49 | - unsigned int mpc_oemptr; /* 0 if not present */ | |
50 | - unsigned short mpc_oemsize; /* 0 if not present */ | |
51 | - unsigned short mpc_oemcount; | |
52 | - unsigned int mpc_lapic; /* APIC address */ | |
42 | +struct mpc_table { | |
43 | + char signature[4]; | |
44 | + unsigned short length; /* Size of table */ | |
45 | + char spec; /* 0x01 */ | |
46 | + char checksum; | |
47 | + char oem[8]; | |
48 | + char productid[12]; | |
49 | + unsigned int oemptr; /* 0 if not present */ | |
50 | + unsigned short oemsize; /* 0 if not present */ | |
51 | + unsigned short oemcount; | |
52 | + unsigned int lapic; /* APIC address */ | |
53 | 53 | unsigned int reserved; |
54 | 54 | }; |
55 | 55 | |
56 | 56 | |
... | ... | @@ -70,20 +70,20 @@ |
70 | 70 | #define CPU_MODEL_MASK 0x00F0 |
71 | 71 | #define CPU_FAMILY_MASK 0x0F00 |
72 | 72 | |
73 | -struct mpc_config_processor { | |
74 | - unsigned char mpc_type; | |
75 | - unsigned char mpc_apicid; /* Local APIC number */ | |
76 | - unsigned char mpc_apicver; /* Its versions */ | |
77 | - unsigned char mpc_cpuflag; | |
78 | - unsigned int mpc_cpufeature; | |
79 | - unsigned int mpc_featureflag; /* CPUID feature value */ | |
80 | - unsigned int mpc_reserved[2]; | |
73 | +struct mpc_cpu { | |
74 | + unsigned char type; | |
75 | + unsigned char apicid; /* Local APIC number */ | |
76 | + unsigned char apicver; /* Its versions */ | |
77 | + unsigned char cpuflag; | |
78 | + unsigned int cpufeature; | |
79 | + unsigned int featureflag; /* CPUID feature value */ | |
80 | + unsigned int reserved[2]; | |
81 | 81 | }; |
82 | 82 | |
83 | -struct mpc_config_bus { | |
84 | - unsigned char mpc_type; | |
85 | - unsigned char mpc_busid; | |
86 | - unsigned char mpc_bustype[6]; | |
83 | +struct mpc_bus { | |
84 | + unsigned char type; | |
85 | + unsigned char busid; | |
86 | + unsigned char bustype[6]; | |
87 | 87 | }; |
88 | 88 | |
89 | 89 | /* List of Bus Type string values, Intel MP Spec. */ |
90 | 90 | |
... | ... | @@ -108,22 +108,22 @@ |
108 | 108 | |
109 | 109 | #define MPC_APIC_USABLE 0x01 |
110 | 110 | |
111 | -struct mpc_config_ioapic { | |
112 | - unsigned char mpc_type; | |
113 | - unsigned char mpc_apicid; | |
114 | - unsigned char mpc_apicver; | |
115 | - unsigned char mpc_flags; | |
116 | - unsigned int mpc_apicaddr; | |
111 | +struct mpc_ioapic { | |
112 | + unsigned char type; | |
113 | + unsigned char apicid; | |
114 | + unsigned char apicver; | |
115 | + unsigned char flags; | |
116 | + unsigned int apicaddr; | |
117 | 117 | }; |
118 | 118 | |
119 | -struct mpc_config_intsrc { | |
120 | - unsigned char mpc_type; | |
121 | - unsigned char mpc_irqtype; | |
122 | - unsigned short mpc_irqflag; | |
123 | - unsigned char mpc_srcbus; | |
124 | - unsigned char mpc_srcbusirq; | |
125 | - unsigned char mpc_dstapic; | |
126 | - unsigned char mpc_dstirq; | |
119 | +struct mpc_intsrc { | |
120 | + unsigned char type; | |
121 | + unsigned char irqtype; | |
122 | + unsigned short irqflag; | |
123 | + unsigned char srcbus; | |
124 | + unsigned char srcbusirq; | |
125 | + unsigned char dstapic; | |
126 | + unsigned char dstirq; | |
127 | 127 | }; |
128 | 128 | |
129 | 129 | enum mp_irq_source_types { |
130 | 130 | |
... | ... | @@ -139,24 +139,24 @@ |
139 | 139 | |
140 | 140 | #define MP_APIC_ALL 0xFF |
141 | 141 | |
142 | -struct mpc_config_lintsrc { | |
143 | - unsigned char mpc_type; | |
144 | - unsigned char mpc_irqtype; | |
145 | - unsigned short mpc_irqflag; | |
146 | - unsigned char mpc_srcbusid; | |
147 | - unsigned char mpc_srcbusirq; | |
148 | - unsigned char mpc_destapic; | |
149 | - unsigned char mpc_destapiclint; | |
142 | +struct mpc_lintsrc { | |
143 | + unsigned char type; | |
144 | + unsigned char irqtype; | |
145 | + unsigned short irqflag; | |
146 | + unsigned char srcbusid; | |
147 | + unsigned char srcbusirq; | |
148 | + unsigned char destapic; | |
149 | + unsigned char destapiclint; | |
150 | 150 | }; |
151 | 151 | |
152 | 152 | #define MPC_OEM_SIGNATURE "_OEM" |
153 | 153 | |
154 | -struct mp_config_oemtable { | |
155 | - char oem_signature[4]; | |
156 | - unsigned short oem_length; /* Size of table */ | |
157 | - char oem_rev; /* 0x01 */ | |
158 | - char oem_checksum; | |
159 | - char mpc_oem[8]; | |
154 | +struct mpc_oemtable { | |
155 | + char signature[4]; | |
156 | + unsigned short length; /* Size of table */ | |
157 | + char rev; /* 0x01 */ | |
158 | + char checksum; | |
159 | + char mpc[8]; | |
160 | 160 | }; |
161 | 161 | |
162 | 162 | /* |
arch/x86/include/asm/numaq/mpparse.h
arch/x86/include/asm/setup.h
... | ... | @@ -25,9 +25,9 @@ |
25 | 25 | /* |
26 | 26 | * Any setup quirks to be performed? |
27 | 27 | */ |
28 | -struct mpc_config_processor; | |
29 | -struct mpc_config_bus; | |
30 | -struct mp_config_oemtable; | |
28 | +struct mpc_cpu; | |
29 | +struct mpc_bus; | |
30 | +struct mpc_oemtable; | |
31 | 31 | struct x86_quirks { |
32 | 32 | int (*arch_pre_time_init)(void); |
33 | 33 | int (*arch_time_init)(void); |
... | ... | @@ -39,10 +39,10 @@ |
39 | 39 | int (*mach_find_smp_config)(unsigned int reserve); |
40 | 40 | |
41 | 41 | int *mpc_record; |
42 | - int (*mpc_apic_id)(struct mpc_config_processor *m); | |
43 | - void (*mpc_oem_bus_info)(struct mpc_config_bus *m, char *name); | |
44 | - void (*mpc_oem_pci_bus)(struct mpc_config_bus *m); | |
45 | - void (*smp_read_mpc_oem)(struct mp_config_oemtable *oemtable, | |
42 | + int (*mpc_apic_id)(struct mpc_cpu *m); | |
43 | + void (*mpc_oem_bus_info)(struct mpc_bus *m, char *name); | |
44 | + void (*mpc_oem_pci_bus)(struct mpc_bus *m); | |
45 | + void (*smp_read_mpc_oem)(struct mpc_oemtable *oemtable, | |
46 | 46 | unsigned short oemsize); |
47 | 47 | int (*setup_ioapic_ids)(void); |
48 | 48 | int (*update_genapic)(void); |
arch/x86/include/asm/summit/mpparse.h
arch/x86/kernel/apic.c
... | ... | @@ -31,9 +31,11 @@ |
31 | 31 | #include <linux/dmi.h> |
32 | 32 | #include <linux/dmar.h> |
33 | 33 | #include <linux/ftrace.h> |
34 | +#include <linux/smp.h> | |
35 | +#include <linux/nmi.h> | |
36 | +#include <linux/timex.h> | |
34 | 37 | |
35 | 38 | #include <asm/atomic.h> |
36 | -#include <asm/smp.h> | |
37 | 39 | #include <asm/mtrr.h> |
38 | 40 | #include <asm/mpspec.h> |
39 | 41 | #include <asm/desc.h> |
40 | 42 | |
... | ... | @@ -41,10 +43,8 @@ |
41 | 43 | #include <asm/hpet.h> |
42 | 44 | #include <asm/pgalloc.h> |
43 | 45 | #include <asm/i8253.h> |
44 | -#include <asm/nmi.h> | |
45 | 46 | #include <asm/idle.h> |
46 | 47 | #include <asm/proto.h> |
47 | -#include <asm/timex.h> | |
48 | 48 | #include <asm/apic.h> |
49 | 49 | #include <asm/i8259.h> |
50 | 50 | |
... | ... | @@ -687,7 +687,7 @@ |
687 | 687 | local_irq_enable(); |
688 | 688 | |
689 | 689 | if (levt->features & CLOCK_EVT_FEAT_DUMMY) { |
690 | - pr_warning("APIC timer disabled due to verification failure.\n"); | |
690 | + pr_warning("APIC timer disabled due to verification failure\n"); | |
691 | 691 | return -1; |
692 | 692 | } |
693 | 693 | |
694 | 694 | |
... | ... | @@ -2087,14 +2087,12 @@ |
2087 | 2087 | /* are we being called early in kernel startup? */ |
2088 | 2088 | if (bios_cpu_apicid) { |
2089 | 2089 | id = bios_cpu_apicid[i]; |
2090 | - } | |
2091 | - else if (i < nr_cpu_ids) { | |
2090 | + } else if (i < nr_cpu_ids) { | |
2092 | 2091 | if (cpu_present(i)) |
2093 | 2092 | id = per_cpu(x86_bios_cpu_apicid, i); |
2094 | 2093 | else |
2095 | 2094 | continue; |
2096 | - } | |
2097 | - else | |
2095 | + } else | |
2098 | 2096 | break; |
2099 | 2097 | |
2100 | 2098 | if (id != BAD_APICID) |
arch/x86/kernel/apm_32.c
... | ... | @@ -160,9 +160,9 @@ |
160 | 160 | * Work around byte swap bug in one of the Vaio's BIOS's |
161 | 161 | * (Marc Boucher <marc@mbsi.ca>). |
162 | 162 | * Exposed the disable flag to dmi so that we can handle known |
163 | - * broken APM (Alan Cox <alan@redhat.com>). | |
163 | + * broken APM (Alan Cox <alan@lxorguk.ukuu.org.uk>). | |
164 | 164 | * 1.14ac: If the BIOS says "I slowed the CPU down" then don't spin |
165 | - * calling it - instead idle. (Alan Cox <alan@redhat.com>) | |
165 | + * calling it - instead idle. (Alan Cox <alan@lxorguk.ukuu.org.uk>) | |
166 | 166 | * If an APM idle fails log it and idle sensibly |
167 | 167 | * 1.15: Don't queue events to clients who open the device O_WRONLY. |
168 | 168 | * Don't expect replies from clients who open the device O_RDONLY. |
arch/x86/kernel/cpu/mcheck/mce_32.c
arch/x86/kernel/cpu/mcheck/mce_amd_64.c
arch/x86/kernel/cpu/mcheck/p5.c
arch/x86/kernel/cpu/mcheck/p6.c
arch/x86/kernel/cpu/mcheck/winchip.c
arch/x86/kernel/head_64.S
arch/x86/kernel/i8259.c
... | ... | @@ -11,15 +11,15 @@ |
11 | 11 | #include <linux/kernel_stat.h> |
12 | 12 | #include <linux/sysdev.h> |
13 | 13 | #include <linux/bitops.h> |
14 | +#include <linux/acpi.h> | |
15 | +#include <linux/io.h> | |
16 | +#include <linux/delay.h> | |
14 | 17 | |
15 | -#include <asm/acpi.h> | |
16 | 18 | #include <asm/atomic.h> |
17 | 19 | #include <asm/system.h> |
18 | -#include <asm/io.h> | |
19 | 20 | #include <asm/timer.h> |
20 | 21 | #include <asm/hw_irq.h> |
21 | 22 | #include <asm/pgtable.h> |
22 | -#include <asm/delay.h> | |
23 | 23 | #include <asm/desc.h> |
24 | 24 | #include <asm/apic.h> |
25 | 25 | #include <asm/arch_hooks.h> |
... | ... | @@ -323,7 +323,7 @@ |
323 | 323 | outb_pic(0x11, PIC_MASTER_CMD); /* ICW1: select 8259A-1 init */ |
324 | 324 | |
325 | 325 | /* ICW2: 8259A-1 IR0-7 mapped to 0x30-0x37 on x86-64, |
326 | - to 0x20-0x27 on i386 */ | |
326 | + to 0x20-0x27 on i386 */ | |
327 | 327 | outb_pic(IRQ0_VECTOR, PIC_MASTER_IMR); |
328 | 328 | |
329 | 329 | /* 8259A-1 (the master) has a slave on IR2 */ |
arch/x86/kernel/io_apic.c
... | ... | @@ -129,7 +129,6 @@ |
129 | 129 | node = cpu_to_node(cpu); |
130 | 130 | |
131 | 131 | pin = kzalloc_node(sizeof(*pin), GFP_ATOMIC, node); |
132 | - printk(KERN_DEBUG " alloc irq_2_pin on cpu %d node %d\n", cpu, node); | |
133 | 132 | |
134 | 133 | return pin; |
135 | 134 | } |
... | ... | @@ -227,7 +226,6 @@ |
227 | 226 | cpumask_clear(cfg->old_domain); |
228 | 227 | } |
229 | 228 | } |
230 | - printk(KERN_DEBUG " alloc irq_cfg on cpu %d node %d\n", cpu, node); | |
231 | 229 | |
232 | 230 | return cfg; |
233 | 231 | } |
arch/x86/kernel/ioport.c
... | ... | @@ -35,8 +35,8 @@ |
35 | 35 | */ |
36 | 36 | asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int turn_on) |
37 | 37 | { |
38 | - struct thread_struct * t = ¤t->thread; | |
39 | - struct tss_struct * tss; | |
38 | + struct thread_struct *t = ¤t->thread; | |
39 | + struct tss_struct *tss; | |
40 | 40 | unsigned int i, max_long, bytes, bytes_updated; |
41 | 41 | |
42 | 42 | if ((from + num <= from) || (from + num > IO_BITMAP_BITS)) |
arch/x86/kernel/irq.c
... | ... | @@ -5,10 +5,10 @@ |
5 | 5 | #include <linux/interrupt.h> |
6 | 6 | #include <linux/kernel_stat.h> |
7 | 7 | #include <linux/seq_file.h> |
8 | +#include <linux/smp.h> | |
8 | 9 | |
9 | 10 | #include <asm/apic.h> |
10 | 11 | #include <asm/io_apic.h> |
11 | -#include <asm/smp.h> | |
12 | 12 | #include <asm/irq.h> |
13 | 13 | |
14 | 14 | atomic_t irq_err_count; |
arch/x86/kernel/irq_32.c
... | ... | @@ -15,9 +15,9 @@ |
15 | 15 | #include <linux/notifier.h> |
16 | 16 | #include <linux/cpu.h> |
17 | 17 | #include <linux/delay.h> |
18 | +#include <linux/uaccess.h> | |
18 | 19 | |
19 | 20 | #include <asm/apic.h> |
20 | -#include <asm/uaccess.h> | |
21 | 21 | |
22 | 22 | DEFINE_PER_CPU_SHARED_ALIGNED(irq_cpustat_t, irq_stat); |
23 | 23 | EXPORT_PER_CPU_SYMBOL(irq_stat); |
... | ... | @@ -93,7 +93,7 @@ |
93 | 93 | return 0; |
94 | 94 | |
95 | 95 | /* build the stack frame on the IRQ stack */ |
96 | - isp = (u32 *) ((char*)irqctx + sizeof(*irqctx)); | |
96 | + isp = (u32 *) ((char *)irqctx + sizeof(*irqctx)); | |
97 | 97 | irqctx->tinfo.task = curctx->tinfo.task; |
98 | 98 | irqctx->tinfo.previous_esp = current_stack_pointer; |
99 | 99 | |
... | ... | @@ -137,7 +137,7 @@ |
137 | 137 | |
138 | 138 | hardirq_ctx[cpu] = irqctx; |
139 | 139 | |
140 | - irqctx = (union irq_ctx*) &softirq_stack[cpu*THREAD_SIZE]; | |
140 | + irqctx = (union irq_ctx *) &softirq_stack[cpu*THREAD_SIZE]; | |
141 | 141 | irqctx->tinfo.task = NULL; |
142 | 142 | irqctx->tinfo.exec_domain = NULL; |
143 | 143 | irqctx->tinfo.cpu = cpu; |
... | ... | @@ -147,7 +147,7 @@ |
147 | 147 | softirq_ctx[cpu] = irqctx; |
148 | 148 | |
149 | 149 | printk(KERN_DEBUG "CPU %u irqstacks, hard=%p soft=%p\n", |
150 | - cpu,hardirq_ctx[cpu],softirq_ctx[cpu]); | |
150 | + cpu, hardirq_ctx[cpu], softirq_ctx[cpu]); | |
151 | 151 | } |
152 | 152 | |
153 | 153 | void irq_ctx_exit(int cpu) |
... | ... | @@ -174,7 +174,7 @@ |
174 | 174 | irqctx->tinfo.previous_esp = current_stack_pointer; |
175 | 175 | |
176 | 176 | /* build the stack frame on the softirq stack */ |
177 | - isp = (u32*) ((char*)irqctx + sizeof(*irqctx)); | |
177 | + isp = (u32 *) ((char *)irqctx + sizeof(*irqctx)); | |
178 | 178 | |
179 | 179 | call_on_stack(__do_softirq, isp); |
180 | 180 | /* |
arch/x86/kernel/irq_64.c
... | ... | @@ -14,10 +14,10 @@ |
14 | 14 | #include <linux/module.h> |
15 | 15 | #include <linux/delay.h> |
16 | 16 | #include <linux/ftrace.h> |
17 | -#include <asm/uaccess.h> | |
17 | +#include <linux/uaccess.h> | |
18 | +#include <linux/smp.h> | |
18 | 19 | #include <asm/io_apic.h> |
19 | 20 | #include <asm/idle.h> |
20 | -#include <asm/smp.h> | |
21 | 21 | |
22 | 22 | /* |
23 | 23 | * Probabilistic stack overflow check: |
24 | 24 | |
25 | 25 | |
26 | 26 | |
... | ... | @@ -142,19 +142,19 @@ |
142 | 142 | |
143 | 143 | asmlinkage void do_softirq(void) |
144 | 144 | { |
145 | - __u32 pending; | |
146 | - unsigned long flags; | |
145 | + __u32 pending; | |
146 | + unsigned long flags; | |
147 | 147 | |
148 | - if (in_interrupt()) | |
149 | - return; | |
148 | + if (in_interrupt()) | |
149 | + return; | |
150 | 150 | |
151 | - local_irq_save(flags); | |
152 | - pending = local_softirq_pending(); | |
153 | - /* Switch to interrupt stack */ | |
154 | - if (pending) { | |
151 | + local_irq_save(flags); | |
152 | + pending = local_softirq_pending(); | |
153 | + /* Switch to interrupt stack */ | |
154 | + if (pending) { | |
155 | 155 | call_softirq(); |
156 | 156 | WARN_ON_ONCE(softirq_count()); |
157 | 157 | } |
158 | - local_irq_restore(flags); | |
158 | + local_irq_restore(flags); | |
159 | 159 | } |
arch/x86/kernel/irqinit_32.c
... | ... | @@ -9,20 +9,20 @@ |
9 | 9 | #include <linux/kernel_stat.h> |
10 | 10 | #include <linux/sysdev.h> |
11 | 11 | #include <linux/bitops.h> |
12 | +#include <linux/io.h> | |
13 | +#include <linux/delay.h> | |
12 | 14 | |
13 | 15 | #include <asm/atomic.h> |
14 | 16 | #include <asm/system.h> |
15 | -#include <asm/io.h> | |
16 | 17 | #include <asm/timer.h> |
17 | 18 | #include <asm/pgtable.h> |
18 | -#include <asm/delay.h> | |
19 | 19 | #include <asm/desc.h> |
20 | 20 | #include <asm/apic.h> |
21 | 21 | #include <asm/arch_hooks.h> |
22 | 22 | #include <asm/i8259.h> |
23 | +#include <asm/traps.h> | |
23 | 24 | |
24 | 25 | |
25 | - | |
26 | 26 | /* |
27 | 27 | * Note that on a 486, we don't want to do a SIGFPE on an irq13 |
28 | 28 | * as the irq is unreliable, and exception 16 works correctly |
29 | 29 | |
... | ... | @@ -34,12 +34,10 @@ |
34 | 34 | * leads to races. IBM designers who came up with it should |
35 | 35 | * be shot. |
36 | 36 | */ |
37 | - | |
38 | 37 | |
39 | 38 | static irqreturn_t math_error_irq(int cpl, void *dev_id) |
40 | 39 | { |
41 | - extern void math_error(void __user *); | |
42 | - outb(0,0xF0); | |
40 | + outb(0, 0xF0); | |
43 | 41 | if (ignore_fpu_irq || !boot_cpu_data.hard_math) |
44 | 42 | return IRQ_NONE; |
45 | 43 | math_error((void __user *)get_irq_regs()->ip); |
... | ... | @@ -56,7 +54,7 @@ |
56 | 54 | .name = "fpu", |
57 | 55 | }; |
58 | 56 | |
59 | -void __init init_ISA_irqs (void) | |
57 | +void __init init_ISA_irqs(void) | |
60 | 58 | { |
61 | 59 | int i; |
62 | 60 |
arch/x86/kernel/irqinit_64.c
... | ... | @@ -11,14 +11,14 @@ |
11 | 11 | #include <linux/kernel_stat.h> |
12 | 12 | #include <linux/sysdev.h> |
13 | 13 | #include <linux/bitops.h> |
14 | +#include <linux/acpi.h> | |
15 | +#include <linux/io.h> | |
16 | +#include <linux/delay.h> | |
14 | 17 | |
15 | -#include <asm/acpi.h> | |
16 | 18 | #include <asm/atomic.h> |
17 | 19 | #include <asm/system.h> |
18 | -#include <asm/io.h> | |
19 | 20 | #include <asm/hw_irq.h> |
20 | 21 | #include <asm/pgtable.h> |
21 | -#include <asm/delay.h> | |
22 | 22 | #include <asm/desc.h> |
23 | 23 | #include <asm/apic.h> |
24 | 24 | #include <asm/i8259.h> |
... | ... | @@ -81,7 +81,7 @@ |
81 | 81 | return 0; |
82 | 82 | } |
83 | 83 | |
84 | -void __init init_ISA_irqs(void) | |
84 | +static void __init init_ISA_irqs(void) | |
85 | 85 | { |
86 | 86 | int i; |
87 | 87 |
arch/x86/kernel/mpparse.c
... | ... | @@ -2,7 +2,7 @@ |
2 | 2 | * Intel Multiprocessor Specification 1.1 and 1.4 |
3 | 3 | * compliant MP-table parsing routines. |
4 | 4 | * |
5 | - * (c) 1995 Alan Cox, Building #3 <alan@redhat.com> | |
5 | + * (c) 1995 Alan Cox, Building #3 <alan@lxorguk.ukuu.org.uk> | |
6 | 6 | * (c) 1998, 1999, 2000 Ingo Molnar <mingo@redhat.com> |
7 | 7 | * (c) 2008 Alexey Starikovskiy <astarikovskiy@suse.de> |
8 | 8 | */ |
... | ... | @@ -17,7 +17,6 @@ |
17 | 17 | #include <linux/acpi.h> |
18 | 18 | #include <linux/module.h> |
19 | 19 | #include <linux/smp.h> |
20 | -#include <linux/acpi.h> | |
21 | 20 | |
22 | 21 | #include <asm/mtrr.h> |
23 | 22 | #include <asm/mpspec.h> |
24 | 23 | |
... | ... | @@ -49,12 +48,12 @@ |
49 | 48 | return sum & 0xFF; |
50 | 49 | } |
51 | 50 | |
52 | -static void __init MP_processor_info(struct mpc_config_processor *m) | |
51 | +static void __init MP_processor_info(struct mpc_cpu *m) | |
53 | 52 | { |
54 | 53 | int apicid; |
55 | 54 | char *bootup_cpu = ""; |
56 | 55 | |
57 | - if (!(m->mpc_cpuflag & CPU_ENABLED)) { | |
56 | + if (!(m->cpuflag & CPU_ENABLED)) { | |
58 | 57 | disabled_cpus++; |
59 | 58 | return; |
60 | 59 | } |
61 | 60 | |
62 | 61 | |
63 | 62 | |
64 | 63 | |
65 | 64 | |
66 | 65 | |
67 | 66 | |
68 | 67 | |
69 | 68 | |
70 | 69 | |
71 | 70 | |
72 | 71 | |
73 | 72 | |
74 | 73 | |
... | ... | @@ -62,54 +61,54 @@ |
62 | 61 | if (x86_quirks->mpc_apic_id) |
63 | 62 | apicid = x86_quirks->mpc_apic_id(m); |
64 | 63 | else |
65 | - apicid = m->mpc_apicid; | |
64 | + apicid = m->apicid; | |
66 | 65 | |
67 | - if (m->mpc_cpuflag & CPU_BOOTPROCESSOR) { | |
66 | + if (m->cpuflag & CPU_BOOTPROCESSOR) { | |
68 | 67 | bootup_cpu = " (Bootup-CPU)"; |
69 | - boot_cpu_physical_apicid = m->mpc_apicid; | |
68 | + boot_cpu_physical_apicid = m->apicid; | |
70 | 69 | } |
71 | 70 | |
72 | - printk(KERN_INFO "Processor #%d%s\n", m->mpc_apicid, bootup_cpu); | |
73 | - generic_processor_info(apicid, m->mpc_apicver); | |
71 | + printk(KERN_INFO "Processor #%d%s\n", m->apicid, bootup_cpu); | |
72 | + generic_processor_info(apicid, m->apicver); | |
74 | 73 | } |
75 | 74 | |
76 | 75 | #ifdef CONFIG_X86_IO_APIC |
77 | -static void __init MP_bus_info(struct mpc_config_bus *m) | |
76 | +static void __init MP_bus_info(struct mpc_bus *m) | |
78 | 77 | { |
79 | 78 | char str[7]; |
80 | - memcpy(str, m->mpc_bustype, 6); | |
79 | + memcpy(str, m->bustype, 6); | |
81 | 80 | str[6] = 0; |
82 | 81 | |
83 | 82 | if (x86_quirks->mpc_oem_bus_info) |
84 | 83 | x86_quirks->mpc_oem_bus_info(m, str); |
85 | 84 | else |
86 | - apic_printk(APIC_VERBOSE, "Bus #%d is %s\n", m->mpc_busid, str); | |
85 | + apic_printk(APIC_VERBOSE, "Bus #%d is %s\n", m->busid, str); | |
87 | 86 | |
88 | 87 | #if MAX_MP_BUSSES < 256 |
89 | - if (m->mpc_busid >= MAX_MP_BUSSES) { | |
88 | + if (m->busid >= MAX_MP_BUSSES) { | |
90 | 89 | printk(KERN_WARNING "MP table busid value (%d) for bustype %s " |
91 | 90 | " is too large, max. supported is %d\n", |
92 | - m->mpc_busid, str, MAX_MP_BUSSES - 1); | |
91 | + m->busid, str, MAX_MP_BUSSES - 1); | |
93 | 92 | return; |
94 | 93 | } |
95 | 94 | #endif |
96 | 95 | |
97 | 96 | if (strncmp(str, BUSTYPE_ISA, sizeof(BUSTYPE_ISA) - 1) == 0) { |
98 | - set_bit(m->mpc_busid, mp_bus_not_pci); | |
97 | + set_bit(m->busid, mp_bus_not_pci); | |
99 | 98 | #if defined(CONFIG_EISA) || defined(CONFIG_MCA) |
100 | - mp_bus_id_to_type[m->mpc_busid] = MP_BUS_ISA; | |
99 | + mp_bus_id_to_type[m->busid] = MP_BUS_ISA; | |
101 | 100 | #endif |
102 | 101 | } else if (strncmp(str, BUSTYPE_PCI, sizeof(BUSTYPE_PCI) - 1) == 0) { |
103 | 102 | if (x86_quirks->mpc_oem_pci_bus) |
104 | 103 | x86_quirks->mpc_oem_pci_bus(m); |
105 | 104 | |
106 | - clear_bit(m->mpc_busid, mp_bus_not_pci); | |
105 | + clear_bit(m->busid, mp_bus_not_pci); | |
107 | 106 | #if defined(CONFIG_EISA) || defined(CONFIG_MCA) |
108 | - mp_bus_id_to_type[m->mpc_busid] = MP_BUS_PCI; | |
107 | + mp_bus_id_to_type[m->busid] = MP_BUS_PCI; | |
109 | 108 | } else if (strncmp(str, BUSTYPE_EISA, sizeof(BUSTYPE_EISA) - 1) == 0) { |
110 | - mp_bus_id_to_type[m->mpc_busid] = MP_BUS_EISA; | |
109 | + mp_bus_id_to_type[m->busid] = MP_BUS_EISA; | |
111 | 110 | } else if (strncmp(str, BUSTYPE_MCA, sizeof(BUSTYPE_MCA) - 1) == 0) { |
112 | - mp_bus_id_to_type[m->mpc_busid] = MP_BUS_MCA; | |
111 | + mp_bus_id_to_type[m->busid] = MP_BUS_MCA; | |
113 | 112 | #endif |
114 | 113 | } else |
115 | 114 | printk(KERN_WARNING "Unknown bustype %s - ignoring\n", str); |
116 | 115 | |
117 | 116 | |
118 | 117 | |
119 | 118 | |
120 | 119 | |
121 | 120 | |
... | ... | @@ -133,32 +132,31 @@ |
133 | 132 | return 0; |
134 | 133 | } |
135 | 134 | |
136 | -static void __init MP_ioapic_info(struct mpc_config_ioapic *m) | |
135 | +static void __init MP_ioapic_info(struct mpc_ioapic *m) | |
137 | 136 | { |
138 | - if (!(m->mpc_flags & MPC_APIC_USABLE)) | |
137 | + if (!(m->flags & MPC_APIC_USABLE)) | |
139 | 138 | return; |
140 | 139 | |
141 | 140 | printk(KERN_INFO "I/O APIC #%d Version %d at 0x%X.\n", |
142 | - m->mpc_apicid, m->mpc_apicver, m->mpc_apicaddr); | |
141 | + m->apicid, m->apicver, m->apicaddr); | |
143 | 142 | |
144 | - if (bad_ioapic(m->mpc_apicaddr)) | |
143 | + if (bad_ioapic(m->apicaddr)) | |
145 | 144 | return; |
146 | 145 | |
147 | - mp_ioapics[nr_ioapics].mp_apicaddr = m->mpc_apicaddr; | |
148 | - mp_ioapics[nr_ioapics].mp_apicid = m->mpc_apicid; | |
149 | - mp_ioapics[nr_ioapics].mp_type = m->mpc_type; | |
150 | - mp_ioapics[nr_ioapics].mp_apicver = m->mpc_apicver; | |
151 | - mp_ioapics[nr_ioapics].mp_flags = m->mpc_flags; | |
146 | + mp_ioapics[nr_ioapics].mp_apicaddr = m->apicaddr; | |
147 | + mp_ioapics[nr_ioapics].mp_apicid = m->apicid; | |
148 | + mp_ioapics[nr_ioapics].mp_type = m->type; | |
149 | + mp_ioapics[nr_ioapics].mp_apicver = m->apicver; | |
150 | + mp_ioapics[nr_ioapics].mp_flags = m->flags; | |
152 | 151 | nr_ioapics++; |
153 | 152 | } |
154 | 153 | |
155 | -static void print_MP_intsrc_info(struct mpc_config_intsrc *m) | |
154 | +static void print_MP_intsrc_info(struct mpc_intsrc *m) | |
156 | 155 | { |
157 | 156 | apic_printk(APIC_VERBOSE, "Int: type %d, pol %d, trig %d, bus %02x," |
158 | 157 | " IRQ %02x, APIC ID %x, APIC INT %02x\n", |
159 | - m->mpc_irqtype, m->mpc_irqflag & 3, | |
160 | - (m->mpc_irqflag >> 2) & 3, m->mpc_srcbus, | |
161 | - m->mpc_srcbusirq, m->mpc_dstapic, m->mpc_dstirq); | |
158 | + m->irqtype, m->irqflag & 3, (m->irqflag >> 2) & 3, m->srcbus, | |
159 | + m->srcbusirq, m->dstapic, m->dstirq); | |
162 | 160 | } |
163 | 161 | |
164 | 162 | static void __init print_mp_irq_info(struct mp_config_intsrc *mp_irq) |
165 | 163 | |
166 | 164 | |
167 | 165 | |
168 | 166 | |
169 | 167 | |
170 | 168 | |
171 | 169 | |
172 | 170 | |
173 | 171 | |
174 | 172 | |
175 | 173 | |
176 | 174 | |
... | ... | @@ -170,52 +168,52 @@ |
170 | 168 | mp_irq->mp_srcbusirq, mp_irq->mp_dstapic, mp_irq->mp_dstirq); |
171 | 169 | } |
172 | 170 | |
173 | -static void __init assign_to_mp_irq(struct mpc_config_intsrc *m, | |
171 | +static void __init assign_to_mp_irq(struct mpc_intsrc *m, | |
174 | 172 | struct mp_config_intsrc *mp_irq) |
175 | 173 | { |
176 | - mp_irq->mp_dstapic = m->mpc_dstapic; | |
177 | - mp_irq->mp_type = m->mpc_type; | |
178 | - mp_irq->mp_irqtype = m->mpc_irqtype; | |
179 | - mp_irq->mp_irqflag = m->mpc_irqflag; | |
180 | - mp_irq->mp_srcbus = m->mpc_srcbus; | |
181 | - mp_irq->mp_srcbusirq = m->mpc_srcbusirq; | |
182 | - mp_irq->mp_dstirq = m->mpc_dstirq; | |
174 | + mp_irq->mp_dstapic = m->dstapic; | |
175 | + mp_irq->mp_type = m->type; | |
176 | + mp_irq->mp_irqtype = m->irqtype; | |
177 | + mp_irq->mp_irqflag = m->irqflag; | |
178 | + mp_irq->mp_srcbus = m->srcbus; | |
179 | + mp_irq->mp_srcbusirq = m->srcbusirq; | |
180 | + mp_irq->mp_dstirq = m->dstirq; | |
183 | 181 | } |
184 | 182 | |
185 | 183 | static void __init assign_to_mpc_intsrc(struct mp_config_intsrc *mp_irq, |
186 | - struct mpc_config_intsrc *m) | |
184 | + struct mpc_intsrc *m) | |
187 | 185 | { |
188 | - m->mpc_dstapic = mp_irq->mp_dstapic; | |
189 | - m->mpc_type = mp_irq->mp_type; | |
190 | - m->mpc_irqtype = mp_irq->mp_irqtype; | |
191 | - m->mpc_irqflag = mp_irq->mp_irqflag; | |
192 | - m->mpc_srcbus = mp_irq->mp_srcbus; | |
193 | - m->mpc_srcbusirq = mp_irq->mp_srcbusirq; | |
194 | - m->mpc_dstirq = mp_irq->mp_dstirq; | |
186 | + m->dstapic = mp_irq->mp_dstapic; | |
187 | + m->type = mp_irq->mp_type; | |
188 | + m->irqtype = mp_irq->mp_irqtype; | |
189 | + m->irqflag = mp_irq->mp_irqflag; | |
190 | + m->srcbus = mp_irq->mp_srcbus; | |
191 | + m->srcbusirq = mp_irq->mp_srcbusirq; | |
192 | + m->dstirq = mp_irq->mp_dstirq; | |
195 | 193 | } |
196 | 194 | |
197 | 195 | static int __init mp_irq_mpc_intsrc_cmp(struct mp_config_intsrc *mp_irq, |
198 | - struct mpc_config_intsrc *m) | |
196 | + struct mpc_intsrc *m) | |
199 | 197 | { |
200 | - if (mp_irq->mp_dstapic != m->mpc_dstapic) | |
198 | + if (mp_irq->mp_dstapic != m->dstapic) | |
201 | 199 | return 1; |
202 | - if (mp_irq->mp_type != m->mpc_type) | |
200 | + if (mp_irq->mp_type != m->type) | |
203 | 201 | return 2; |
204 | - if (mp_irq->mp_irqtype != m->mpc_irqtype) | |
202 | + if (mp_irq->mp_irqtype != m->irqtype) | |
205 | 203 | return 3; |
206 | - if (mp_irq->mp_irqflag != m->mpc_irqflag) | |
204 | + if (mp_irq->mp_irqflag != m->irqflag) | |
207 | 205 | return 4; |
208 | - if (mp_irq->mp_srcbus != m->mpc_srcbus) | |
206 | + if (mp_irq->mp_srcbus != m->srcbus) | |
209 | 207 | return 5; |
210 | - if (mp_irq->mp_srcbusirq != m->mpc_srcbusirq) | |
208 | + if (mp_irq->mp_srcbusirq != m->srcbusirq) | |
211 | 209 | return 6; |
212 | - if (mp_irq->mp_dstirq != m->mpc_dstirq) | |
210 | + if (mp_irq->mp_dstirq != m->dstirq) | |
213 | 211 | return 7; |
214 | 212 | |
215 | 213 | return 0; |
216 | 214 | } |
217 | 215 | |
218 | -static void __init MP_intsrc_info(struct mpc_config_intsrc *m) | |
216 | +static void __init MP_intsrc_info(struct mpc_intsrc *m) | |
219 | 217 | { |
220 | 218 | int i; |
221 | 219 | |
222 | 220 | |
223 | 221 | |
224 | 222 | |
225 | 223 | |
226 | 224 | |
227 | 225 | |
228 | 226 | |
229 | 227 | |
230 | 228 | |
231 | 229 | |
232 | 230 | |
233 | 231 | |
... | ... | @@ -233,57 +231,55 @@ |
233 | 231 | |
234 | 232 | #endif |
235 | 233 | |
236 | -static void __init MP_lintsrc_info(struct mpc_config_lintsrc *m) | |
234 | +static void __init MP_lintsrc_info(struct mpc_lintsrc *m) | |
237 | 235 | { |
238 | 236 | apic_printk(APIC_VERBOSE, "Lint: type %d, pol %d, trig %d, bus %02x," |
239 | 237 | " IRQ %02x, APIC ID %x, APIC LINT %02x\n", |
240 | - m->mpc_irqtype, m->mpc_irqflag & 3, | |
241 | - (m->mpc_irqflag >> 2) & 3, m->mpc_srcbusid, | |
242 | - m->mpc_srcbusirq, m->mpc_destapic, m->mpc_destapiclint); | |
238 | + m->irqtype, m->irqflag & 3, (m->irqflag >> 2) & 3, m->srcbusid, | |
239 | + m->srcbusirq, m->destapic, m->destapiclint); | |
243 | 240 | } |
244 | 241 | |
245 | 242 | /* |
246 | 243 | * Read/parse the MPC |
247 | 244 | */ |
248 | 245 | |
249 | -static int __init smp_check_mpc(struct mp_config_table *mpc, char *oem, | |
250 | - char *str) | |
246 | +static int __init smp_check_mpc(struct mpc_table *mpc, char *oem, char *str) | |
251 | 247 | { |
252 | 248 | |
253 | - if (memcmp(mpc->mpc_signature, MPC_SIGNATURE, 4)) { | |
249 | + if (memcmp(mpc->signature, MPC_SIGNATURE, 4)) { | |
254 | 250 | printk(KERN_ERR "MPTABLE: bad signature [%c%c%c%c]!\n", |
255 | - mpc->mpc_signature[0], mpc->mpc_signature[1], | |
256 | - mpc->mpc_signature[2], mpc->mpc_signature[3]); | |
251 | + mpc->signature[0], mpc->signature[1], | |
252 | + mpc->signature[2], mpc->signature[3]); | |
257 | 253 | return 0; |
258 | 254 | } |
259 | - if (mpf_checksum((unsigned char *)mpc, mpc->mpc_length)) { | |
255 | + if (mpf_checksum((unsigned char *)mpc, mpc->length)) { | |
260 | 256 | printk(KERN_ERR "MPTABLE: checksum error!\n"); |
261 | 257 | return 0; |
262 | 258 | } |
263 | - if (mpc->mpc_spec != 0x01 && mpc->mpc_spec != 0x04) { | |
259 | + if (mpc->spec != 0x01 && mpc->spec != 0x04) { | |
264 | 260 | printk(KERN_ERR "MPTABLE: bad table version (%d)!!\n", |
265 | - mpc->mpc_spec); | |
261 | + mpc->spec); | |
266 | 262 | return 0; |
267 | 263 | } |
268 | - if (!mpc->mpc_lapic) { | |
264 | + if (!mpc->lapic) { | |
269 | 265 | printk(KERN_ERR "MPTABLE: null local APIC address!\n"); |
270 | 266 | return 0; |
271 | 267 | } |
272 | - memcpy(oem, mpc->mpc_oem, 8); | |
268 | + memcpy(oem, mpc->oem, 8); | |
273 | 269 | oem[8] = 0; |
274 | 270 | printk(KERN_INFO "MPTABLE: OEM ID: %s\n", oem); |
275 | 271 | |
276 | - memcpy(str, mpc->mpc_productid, 12); | |
272 | + memcpy(str, mpc->productid, 12); | |
277 | 273 | str[12] = 0; |
278 | 274 | |
279 | 275 | printk(KERN_INFO "MPTABLE: Product ID: %s\n", str); |
280 | 276 | |
281 | - printk(KERN_INFO "MPTABLE: APIC at: 0x%X\n", mpc->mpc_lapic); | |
277 | + printk(KERN_INFO "MPTABLE: APIC at: 0x%X\n", mpc->lapic); | |
282 | 278 | |
283 | 279 | return 1; |
284 | 280 | } |
285 | 281 | |
286 | -static int __init smp_read_mpc(struct mp_config_table *mpc, unsigned early) | |
282 | +static int __init smp_read_mpc(struct mpc_table *mpc, unsigned early) | |
287 | 283 | { |
288 | 284 | char str[16]; |
289 | 285 | char oem[10]; |
290 | 286 | |
... | ... | @@ -308,14 +304,14 @@ |
308 | 304 | #endif |
309 | 305 | /* save the local APIC address, it might be non-default */ |
310 | 306 | if (!acpi_lapic) |
311 | - mp_lapic_addr = mpc->mpc_lapic; | |
307 | + mp_lapic_addr = mpc->lapic; | |
312 | 308 | |
313 | 309 | if (early) |
314 | 310 | return 1; |
315 | 311 | |
316 | - if (mpc->mpc_oemptr && x86_quirks->smp_read_mpc_oem) { | |
317 | - struct mp_config_oemtable *oem_table = (struct mp_config_oemtable *)(unsigned long)mpc->mpc_oemptr; | |
318 | - x86_quirks->smp_read_mpc_oem(oem_table, mpc->mpc_oemsize); | |
312 | + if (mpc->oemptr && x86_quirks->smp_read_mpc_oem) { | |
313 | + struct mpc_oemtable *oem_table = (void *)(long)mpc->oemptr; | |
314 | + x86_quirks->smp_read_mpc_oem(oem_table, mpc->oemsize); | |
319 | 315 | } |
320 | 316 | |
321 | 317 | /* |
322 | 318 | |
... | ... | @@ -324,12 +320,11 @@ |
324 | 320 | if (x86_quirks->mpc_record) |
325 | 321 | *x86_quirks->mpc_record = 0; |
326 | 322 | |
327 | - while (count < mpc->mpc_length) { | |
323 | + while (count < mpc->length) { | |
328 | 324 | switch (*mpt) { |
329 | 325 | case MP_PROCESSOR: |
330 | 326 | { |
331 | - struct mpc_config_processor *m = | |
332 | - (struct mpc_config_processor *)mpt; | |
327 | + struct mpc_cpu *m = (struct mpc_cpu *)mpt; | |
333 | 328 | /* ACPI may have already provided this data */ |
334 | 329 | if (!acpi_lapic) |
335 | 330 | MP_processor_info(m); |
... | ... | @@ -339,8 +334,7 @@ |
339 | 334 | } |
340 | 335 | case MP_BUS: |
341 | 336 | { |
342 | - struct mpc_config_bus *m = | |
343 | - (struct mpc_config_bus *)mpt; | |
337 | + struct mpc_bus *m = (struct mpc_bus *)mpt; | |
344 | 338 | #ifdef CONFIG_X86_IO_APIC |
345 | 339 | MP_bus_info(m); |
346 | 340 | #endif |
347 | 341 | |
348 | 342 | |
349 | 343 | |
350 | 344 | |
... | ... | @@ -351,30 +345,28 @@ |
351 | 345 | case MP_IOAPIC: |
352 | 346 | { |
353 | 347 | #ifdef CONFIG_X86_IO_APIC |
354 | - struct mpc_config_ioapic *m = | |
355 | - (struct mpc_config_ioapic *)mpt; | |
348 | + struct mpc_ioapic *m = (struct mpc_ioapic *)mpt; | |
356 | 349 | MP_ioapic_info(m); |
357 | 350 | #endif |
358 | - mpt += sizeof(struct mpc_config_ioapic); | |
359 | - count += sizeof(struct mpc_config_ioapic); | |
351 | + mpt += sizeof(struct mpc_ioapic); | |
352 | + count += sizeof(struct mpc_ioapic); | |
360 | 353 | break; |
361 | 354 | } |
362 | 355 | case MP_INTSRC: |
363 | 356 | { |
364 | 357 | #ifdef CONFIG_X86_IO_APIC |
365 | - struct mpc_config_intsrc *m = | |
366 | - (struct mpc_config_intsrc *)mpt; | |
358 | + struct mpc_intsrc *m = (struct mpc_intsrc *)mpt; | |
367 | 359 | |
368 | 360 | MP_intsrc_info(m); |
369 | 361 | #endif |
370 | - mpt += sizeof(struct mpc_config_intsrc); | |
371 | - count += sizeof(struct mpc_config_intsrc); | |
362 | + mpt += sizeof(struct mpc_intsrc); | |
363 | + count += sizeof(struct mpc_intsrc); | |
372 | 364 | break; |
373 | 365 | } |
374 | 366 | case MP_LINTSRC: |
375 | 367 | { |
376 | - struct mpc_config_lintsrc *m = | |
377 | - (struct mpc_config_lintsrc *)mpt; | |
368 | + struct mpc_lintsrc *m = | |
369 | + (struct mpc_lintsrc *)mpt; | |
378 | 370 | MP_lintsrc_info(m); |
379 | 371 | mpt += sizeof(*m); |
380 | 372 | count += sizeof(*m); |
... | ... | @@ -385,8 +377,8 @@ |
385 | 377 | printk(KERN_ERR "Your mptable is wrong, contact your HW vendor!\n"); |
386 | 378 | printk(KERN_ERR "type %x\n", *mpt); |
387 | 379 | print_hex_dump(KERN_ERR, " ", DUMP_PREFIX_ADDRESS, 16, |
388 | - 1, mpc, mpc->mpc_length, 1); | |
389 | - count = mpc->mpc_length; | |
380 | + 1, mpc, mpc->length, 1); | |
381 | + count = mpc->length; | |
390 | 382 | break; |
391 | 383 | } |
392 | 384 | if (x86_quirks->mpc_record) |
393 | 385 | |
394 | 386 | |
... | ... | @@ -417,16 +409,16 @@ |
417 | 409 | |
418 | 410 | static void __init construct_default_ioirq_mptable(int mpc_default_type) |
419 | 411 | { |
420 | - struct mpc_config_intsrc intsrc; | |
412 | + struct mpc_intsrc intsrc; | |
421 | 413 | int i; |
422 | 414 | int ELCR_fallback = 0; |
423 | 415 | |
424 | - intsrc.mpc_type = MP_INTSRC; | |
425 | - intsrc.mpc_irqflag = 0; /* conforming */ | |
426 | - intsrc.mpc_srcbus = 0; | |
427 | - intsrc.mpc_dstapic = mp_ioapics[0].mp_apicid; | |
416 | + intsrc.type = MP_INTSRC; | |
417 | + intsrc.irqflag = 0; /* conforming */ | |
418 | + intsrc.srcbus = 0; | |
419 | + intsrc.dstapic = mp_ioapics[0].mp_apicid; | |
428 | 420 | |
429 | - intsrc.mpc_irqtype = mp_INT; | |
421 | + intsrc.irqtype = mp_INT; | |
430 | 422 | |
431 | 423 | /* |
432 | 424 | * If true, we have an ISA/PCI system with no IRQ entries |
433 | 425 | |
434 | 426 | |
435 | 427 | |
436 | 428 | |
437 | 429 | |
... | ... | @@ -469,30 +461,30 @@ |
469 | 461 | * irqflag field (level sensitive, active high polarity). |
470 | 462 | */ |
471 | 463 | if (ELCR_trigger(i)) |
472 | - intsrc.mpc_irqflag = 13; | |
464 | + intsrc.irqflag = 13; | |
473 | 465 | else |
474 | - intsrc.mpc_irqflag = 0; | |
466 | + intsrc.irqflag = 0; | |
475 | 467 | } |
476 | 468 | |
477 | - intsrc.mpc_srcbusirq = i; | |
478 | - intsrc.mpc_dstirq = i ? i : 2; /* IRQ0 to INTIN2 */ | |
469 | + intsrc.srcbusirq = i; | |
470 | + intsrc.dstirq = i ? i : 2; /* IRQ0 to INTIN2 */ | |
479 | 471 | MP_intsrc_info(&intsrc); |
480 | 472 | } |
481 | 473 | |
482 | - intsrc.mpc_irqtype = mp_ExtINT; | |
483 | - intsrc.mpc_srcbusirq = 0; | |
484 | - intsrc.mpc_dstirq = 0; /* 8259A to INTIN0 */ | |
474 | + intsrc.irqtype = mp_ExtINT; | |
475 | + intsrc.srcbusirq = 0; | |
476 | + intsrc.dstirq = 0; /* 8259A to INTIN0 */ | |
485 | 477 | MP_intsrc_info(&intsrc); |
486 | 478 | } |
487 | 479 | |
488 | 480 | |
489 | 481 | static void __init construct_ioapic_table(int mpc_default_type) |
490 | 482 | { |
491 | - struct mpc_config_ioapic ioapic; | |
492 | - struct mpc_config_bus bus; | |
483 | + struct mpc_ioapic ioapic; | |
484 | + struct mpc_bus bus; | |
493 | 485 | |
494 | - bus.mpc_type = MP_BUS; | |
495 | - bus.mpc_busid = 0; | |
486 | + bus.type = MP_BUS; | |
487 | + bus.busid = 0; | |
496 | 488 | switch (mpc_default_type) { |
497 | 489 | default: |
498 | 490 | printk(KERN_ERR "???\nUnknown standard configuration %d\n", |
499 | 491 | |
500 | 492 | |
501 | 493 | |
502 | 494 | |
... | ... | @@ -500,29 +492,29 @@ |
500 | 492 | /* fall through */ |
501 | 493 | case 1: |
502 | 494 | case 5: |
503 | - memcpy(bus.mpc_bustype, "ISA ", 6); | |
495 | + memcpy(bus.bustype, "ISA ", 6); | |
504 | 496 | break; |
505 | 497 | case 2: |
506 | 498 | case 6: |
507 | 499 | case 3: |
508 | - memcpy(bus.mpc_bustype, "EISA ", 6); | |
500 | + memcpy(bus.bustype, "EISA ", 6); | |
509 | 501 | break; |
510 | 502 | case 4: |
511 | 503 | case 7: |
512 | - memcpy(bus.mpc_bustype, "MCA ", 6); | |
504 | + memcpy(bus.bustype, "MCA ", 6); | |
513 | 505 | } |
514 | 506 | MP_bus_info(&bus); |
515 | 507 | if (mpc_default_type > 4) { |
516 | - bus.mpc_busid = 1; | |
517 | - memcpy(bus.mpc_bustype, "PCI ", 6); | |
508 | + bus.busid = 1; | |
509 | + memcpy(bus.bustype, "PCI ", 6); | |
518 | 510 | MP_bus_info(&bus); |
519 | 511 | } |
520 | 512 | |
521 | - ioapic.mpc_type = MP_IOAPIC; | |
522 | - ioapic.mpc_apicid = 2; | |
523 | - ioapic.mpc_apicver = mpc_default_type > 4 ? 0x10 : 0x01; | |
524 | - ioapic.mpc_flags = MPC_APIC_USABLE; | |
525 | - ioapic.mpc_apicaddr = 0xFEC00000; | |
513 | + ioapic.type = MP_IOAPIC; | |
514 | + ioapic.apicid = 2; | |
515 | + ioapic.apicver = mpc_default_type > 4 ? 0x10 : 0x01; | |
516 | + ioapic.flags = MPC_APIC_USABLE; | |
517 | + ioapic.apicaddr = 0xFEC00000; | |
526 | 518 | MP_ioapic_info(&ioapic); |
527 | 519 | |
528 | 520 | /* |
... | ... | @@ -536,8 +528,8 @@ |
536 | 528 | |
537 | 529 | static inline void __init construct_default_ISA_mptable(int mpc_default_type) |
538 | 530 | { |
539 | - struct mpc_config_processor processor; | |
540 | - struct mpc_config_lintsrc lintsrc; | |
531 | + struct mpc_cpu processor; | |
532 | + struct mpc_lintsrc lintsrc; | |
541 | 533 | int linttypes[2] = { mp_ExtINT, mp_NMI }; |
542 | 534 | int i; |
543 | 535 | |
544 | 536 | |
545 | 537 | |
546 | 538 | |
547 | 539 | |
548 | 540 | |
... | ... | @@ -549,30 +541,30 @@ |
549 | 541 | /* |
550 | 542 | * 2 CPUs, numbered 0 & 1. |
551 | 543 | */ |
552 | - processor.mpc_type = MP_PROCESSOR; | |
544 | + processor.type = MP_PROCESSOR; | |
553 | 545 | /* Either an integrated APIC or a discrete 82489DX. */ |
554 | - processor.mpc_apicver = mpc_default_type > 4 ? 0x10 : 0x01; | |
555 | - processor.mpc_cpuflag = CPU_ENABLED; | |
556 | - processor.mpc_cpufeature = (boot_cpu_data.x86 << 8) | | |
546 | + processor.apicver = mpc_default_type > 4 ? 0x10 : 0x01; | |
547 | + processor.cpuflag = CPU_ENABLED; | |
548 | + processor.cpufeature = (boot_cpu_data.x86 << 8) | | |
557 | 549 | (boot_cpu_data.x86_model << 4) | boot_cpu_data.x86_mask; |
558 | - processor.mpc_featureflag = boot_cpu_data.x86_capability[0]; | |
559 | - processor.mpc_reserved[0] = 0; | |
560 | - processor.mpc_reserved[1] = 0; | |
550 | + processor.featureflag = boot_cpu_data.x86_capability[0]; | |
551 | + processor.reserved[0] = 0; | |
552 | + processor.reserved[1] = 0; | |
561 | 553 | for (i = 0; i < 2; i++) { |
562 | - processor.mpc_apicid = i; | |
554 | + processor.apicid = i; | |
563 | 555 | MP_processor_info(&processor); |
564 | 556 | } |
565 | 557 | |
566 | 558 | construct_ioapic_table(mpc_default_type); |
567 | 559 | |
568 | - lintsrc.mpc_type = MP_LINTSRC; | |
569 | - lintsrc.mpc_irqflag = 0; /* conforming */ | |
570 | - lintsrc.mpc_srcbusid = 0; | |
571 | - lintsrc.mpc_srcbusirq = 0; | |
572 | - lintsrc.mpc_destapic = MP_APIC_ALL; | |
560 | + lintsrc.type = MP_LINTSRC; | |
561 | + lintsrc.irqflag = 0; /* conforming */ | |
562 | + lintsrc.srcbusid = 0; | |
563 | + lintsrc.srcbusirq = 0; | |
564 | + lintsrc.destapic = MP_APIC_ALL; | |
573 | 565 | for (i = 0; i < 2; i++) { |
574 | - lintsrc.mpc_irqtype = linttypes[i]; | |
575 | - lintsrc.mpc_destapiclint = i; | |
566 | + lintsrc.irqtype = linttypes[i]; | |
567 | + lintsrc.destapiclint = i; | |
576 | 568 | MP_lintsrc_info(&lintsrc); |
577 | 569 | } |
578 | 570 | } |
579 | 571 | |
... | ... | @@ -657,15 +649,15 @@ |
657 | 649 | * ISA defaults and hope it will work. |
658 | 650 | */ |
659 | 651 | if (!mp_irq_entries) { |
660 | - struct mpc_config_bus bus; | |
652 | + struct mpc_bus bus; | |
661 | 653 | |
662 | 654 | printk(KERN_ERR "BIOS bug, no explicit IRQ entries, " |
663 | 655 | "using default mptable. " |
664 | 656 | "(tell your hw vendor)\n"); |
665 | 657 | |
666 | - bus.mpc_type = MP_BUS; | |
667 | - bus.mpc_busid = 0; | |
668 | - memcpy(bus.mpc_bustype, "ISA ", 6); | |
658 | + bus.type = MP_BUS; | |
659 | + bus.busid = 0; | |
660 | + memcpy(bus.bustype, "ISA ", 6); | |
669 | 661 | MP_bus_info(&bus); |
670 | 662 | |
671 | 663 | construct_default_ioirq_mptable(0); |
672 | 664 | |
673 | 665 | |
... | ... | @@ -803,14 +795,14 @@ |
803 | 795 | #ifdef CONFIG_X86_IO_APIC |
804 | 796 | static u8 __initdata irq_used[MAX_IRQ_SOURCES]; |
805 | 797 | |
806 | -static int __init get_MP_intsrc_index(struct mpc_config_intsrc *m) | |
798 | +static int __init get_MP_intsrc_index(struct mpc_intsrc *m) | |
807 | 799 | { |
808 | 800 | int i; |
809 | 801 | |
810 | - if (m->mpc_irqtype != mp_INT) | |
802 | + if (m->irqtype != mp_INT) | |
811 | 803 | return 0; |
812 | 804 | |
813 | - if (m->mpc_irqflag != 0x0f) | |
805 | + if (m->irqflag != 0x0f) | |
814 | 806 | return 0; |
815 | 807 | |
816 | 808 | /* not legacy */ |
817 | 809 | |
... | ... | @@ -822,9 +814,9 @@ |
822 | 814 | if (mp_irqs[i].mp_irqflag != 0x0f) |
823 | 815 | continue; |
824 | 816 | |
825 | - if (mp_irqs[i].mp_srcbus != m->mpc_srcbus) | |
817 | + if (mp_irqs[i].mp_srcbus != m->srcbus) | |
826 | 818 | continue; |
827 | - if (mp_irqs[i].mp_srcbusirq != m->mpc_srcbusirq) | |
819 | + if (mp_irqs[i].mp_srcbusirq != m->srcbusirq) | |
828 | 820 | continue; |
829 | 821 | if (irq_used[i]) { |
830 | 822 | /* already claimed */ |
831 | 823 | |
... | ... | @@ -840,10 +832,10 @@ |
840 | 832 | |
841 | 833 | #define SPARE_SLOT_NUM 20 |
842 | 834 | |
843 | -static struct mpc_config_intsrc __initdata *m_spare[SPARE_SLOT_NUM]; | |
835 | +static struct mpc_intsrc __initdata *m_spare[SPARE_SLOT_NUM]; | |
844 | 836 | #endif |
845 | 837 | |
846 | -static int __init replace_intsrc_all(struct mp_config_table *mpc, | |
838 | +static int __init replace_intsrc_all(struct mpc_table *mpc, | |
847 | 839 | unsigned long mpc_new_phys, |
848 | 840 | unsigned long mpc_new_length) |
849 | 841 | { |
850 | 842 | |
851 | 843 | |
852 | 844 | |
853 | 845 | |
... | ... | @@ -855,36 +847,33 @@ |
855 | 847 | int count = sizeof(*mpc); |
856 | 848 | unsigned char *mpt = ((unsigned char *)mpc) + count; |
857 | 849 | |
858 | - printk(KERN_INFO "mpc_length %x\n", mpc->mpc_length); | |
859 | - while (count < mpc->mpc_length) { | |
850 | + printk(KERN_INFO "mpc_length %x\n", mpc->length); | |
851 | + while (count < mpc->length) { | |
860 | 852 | switch (*mpt) { |
861 | 853 | case MP_PROCESSOR: |
862 | 854 | { |
863 | - struct mpc_config_processor *m = | |
864 | - (struct mpc_config_processor *)mpt; | |
855 | + struct mpc_cpu *m = (struct mpc_cpu *)mpt; | |
865 | 856 | mpt += sizeof(*m); |
866 | 857 | count += sizeof(*m); |
867 | 858 | break; |
868 | 859 | } |
869 | 860 | case MP_BUS: |
870 | 861 | { |
871 | - struct mpc_config_bus *m = | |
872 | - (struct mpc_config_bus *)mpt; | |
862 | + struct mpc_bus *m = (struct mpc_bus *)mpt; | |
873 | 863 | mpt += sizeof(*m); |
874 | 864 | count += sizeof(*m); |
875 | 865 | break; |
876 | 866 | } |
877 | 867 | case MP_IOAPIC: |
878 | 868 | { |
879 | - mpt += sizeof(struct mpc_config_ioapic); | |
880 | - count += sizeof(struct mpc_config_ioapic); | |
869 | + mpt += sizeof(struct mpc_ioapic); | |
870 | + count += sizeof(struct mpc_ioapic); | |
881 | 871 | break; |
882 | 872 | } |
883 | 873 | case MP_INTSRC: |
884 | 874 | { |
885 | 875 | #ifdef CONFIG_X86_IO_APIC |
886 | - struct mpc_config_intsrc *m = | |
887 | - (struct mpc_config_intsrc *)mpt; | |
876 | + struct mpc_intsrc *m = (struct mpc_intsrc *)mpt; | |
888 | 877 | |
889 | 878 | printk(KERN_INFO "OLD "); |
890 | 879 | print_MP_intsrc_info(m); |
891 | 880 | |
... | ... | @@ -905,14 +894,14 @@ |
905 | 894 | nr_m_spare++; |
906 | 895 | } |
907 | 896 | #endif |
908 | - mpt += sizeof(struct mpc_config_intsrc); | |
909 | - count += sizeof(struct mpc_config_intsrc); | |
897 | + mpt += sizeof(struct mpc_intsrc); | |
898 | + count += sizeof(struct mpc_intsrc); | |
910 | 899 | break; |
911 | 900 | } |
912 | 901 | case MP_LINTSRC: |
913 | 902 | { |
914 | - struct mpc_config_lintsrc *m = | |
915 | - (struct mpc_config_lintsrc *)mpt; | |
903 | + struct mpc_lintsrc *m = | |
904 | + (struct mpc_lintsrc *)mpt; | |
916 | 905 | mpt += sizeof(*m); |
917 | 906 | count += sizeof(*m); |
918 | 907 | break; |
... | ... | @@ -922,7 +911,7 @@ |
922 | 911 | printk(KERN_ERR "Your mptable is wrong, contact your HW vendor!\n"); |
923 | 912 | printk(KERN_ERR "type %x\n", *mpt); |
924 | 913 | print_hex_dump(KERN_ERR, " ", DUMP_PREFIX_ADDRESS, 16, |
925 | - 1, mpc, mpc->mpc_length, 1); | |
914 | + 1, mpc, mpc->length, 1); | |
926 | 915 | goto out; |
927 | 916 | } |
928 | 917 | } |
... | ... | @@ -944,9 +933,8 @@ |
944 | 933 | assign_to_mpc_intsrc(&mp_irqs[i], m_spare[nr_m_spare]); |
945 | 934 | m_spare[nr_m_spare] = NULL; |
946 | 935 | } else { |
947 | - struct mpc_config_intsrc *m = | |
948 | - (struct mpc_config_intsrc *)mpt; | |
949 | - count += sizeof(struct mpc_config_intsrc); | |
936 | + struct mpc_intsrc *m = (struct mpc_intsrc *)mpt; | |
937 | + count += sizeof(struct mpc_intsrc); | |
950 | 938 | if (!mpc_new_phys) { |
951 | 939 | printk(KERN_INFO "No spare slots, try to append...take your risk, new mpc_length %x\n", count); |
952 | 940 | } else { |
953 | 941 | |
... | ... | @@ -958,17 +946,16 @@ |
958 | 946 | } |
959 | 947 | } |
960 | 948 | assign_to_mpc_intsrc(&mp_irqs[i], m); |
961 | - mpc->mpc_length = count; | |
962 | - mpt += sizeof(struct mpc_config_intsrc); | |
949 | + mpc->length = count; | |
950 | + mpt += sizeof(struct mpc_intsrc); | |
963 | 951 | } |
964 | 952 | print_mp_irq_info(&mp_irqs[i]); |
965 | 953 | } |
966 | 954 | #endif |
967 | 955 | out: |
968 | 956 | /* update checksum */ |
969 | - mpc->mpc_checksum = 0; | |
970 | - mpc->mpc_checksum -= mpf_checksum((unsigned char *)mpc, | |
971 | - mpc->mpc_length); | |
957 | + mpc->checksum = 0; | |
958 | + mpc->checksum -= mpf_checksum((unsigned char *)mpc, mpc->length); | |
972 | 959 | |
973 | 960 | return 0; |
974 | 961 | } |
... | ... | @@ -1014,8 +1001,7 @@ |
1014 | 1001 | char str[16]; |
1015 | 1002 | char oem[10]; |
1016 | 1003 | struct intel_mp_floating *mpf; |
1017 | - struct mp_config_table *mpc; | |
1018 | - struct mp_config_table *mpc_new; | |
1004 | + struct mpc_table *mpc, *mpc_new; | |
1019 | 1005 | |
1020 | 1006 | if (!enable_update_mptable) |
1021 | 1007 | return 0; |
... | ... | @@ -1041,7 +1027,7 @@ |
1041 | 1027 | printk(KERN_INFO "mpf: %lx\n", virt_to_phys(mpf)); |
1042 | 1028 | printk(KERN_INFO "mpf_physptr: %x\n", mpf->mpf_physptr); |
1043 | 1029 | |
1044 | - if (mpc_new_phys && mpc->mpc_length > mpc_new_length) { | |
1030 | + if (mpc_new_phys && mpc->length > mpc_new_length) { | |
1045 | 1031 | mpc_new_phys = 0; |
1046 | 1032 | printk(KERN_INFO "mpc_new_length is %ld, please use alloc_mptable=8k\n", |
1047 | 1033 | mpc_new_length); |
... | ... | @@ -1050,10 +1036,10 @@ |
1050 | 1036 | if (!mpc_new_phys) { |
1051 | 1037 | unsigned char old, new; |
1052 | 1038 | /* check if we can change the postion */ |
1053 | - mpc->mpc_checksum = 0; | |
1054 | - old = mpf_checksum((unsigned char *)mpc, mpc->mpc_length); | |
1055 | - mpc->mpc_checksum = 0xff; | |
1056 | - new = mpf_checksum((unsigned char *)mpc, mpc->mpc_length); | |
1039 | + mpc->checksum = 0; | |
1040 | + old = mpf_checksum((unsigned char *)mpc, mpc->length); | |
1041 | + mpc->checksum = 0xff; | |
1042 | + new = mpf_checksum((unsigned char *)mpc, mpc->length); | |
1057 | 1043 | if (old == new) { |
1058 | 1044 | printk(KERN_INFO "mpc is readonly, please try alloc_mptable instead\n"); |
1059 | 1045 | return 0; |
... | ... | @@ -1062,7 +1048,7 @@ |
1062 | 1048 | } else { |
1063 | 1049 | mpf->mpf_physptr = mpc_new_phys; |
1064 | 1050 | mpc_new = phys_to_virt(mpc_new_phys); |
1065 | - memcpy(mpc_new, mpc, mpc->mpc_length); | |
1051 | + memcpy(mpc_new, mpc, mpc->length); | |
1066 | 1052 | mpc = mpc_new; |
1067 | 1053 | /* check if we can modify that */ |
1068 | 1054 | if (mpc_new_phys - mpf->mpf_physptr) { |
arch/x86/kernel/nmi.c
arch/x86/kernel/numaq_32.c
... | ... | @@ -117,16 +117,15 @@ |
117 | 117 | } |
118 | 118 | |
119 | 119 | /* x86_quirks member */ |
120 | -static int mpc_apic_id(struct mpc_config_processor *m) | |
120 | +static int mpc_apic_id(struct mpc_cpu *m) | |
121 | 121 | { |
122 | 122 | int quad = translation_table[mpc_record]->trans_quad; |
123 | - int logical_apicid = generate_logical_apicid(quad, m->mpc_apicid); | |
123 | + int logical_apicid = generate_logical_apicid(quad, m->apicid); | |
124 | 124 | |
125 | 125 | printk(KERN_DEBUG "Processor #%d %u:%u APIC version %d (quad %d, apic %d)\n", |
126 | - m->mpc_apicid, | |
127 | - (m->mpc_cpufeature & CPU_FAMILY_MASK) >> 8, | |
128 | - (m->mpc_cpufeature & CPU_MODEL_MASK) >> 4, | |
129 | - m->mpc_apicver, quad, logical_apicid); | |
126 | + m->apicid, (m->cpufeature & CPU_FAMILY_MASK) >> 8, | |
127 | + (m->cpufeature & CPU_MODEL_MASK) >> 4, | |
128 | + m->apicver, quad, logical_apicid); | |
130 | 129 | return logical_apicid; |
131 | 130 | } |
132 | 131 | |
133 | 132 | |
134 | 133 | |
135 | 134 | |
136 | 135 | |
... | ... | @@ -135,26 +134,26 @@ |
135 | 134 | int mp_bus_id_to_local[MAX_MP_BUSSES]; |
136 | 135 | |
137 | 136 | /* x86_quirks member */ |
138 | -static void mpc_oem_bus_info(struct mpc_config_bus *m, char *name) | |
137 | +static void mpc_oem_bus_info(struct mpc_bus *m, char *name) | |
139 | 138 | { |
140 | 139 | int quad = translation_table[mpc_record]->trans_quad; |
141 | 140 | int local = translation_table[mpc_record]->trans_local; |
142 | 141 | |
143 | - mp_bus_id_to_node[m->mpc_busid] = quad; | |
144 | - mp_bus_id_to_local[m->mpc_busid] = local; | |
142 | + mp_bus_id_to_node[m->busid] = quad; | |
143 | + mp_bus_id_to_local[m->busid] = local; | |
145 | 144 | printk(KERN_INFO "Bus #%d is %s (node %d)\n", |
146 | - m->mpc_busid, name, quad); | |
145 | + m->busid, name, quad); | |
147 | 146 | } |
148 | 147 | |
149 | 148 | int quad_local_to_mp_bus_id [NR_CPUS/4][4]; |
150 | 149 | |
151 | 150 | /* x86_quirks member */ |
152 | -static void mpc_oem_pci_bus(struct mpc_config_bus *m) | |
151 | +static void mpc_oem_pci_bus(struct mpc_bus *m) | |
153 | 152 | { |
154 | 153 | int quad = translation_table[mpc_record]->trans_quad; |
155 | 154 | int local = translation_table[mpc_record]->trans_local; |
156 | 155 | |
157 | - quad_local_to_mp_bus_id[quad][local] = m->mpc_busid; | |
156 | + quad_local_to_mp_bus_id[quad][local] = m->busid; | |
158 | 157 | } |
159 | 158 | |
160 | 159 | static void __init MP_translation_info(struct mpc_config_translation *m) |
... | ... | @@ -186,7 +185,7 @@ |
186 | 185 | * Read/parse the MPC oem tables |
187 | 186 | */ |
188 | 187 | |
189 | -static void __init smp_read_mpc_oem(struct mp_config_oemtable *oemtable, | |
188 | +static void __init smp_read_mpc_oem(struct mpc_oemtable *oemtable, | |
190 | 189 | unsigned short oemsize) |
191 | 190 | { |
192 | 191 | int count = sizeof(*oemtable); /* the header size */ |
193 | 192 | |
194 | 193 | |
195 | 194 | |
... | ... | @@ -195,18 +194,18 @@ |
195 | 194 | mpc_record = 0; |
196 | 195 | printk(KERN_INFO "Found an OEM MPC table at %8p - parsing it ... \n", |
197 | 196 | oemtable); |
198 | - if (memcmp(oemtable->oem_signature, MPC_OEM_SIGNATURE, 4)) { | |
197 | + if (memcmp(oemtable->signature, MPC_OEM_SIGNATURE, 4)) { | |
199 | 198 | printk(KERN_WARNING |
200 | 199 | "SMP mpc oemtable: bad signature [%c%c%c%c]!\n", |
201 | - oemtable->oem_signature[0], oemtable->oem_signature[1], | |
202 | - oemtable->oem_signature[2], oemtable->oem_signature[3]); | |
200 | + oemtable->signature[0], oemtable->signature[1], | |
201 | + oemtable->signature[2], oemtable->signature[3]); | |
203 | 202 | return; |
204 | 203 | } |
205 | - if (mpf_checksum((unsigned char *)oemtable, oemtable->oem_length)) { | |
204 | + if (mpf_checksum((unsigned char *)oemtable, oemtable->length)) { | |
206 | 205 | printk(KERN_WARNING "SMP oem mptable: checksum error!\n"); |
207 | 206 | return; |
208 | 207 | } |
209 | - while (count < oemtable->oem_length) { | |
208 | + while (count < oemtable->length) { | |
210 | 209 | switch (*oemptr) { |
211 | 210 | case MP_TRANSLATION: |
212 | 211 | { |
... | ... | @@ -260,8 +259,7 @@ |
260 | 259 | .update_genapic = numaq_update_genapic, |
261 | 260 | }; |
262 | 261 | |
263 | -void numaq_mps_oem_check(struct mp_config_table *mpc, char *oem, | |
264 | - char *productid) | |
262 | +void numaq_mps_oem_check(struct mpc_table *mpc, char *oem, char *productid) | |
265 | 263 | { |
266 | 264 | if (strncmp(oem, "IBM NUMA", 8)) |
267 | 265 | printk("Warning! Not a NUMA-Q system!\n"); |
arch/x86/kernel/process_32.c
... | ... | @@ -39,11 +39,12 @@ |
39 | 39 | #include <linux/prctl.h> |
40 | 40 | #include <linux/dmi.h> |
41 | 41 | #include <linux/ftrace.h> |
42 | +#include <linux/uaccess.h> | |
43 | +#include <linux/io.h> | |
44 | +#include <linux/kdebug.h> | |
42 | 45 | |
43 | -#include <asm/uaccess.h> | |
44 | 46 | #include <asm/pgtable.h> |
45 | 47 | #include <asm/system.h> |
46 | -#include <asm/io.h> | |
47 | 48 | #include <asm/ldt.h> |
48 | 49 | #include <asm/processor.h> |
49 | 50 | #include <asm/i387.h> |
50 | 51 | |
... | ... | @@ -56,10 +57,8 @@ |
56 | 57 | |
57 | 58 | #include <asm/tlbflush.h> |
58 | 59 | #include <asm/cpu.h> |
59 | -#include <asm/kdebug.h> | |
60 | 60 | #include <asm/idle.h> |
61 | 61 | #include <asm/syscalls.h> |
62 | -#include <asm/smp.h> | |
63 | 62 | #include <asm/ds.h> |
64 | 63 | |
65 | 64 | asmlinkage void ret_from_fork(void) __asm__("ret_from_fork"); |
... | ... | @@ -205,7 +204,7 @@ |
205 | 204 | /* |
206 | 205 | * Create a kernel thread |
207 | 206 | */ |
208 | -int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) | |
207 | +int kernel_thread(int (*fn)(void *), void *arg, unsigned long flags) | |
209 | 208 | { |
210 | 209 | struct pt_regs regs; |
211 | 210 | |
... | ... | @@ -266,7 +265,7 @@ |
266 | 265 | tsk->thread.debugreg3 = 0; |
267 | 266 | tsk->thread.debugreg6 = 0; |
268 | 267 | tsk->thread.debugreg7 = 0; |
269 | - memset(tsk->thread.tls_array, 0, sizeof(tsk->thread.tls_array)); | |
268 | + memset(tsk->thread.tls_array, 0, sizeof(tsk->thread.tls_array)); | |
270 | 269 | clear_tsk_thread_flag(tsk, TIF_DEBUG); |
271 | 270 | /* |
272 | 271 | * Forget coprocessor state.. |
273 | 272 | |
... | ... | @@ -293,9 +292,9 @@ |
293 | 292 | |
294 | 293 | int copy_thread(int nr, unsigned long clone_flags, unsigned long sp, |
295 | 294 | unsigned long unused, |
296 | - struct task_struct * p, struct pt_regs * regs) | |
295 | + struct task_struct *p, struct pt_regs *regs) | |
297 | 296 | { |
298 | - struct pt_regs * childregs; | |
297 | + struct pt_regs *childregs; | |
299 | 298 | struct task_struct *tsk; |
300 | 299 | int err; |
301 | 300 | |
... | ... | @@ -347,7 +346,7 @@ |
347 | 346 | void |
348 | 347 | start_thread(struct pt_regs *regs, unsigned long new_ip, unsigned long new_sp) |
349 | 348 | { |
350 | - __asm__("movl %0, %%gs" :: "r"(0)); | |
349 | + __asm__("movl %0, %%gs" : : "r"(0)); | |
351 | 350 | regs->fs = 0; |
352 | 351 | set_fs(USER_DS); |
353 | 352 | regs->ds = __USER_DS; |
... | ... | @@ -638,7 +637,7 @@ |
638 | 637 | asmlinkage int sys_execve(struct pt_regs regs) |
639 | 638 | { |
640 | 639 | int error; |
641 | - char * filename; | |
640 | + char *filename; | |
642 | 641 | |
643 | 642 | filename = getname((char __user *) regs.bx); |
644 | 643 | error = PTR_ERR(filename); |
arch/x86/kernel/setup_percpu.c
... | ... | @@ -5,12 +5,11 @@ |
5 | 5 | #include <linux/percpu.h> |
6 | 6 | #include <linux/kexec.h> |
7 | 7 | #include <linux/crash_dump.h> |
8 | -#include <asm/smp.h> | |
9 | -#include <asm/percpu.h> | |
8 | +#include <linux/smp.h> | |
9 | +#include <linux/topology.h> | |
10 | 10 | #include <asm/sections.h> |
11 | 11 | #include <asm/processor.h> |
12 | 12 | #include <asm/setup.h> |
13 | -#include <asm/topology.h> | |
14 | 13 | #include <asm/mpspec.h> |
15 | 14 | #include <asm/apicdef.h> |
16 | 15 | #include <asm/highmem.h> |
17 | 16 | |
... | ... | @@ -20,8 +19,8 @@ |
20 | 19 | unsigned disabled_cpus __cpuinitdata; |
21 | 20 | /* Processor that is doing the boot up */ |
22 | 21 | unsigned int boot_cpu_physical_apicid = -1U; |
23 | -unsigned int max_physical_apicid; | |
24 | 22 | EXPORT_SYMBOL(boot_cpu_physical_apicid); |
23 | +unsigned int max_physical_apicid; | |
25 | 24 | |
26 | 25 | /* Bitmask of physically existing CPUs */ |
27 | 26 | physid_mask_t phys_cpu_present_map; |
... | ... | @@ -303,8 +302,8 @@ |
303 | 302 | |
304 | 303 | cpulist_scnprintf(buf, sizeof(buf), mask); |
305 | 304 | printk(KERN_DEBUG "%s cpu %d node %d: mask now %s\n", |
306 | - enable? "numa_add_cpu":"numa_remove_cpu", cpu, node, buf); | |
307 | - } | |
305 | + enable ? "numa_add_cpu" : "numa_remove_cpu", cpu, node, buf); | |
306 | +} | |
308 | 307 | |
309 | 308 | void __cpuinit numa_add_cpu(int cpu) |
310 | 309 | { |
arch/x86/kernel/smp.c
arch/x86/kernel/smpboot.c
arch/x86/kernel/time_32.c
... | ... | @@ -105,8 +105,8 @@ |
105 | 105 | high bit of the PPI port B (0x61). Note that some PS/2s, |
106 | 106 | notably the 55SX, work fine if this is removed. */ |
107 | 107 | |
108 | - u8 irq_v = inb_p( 0x61 ); /* read the current state */ | |
109 | - outb_p( irq_v|0x80, 0x61 ); /* reset the IRQ */ | |
108 | + u8 irq_v = inb_p(0x61); /* read the current state */ | |
109 | + outb_p(irq_v | 0x80, 0x61); /* reset the IRQ */ | |
110 | 110 | } |
111 | 111 | #endif |
112 | 112 |
arch/x86/kernel/time_64.c
... | ... | @@ -17,10 +17,10 @@ |
17 | 17 | #include <linux/module.h> |
18 | 18 | #include <linux/time.h> |
19 | 19 | #include <linux/mca.h> |
20 | +#include <linux/nmi.h> | |
20 | 21 | |
21 | 22 | #include <asm/i8253.h> |
22 | 23 | #include <asm/hpet.h> |
23 | -#include <asm/nmi.h> | |
24 | 24 | #include <asm/vgtod.h> |
25 | 25 | #include <asm/time.h> |
26 | 26 | #include <asm/timer.h> |
arch/x86/kernel/traps.c
arch/x86/kernel/visws_quirks.c
... | ... | @@ -176,33 +176,31 @@ |
176 | 176 | * No problem for Linux. |
177 | 177 | */ |
178 | 178 | |
179 | -static void __init MP_processor_info(struct mpc_config_processor *m) | |
179 | +static void __init MP_processor_info(struct mpc_cpu *m) | |
180 | 180 | { |
181 | 181 | int ver, logical_apicid; |
182 | 182 | physid_mask_t apic_cpus; |
183 | 183 | |
184 | - if (!(m->mpc_cpuflag & CPU_ENABLED)) | |
184 | + if (!(m->cpuflag & CPU_ENABLED)) | |
185 | 185 | return; |
186 | 186 | |
187 | - logical_apicid = m->mpc_apicid; | |
187 | + logical_apicid = m->apicid; | |
188 | 188 | printk(KERN_INFO "%sCPU #%d %u:%u APIC version %d\n", |
189 | - m->mpc_cpuflag & CPU_BOOTPROCESSOR ? "Bootup " : "", | |
190 | - m->mpc_apicid, | |
191 | - (m->mpc_cpufeature & CPU_FAMILY_MASK) >> 8, | |
192 | - (m->mpc_cpufeature & CPU_MODEL_MASK) >> 4, | |
193 | - m->mpc_apicver); | |
189 | + m->cpuflag & CPU_BOOTPROCESSOR ? "Bootup " : "", | |
190 | + m->apicid, (m->cpufeature & CPU_FAMILY_MASK) >> 8, | |
191 | + (m->cpufeature & CPU_MODEL_MASK) >> 4, m->apicver); | |
194 | 192 | |
195 | - if (m->mpc_cpuflag & CPU_BOOTPROCESSOR) | |
196 | - boot_cpu_physical_apicid = m->mpc_apicid; | |
193 | + if (m->cpuflag & CPU_BOOTPROCESSOR) | |
194 | + boot_cpu_physical_apicid = m->apicid; | |
197 | 195 | |
198 | - ver = m->mpc_apicver; | |
199 | - if ((ver >= 0x14 && m->mpc_apicid >= 0xff) || m->mpc_apicid >= 0xf) { | |
196 | + ver = m->apicver; | |
197 | + if ((ver >= 0x14 && m->apicid >= 0xff) || m->apicid >= 0xf) { | |
200 | 198 | printk(KERN_ERR "Processor #%d INVALID. (Max ID: %d).\n", |
201 | - m->mpc_apicid, MAX_APICS); | |
199 | + m->apicid, MAX_APICS); | |
202 | 200 | return; |
203 | 201 | } |
204 | 202 | |
205 | - apic_cpus = apicid_to_cpu_present(m->mpc_apicid); | |
203 | + apic_cpus = apicid_to_cpu_present(m->apicid); | |
206 | 204 | physids_or(phys_cpu_present_map, phys_cpu_present_map, apic_cpus); |
207 | 205 | /* |
208 | 206 | * Validate version |
209 | 207 | |
210 | 208 | |
... | ... | @@ -210,15 +208,15 @@ |
210 | 208 | if (ver == 0x0) { |
211 | 209 | printk(KERN_ERR "BIOS bug, APIC version is 0 for CPU#%d! " |
212 | 210 | "fixing up to 0x10. (tell your hw vendor)\n", |
213 | - m->mpc_apicid); | |
211 | + m->apicid); | |
214 | 212 | ver = 0x10; |
215 | 213 | } |
216 | - apic_version[m->mpc_apicid] = ver; | |
214 | + apic_version[m->apicid] = ver; | |
217 | 215 | } |
218 | 216 | |
219 | 217 | static int __init visws_find_smp_config(unsigned int reserve) |
220 | 218 | { |
221 | - struct mpc_config_processor *mp = phys_to_virt(CO_CPU_TAB_PHYS); | |
219 | + struct mpc_cpu *mp = phys_to_virt(CO_CPU_TAB_PHYS); | |
222 | 220 | unsigned short ncpus = readw(phys_to_virt(CO_CPU_NUM_PHYS)); |
223 | 221 | |
224 | 222 | if (ncpus > CO_CPU_MAX) { |
arch/x86/mach-generic/es7000.c
... | ... | @@ -43,12 +43,12 @@ |
43 | 43 | return; |
44 | 44 | } |
45 | 45 | |
46 | -static __init int mps_oem_check(struct mp_config_table *mpc, char *oem, | |
47 | - char *productid) | |
46 | +static __init int | |
47 | +mps_oem_check(struct mpc_table *mpc, char *oem, char *productid) | |
48 | 48 | { |
49 | - if (mpc->mpc_oemptr) { | |
50 | - struct mp_config_oemtable *oem_table = | |
51 | - (struct mp_config_oemtable *)mpc->mpc_oemptr; | |
49 | + if (mpc->oemptr) { | |
50 | + struct mpc_oemtable *oem_table = | |
51 | + (struct mpc_oemtable *)mpc->oemptr; | |
52 | 52 | if (!strncmp(oem, "UNISYS", 6)) |
53 | 53 | return parse_unisys_oem((char *)oem_table); |
54 | 54 | } |
arch/x86/mach-generic/numaq.c
... | ... | @@ -19,8 +19,7 @@ |
19 | 19 | #include <asm/numaq/wakecpu.h> |
20 | 20 | #include <asm/numaq.h> |
21 | 21 | |
22 | -static int mps_oem_check(struct mp_config_table *mpc, char *oem, | |
23 | - char *productid) | |
22 | +static int mps_oem_check(struct mpc_table *mpc, char *oem, char *productid) | |
24 | 23 | { |
25 | 24 | numaq_mps_oem_check(mpc, oem, productid); |
26 | 25 | return found_numaq; |
arch/x86/mach-generic/probe.c
... | ... | @@ -110,8 +110,7 @@ |
110 | 110 | |
111 | 111 | /* These functions can switch the APIC even after the initial ->probe() */ |
112 | 112 | |
113 | -int __init mps_oem_check(struct mp_config_table *mpc, char *oem, | |
114 | - char *productid) | |
113 | +int __init mps_oem_check(struct mpc_table *mpc, char *oem, char *productid) | |
115 | 114 | { |
116 | 115 | int i; |
117 | 116 | for (i = 0; apic_probe[i]; ++i) { |
arch/x86/mm/k8topology_64.c
... | ... | @@ -81,7 +81,6 @@ |
81 | 81 | unsigned numnodes, cores, bits, apicid_base; |
82 | 82 | unsigned long prevbase; |
83 | 83 | struct bootnode nodes[8]; |
84 | - unsigned char nodeids[8]; | |
85 | 84 | int i, j, nb, found = 0; |
86 | 85 | u32 nodeid, reg; |
87 | 86 | |
... | ... | @@ -110,7 +109,6 @@ |
110 | 109 | limit = read_pci_config(0, nb, 1, 0x44 + i*8); |
111 | 110 | |
112 | 111 | nodeid = limit & 7; |
113 | - nodeids[i] = nodeid; | |
114 | 112 | if ((base & 3) == 0) { |
115 | 113 | if (i < numnodes) |
116 | 114 | printk("Skipping disabled node %d\n", i); |
... | ... | @@ -179,9 +177,6 @@ |
179 | 177 | |
180 | 178 | nodes[nodeid].start = base; |
181 | 179 | nodes[nodeid].end = limit; |
182 | - e820_register_active_regions(nodeid, | |
183 | - nodes[nodeid].start >> PAGE_SHIFT, | |
184 | - nodes[nodeid].end >> PAGE_SHIFT); | |
185 | 180 | |
186 | 181 | prevbase = base; |
187 | 182 | |
... | ... | @@ -211,12 +206,15 @@ |
211 | 206 | } |
212 | 207 | |
213 | 208 | for (i = 0; i < 8; i++) { |
214 | - if (nodes[i].start != nodes[i].end) { | |
215 | - nodeid = nodeids[i]; | |
216 | - for (j = apicid_base; j < cores + apicid_base; j++) | |
217 | - apicid_to_node[(nodeid << bits) + j] = i; | |
218 | - setup_node_bootmem(i, nodes[i].start, nodes[i].end); | |
219 | - } | |
209 | + if (nodes[i].start == nodes[i].end) | |
210 | + continue; | |
211 | + | |
212 | + e820_register_active_regions(i, | |
213 | + nodes[i].start >> PAGE_SHIFT, | |
214 | + nodes[i].end >> PAGE_SHIFT); | |
215 | + for (j = apicid_base; j < cores + apicid_base; j++) | |
216 | + apicid_to_node[(i << bits) + j] = i; | |
217 | + setup_node_bootmem(i, nodes[i].start, nodes[i].end); | |
220 | 218 | } |
221 | 219 | |
222 | 220 | numa_init_array(); |
lib/Kconfig.debug
... | ... | @@ -573,14 +573,14 @@ |
573 | 573 | config FRAME_POINTER |
574 | 574 | bool "Compile the kernel with frame pointers" |
575 | 575 | depends on DEBUG_KERNEL && \ |
576 | - (X86 || CRIS || M68K || M68KNOMMU || FRV || UML || S390 || \ | |
577 | - AVR32 || SUPERH || BLACKFIN || MN10300) | |
578 | - default y if DEBUG_INFO && UML | |
576 | + (CRIS || M68K || M68KNOMMU || FRV || UML || S390 || \ | |
577 | + AVR32 || SUPERH || BLACKFIN || MN10300) || \ | |
578 | + ARCH_WANT_FRAME_POINTERS | |
579 | + default y if (DEBUG_INFO && UML) || ARCH_WANT_FRAME_POINTERS | |
579 | 580 | help |
580 | - If you say Y here the resulting kernel image will be slightly larger | |
581 | - and slower, but it might give very useful debugging information on | |
582 | - some architectures or if you use external debuggers. | |
583 | - If you don't debug the kernel, you can say N. | |
581 | + If you say Y here the resulting kernel image will be slightly | |
582 | + larger and slower, but it gives very useful debugging information | |
583 | + in case of kernel bugs. (precise oopses/stacktraces/warnings) | |
584 | 584 | |
585 | 585 | config BOOT_PRINTK_DELAY |
586 | 586 | bool "Delay each boot printk message by N milliseconds" |