Commit 3d14bdad40315b54470cb7812293d14c8af2bf7d

Authored by Linus Torvalds

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
... ... @@ -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
... ... @@ -27,6 +27,7 @@
27 27 select HAVE_IOREMAP_PROT
28 28 select HAVE_KPROBES
29 29 select ARCH_WANT_OPTIONAL_GPIOLIB
  30 + select ARCH_WANT_FRAME_POINTERS
30 31 select HAVE_KRETPROBES
31 32 select HAVE_FTRACE_MCOUNT_RECORD
32 33 select HAVE_DYNAMIC_FTRACE
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
1 1 #ifndef __ASM_NUMAQ_MPPARSE_H
2 2 #define __ASM_NUMAQ_MPPARSE_H
3 3  
4   -extern void numaq_mps_oem_check(struct mp_config_table *mpc, char *oem,
5   - char *productid);
  4 +extern void numaq_mps_oem_check(struct mpc_table *, char *, char *);
6 5  
7 6 #endif /* __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
... ... @@ -11,7 +11,7 @@
11 11 #define setup_summit() {}
12 12 #endif
13 13  
14   -static inline int mps_oem_check(struct mp_config_table *mpc, char *oem,
  14 +static inline int mps_oem_check(struct mpc_table *mpc, char *oem,
15 15 char *productid)
16 16 {
17 17 if (!strncmp(oem, "IBM ENSW", 8) &&
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
1 1 /*
2 2 * mce.c - x86 Machine Check Exception Reporting
3   - * (c) 2002 Alan Cox <alan@redhat.com>, Dave Jones <davej@redhat.com>
  3 + * (c) 2002 Alan Cox <alan@lxorguk.ukuu.org.uk>, Dave Jones <davej@redhat.com>
4 4 */
5 5  
6 6 #include <linux/init.h>
arch/x86/kernel/cpu/mcheck/mce_amd_64.c
... ... @@ -462,7 +462,7 @@
462 462 return err;
463 463 }
464 464  
465   -static long local_allocate_threshold_blocks(void *_bank)
  465 +static __cpuinit long local_allocate_threshold_blocks(void *_bank)
466 466 {
467 467 unsigned int *bank = _bank;
468 468  
arch/x86/kernel/cpu/mcheck/p5.c
1 1 /*
2 2 * P5 specific Machine Check Exception Reporting
3   - * (C) Copyright 2002 Alan Cox <alan@redhat.com>
  3 + * (C) Copyright 2002 Alan Cox <alan@lxorguk.ukuu.org.uk>
4 4 */
5 5  
6 6 #include <linux/init.h>
arch/x86/kernel/cpu/mcheck/p6.c
1 1 /*
2 2 * P6 specific Machine Check Exception Reporting
3   - * (C) Copyright 2002 Alan Cox <alan@redhat.com>
  3 + * (C) Copyright 2002 Alan Cox <alan@lxorguk.ukuu.org.uk>
4 4 */
5 5  
6 6 #include <linux/init.h>
arch/x86/kernel/cpu/mcheck/winchip.c
1 1 /*
2 2 * IDT Winchip specific Machine Check Exception Reporting
3   - * (C) Copyright 2002 Alan Cox <alan@redhat.com>
  3 + * (C) Copyright 2002 Alan Cox <alan@lxorguk.ukuu.org.uk>
4 4 */
5 5  
6 6 #include <linux/init.h>
arch/x86/kernel/head_64.S
... ... @@ -305,7 +305,7 @@
305 305 call dump_stack
306 306 #ifdef CONFIG_KALLSYMS
307 307 leaq early_idt_ripmsg(%rip),%rdi
308   - movq 8(%rsp),%rsi # get rip again
  308 + movq 0(%rsp),%rsi # get rip again
309 309 call __print_symbol
310 310 #endif
311 311 #endif /* EARLY_PRINTK */
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 = &current->thread;
39   - struct tss_struct * tss;
  38 + struct thread_struct *t = &current->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
... ... @@ -26,7 +26,6 @@
26 26 #include <linux/kernel_stat.h>
27 27 #include <linux/kdebug.h>
28 28 #include <linux/smp.h>
29   -#include <linux/nmi.h>
30 29  
31 30 #include <asm/i8259.h>
32 31 #include <asm/io_apic.h>
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
1 1 /*
2 2 * Intel SMP support routines.
3 3 *
4   - * (c) 1995 Alan Cox, Building #3 <alan@redhat.com>
  4 + * (c) 1995 Alan Cox, Building #3 <alan@lxorguk.ukuu.org.uk>
5 5 * (c) 1998-99, 2000 Ingo Molnar <mingo@redhat.com>
6 6 * (c) 2002,2003 Andi Kleen, SuSE Labs.
7 7 *
arch/x86/kernel/smpboot.c
1 1 /*
2 2 * x86 SMP booting functions
3 3 *
4   - * (c) 1995 Alan Cox, Building #3 <alan@redhat.com>
  4 + * (c) 1995 Alan Cox, Building #3 <alan@lxorguk.ukuu.org.uk>
5 5 * (c) 1998, 1999, 2000 Ingo Molnar <mingo@redhat.com>
6 6 * Copyright 2001 Andi Kleen, SuSE Labs.
7 7 *
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
... ... @@ -63,9 +63,6 @@
63 63 #else
64 64 #include <asm/processor-flags.h>
65 65 #include <asm/arch_hooks.h>
66   -#include <asm/nmi.h>
67   -#include <asm/smp.h>
68   -#include <asm/io.h>
69 66 #include <asm/traps.h>
70 67  
71 68 #include "cpu/mcheck/mce.h"
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();
... ... @@ -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"