diff options
-rw-r--r-- | arch/i386/kernel/cpu/mtrr/main.c | 4 | ||||
-rw-r--r-- | arch/i386/kernel/entry.S | 8 | ||||
-rw-r--r-- | arch/i386/mach-es7000/es7000plat.c | 48 | ||||
-rw-r--r-- | arch/mips/Kconfig.debug | 2 | ||||
-rw-r--r-- | arch/mips/kernel/cpu-probe.c | 15 | ||||
-rw-r--r-- | arch/mips/kernel/traps.c | 8 | ||||
-rw-r--r-- | arch/mips/kernel/vpe.c | 4 | ||||
-rw-r--r-- | arch/mips/lib/Makefile | 2 | ||||
-rw-r--r-- | drivers/atm/firestream.c | 2 | ||||
-rw-r--r-- | drivers/net/arm/am79c961a.c | 2 | ||||
-rw-r--r-- | drivers/net/ixp2000/ixpdev.c | 2 | ||||
-rw-r--r-- | drivers/net/sb1250-mac.c | 2 | ||||
-rw-r--r-- | drivers/pnp/quirks.c | 63 | ||||
-rw-r--r-- | drivers/usb/misc/uss720.c | 2 | ||||
-rw-r--r-- | fs/binfmt_elf.c | 7 | ||||
-rw-r--r-- | include/asm-i386/mach-es7000/mach_apic.h | 4 | ||||
-rw-r--r-- | include/asm-i386/mach-es7000/mach_mpparse.h | 6 | ||||
-rw-r--r-- | include/asm-mips/addrspace.h | 1 | ||||
-rw-r--r-- | include/asm-mips/cpu.h | 11 | ||||
-rw-r--r-- | include/asm-mips/mipsregs.h | 2 | ||||
-rw-r--r-- | include/asm-mips/war.h | 18 | ||||
-rw-r--r-- | ipc/compat.c | 2 | ||||
-rw-r--r-- | mm/vmstat.c | 2 | ||||
-rw-r--r-- | scripts/Makefile.headersinst | 2 |
24 files changed, 178 insertions, 41 deletions
diff --git a/arch/i386/kernel/cpu/mtrr/main.c b/arch/i386/kernel/cpu/mtrr/main.c index 55b005152a11..75dc6d5214bc 100644 --- a/arch/i386/kernel/cpu/mtrr/main.c +++ b/arch/i386/kernel/cpu/mtrr/main.c | |||
@@ -229,6 +229,8 @@ static void set_mtrr(unsigned int reg, unsigned long base, | |||
229 | data.smp_size = size; | 229 | data.smp_size = size; |
230 | data.smp_type = type; | 230 | data.smp_type = type; |
231 | atomic_set(&data.count, num_booting_cpus() - 1); | 231 | atomic_set(&data.count, num_booting_cpus() - 1); |
232 | /* make sure data.count is visible before unleashing other CPUs */ | ||
233 | smp_wmb(); | ||
232 | atomic_set(&data.gate,0); | 234 | atomic_set(&data.gate,0); |
233 | 235 | ||
234 | /* Start the ball rolling on other CPUs */ | 236 | /* Start the ball rolling on other CPUs */ |
@@ -242,6 +244,7 @@ static void set_mtrr(unsigned int reg, unsigned long base, | |||
242 | 244 | ||
243 | /* ok, reset count and toggle gate */ | 245 | /* ok, reset count and toggle gate */ |
244 | atomic_set(&data.count, num_booting_cpus() - 1); | 246 | atomic_set(&data.count, num_booting_cpus() - 1); |
247 | smp_wmb(); | ||
245 | atomic_set(&data.gate,1); | 248 | atomic_set(&data.gate,1); |
246 | 249 | ||
247 | /* do our MTRR business */ | 250 | /* do our MTRR business */ |
@@ -260,6 +263,7 @@ static void set_mtrr(unsigned int reg, unsigned long base, | |||
260 | cpu_relax(); | 263 | cpu_relax(); |
261 | 264 | ||
262 | atomic_set(&data.count, num_booting_cpus() - 1); | 265 | atomic_set(&data.count, num_booting_cpus() - 1); |
266 | smp_wmb(); | ||
263 | atomic_set(&data.gate,0); | 267 | atomic_set(&data.gate,0); |
264 | 268 | ||
265 | /* | 269 | /* |
diff --git a/arch/i386/kernel/entry.S b/arch/i386/kernel/entry.S index b1f16ee65e4d..3c3c220488c9 100644 --- a/arch/i386/kernel/entry.S +++ b/arch/i386/kernel/entry.S | |||
@@ -367,10 +367,6 @@ ENTRY(system_call) | |||
367 | CFI_ADJUST_CFA_OFFSET 4 | 367 | CFI_ADJUST_CFA_OFFSET 4 |
368 | SAVE_ALL | 368 | SAVE_ALL |
369 | GET_THREAD_INFO(%ebp) | 369 | GET_THREAD_INFO(%ebp) |
370 | testl $TF_MASK,PT_EFLAGS(%esp) | ||
371 | jz no_singlestep | ||
372 | orl $_TIF_SINGLESTEP,TI_flags(%ebp) | ||
373 | no_singlestep: | ||
374 | # system call tracing in operation / emulation | 370 | # system call tracing in operation / emulation |
375 | /* Note, _TIF_SECCOMP is bit number 8, and so it needs testw and not testb */ | 371 | /* Note, _TIF_SECCOMP is bit number 8, and so it needs testw and not testb */ |
376 | testw $(_TIF_SYSCALL_EMU|_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT),TI_flags(%ebp) | 372 | testw $(_TIF_SYSCALL_EMU|_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT),TI_flags(%ebp) |
@@ -385,6 +381,10 @@ syscall_exit: | |||
385 | # setting need_resched or sigpending | 381 | # setting need_resched or sigpending |
386 | # between sampling and the iret | 382 | # between sampling and the iret |
387 | TRACE_IRQS_OFF | 383 | TRACE_IRQS_OFF |
384 | testl $TF_MASK,PT_EFLAGS(%esp) # If tracing set singlestep flag on exit | ||
385 | jz no_singlestep | ||
386 | orl $_TIF_SINGLESTEP,TI_flags(%ebp) | ||
387 | no_singlestep: | ||
388 | movl TI_flags(%ebp), %ecx | 388 | movl TI_flags(%ebp), %ecx |
389 | testw $_TIF_ALLWORK_MASK, %cx # current->work | 389 | testw $_TIF_ALLWORK_MASK, %cx # current->work |
390 | jne syscall_exit_work | 390 | jne syscall_exit_work |
diff --git a/arch/i386/mach-es7000/es7000plat.c b/arch/i386/mach-es7000/es7000plat.c index 9be6ceabf042..ab99072d3f9a 100644 --- a/arch/i386/mach-es7000/es7000plat.c +++ b/arch/i386/mach-es7000/es7000plat.c | |||
@@ -40,6 +40,7 @@ | |||
40 | #include <asm/smp.h> | 40 | #include <asm/smp.h> |
41 | #include <asm/apicdef.h> | 41 | #include <asm/apicdef.h> |
42 | #include "es7000.h" | 42 | #include "es7000.h" |
43 | #include <mach_mpparse.h> | ||
43 | 44 | ||
44 | /* | 45 | /* |
45 | * ES7000 Globals | 46 | * ES7000 Globals |
@@ -174,6 +175,53 @@ find_unisys_acpi_oem_table(unsigned long *oem_addr) | |||
174 | } | 175 | } |
175 | #endif | 176 | #endif |
176 | 177 | ||
178 | /* | ||
179 | * This file also gets compiled if CONFIG_X86_GENERICARCH is set. Generic | ||
180 | * arch already has got following function definitions (asm-generic/es7000.c) | ||
181 | * hence no need to define these for that case. | ||
182 | */ | ||
183 | #ifndef CONFIG_X86_GENERICARCH | ||
184 | void es7000_sw_apic(void); | ||
185 | void __init enable_apic_mode(void) | ||
186 | { | ||
187 | es7000_sw_apic(); | ||
188 | return; | ||
189 | } | ||
190 | |||
191 | __init int mps_oem_check(struct mp_config_table *mpc, char *oem, | ||
192 | char *productid) | ||
193 | { | ||
194 | if (mpc->mpc_oemptr) { | ||
195 | struct mp_config_oemtable *oem_table = | ||
196 | (struct mp_config_oemtable *)mpc->mpc_oemptr; | ||
197 | if (!strncmp(oem, "UNISYS", 6)) | ||
198 | return parse_unisys_oem((char *)oem_table); | ||
199 | } | ||
200 | return 0; | ||
201 | } | ||
202 | #ifdef CONFIG_ACPI | ||
203 | /* Hook from generic ACPI tables.c */ | ||
204 | int __init acpi_madt_oem_check(char *oem_id, char *oem_table_id) | ||
205 | { | ||
206 | unsigned long oem_addr; | ||
207 | if (!find_unisys_acpi_oem_table(&oem_addr)) { | ||
208 | if (es7000_check_dsdt()) | ||
209 | return parse_unisys_oem((char *)oem_addr); | ||
210 | else { | ||
211 | setup_unisys(); | ||
212 | return 1; | ||
213 | } | ||
214 | } | ||
215 | return 0; | ||
216 | } | ||
217 | #else | ||
218 | int __init acpi_madt_oem_check(char *oem_id, char *oem_table_id) | ||
219 | { | ||
220 | return 0; | ||
221 | } | ||
222 | #endif | ||
223 | #endif /* COFIG_X86_GENERICARCH */ | ||
224 | |||
177 | static void | 225 | static void |
178 | es7000_spin(int n) | 226 | es7000_spin(int n) |
179 | { | 227 | { |
diff --git a/arch/mips/Kconfig.debug b/arch/mips/Kconfig.debug index 72d5c198e790..3efe117721aa 100644 --- a/arch/mips/Kconfig.debug +++ b/arch/mips/Kconfig.debug | |||
@@ -37,7 +37,7 @@ config DEBUG_STACK_USAGE | |||
37 | 37 | ||
38 | This option will slow down process creation somewhat. | 38 | This option will slow down process creation somewhat. |
39 | 39 | ||
40 | config CONFIG_SMTC_IDLE_HOOK_DEBUG | 40 | config SMTC_IDLE_HOOK_DEBUG |
41 | bool "Enable additional debug checks before going into CPU idle loop" | 41 | bool "Enable additional debug checks before going into CPU idle loop" |
42 | depends on DEBUG_KERNEL && MIPS_MT_SMTC | 42 | depends on DEBUG_KERNEL && MIPS_MT_SMTC |
43 | help | 43 | help |
diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c index 0fc90ba16ae1..b12eeee0e974 100644 --- a/arch/mips/kernel/cpu-probe.c +++ b/arch/mips/kernel/cpu-probe.c | |||
@@ -137,13 +137,24 @@ static inline void check_wait(void) | |||
137 | case CPU_4KEC: | 137 | case CPU_4KEC: |
138 | case CPU_4KSC: | 138 | case CPU_4KSC: |
139 | case CPU_5KC: | 139 | case CPU_5KC: |
140 | case CPU_24K: | ||
141 | case CPU_25KF: | 140 | case CPU_25KF: |
141 | case CPU_PR4450: | ||
142 | cpu_wait = r4k_wait; | ||
143 | break; | ||
144 | |||
145 | case CPU_24K: | ||
142 | case CPU_34K: | 146 | case CPU_34K: |
147 | cpu_wait = r4k_wait; | ||
148 | if (read_c0_config7() & MIPS_CONF7_WII) | ||
149 | cpu_wait = r4k_wait_irqoff; | ||
150 | break; | ||
151 | |||
143 | case CPU_74K: | 152 | case CPU_74K: |
144 | case CPU_PR4450: | ||
145 | cpu_wait = r4k_wait; | 153 | cpu_wait = r4k_wait; |
154 | if ((c->processor_id & 0xff) >= PRID_REV_ENCODE_332(2, 1, 0)) | ||
155 | cpu_wait = r4k_wait_irqoff; | ||
146 | break; | 156 | break; |
157 | |||
147 | case CPU_TX49XX: | 158 | case CPU_TX49XX: |
148 | cpu_wait = r4k_wait_irqoff; | 159 | cpu_wait = r4k_wait_irqoff; |
149 | break; | 160 | break; |
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c index b1233644fcca..3ea7863c4519 100644 --- a/arch/mips/kernel/traps.c +++ b/arch/mips/kernel/traps.c | |||
@@ -1372,12 +1372,12 @@ void __init per_cpu_trap_init(void) | |||
1372 | */ | 1372 | */ |
1373 | if (cpu_has_mips_r2) { | 1373 | if (cpu_has_mips_r2) { |
1374 | cp0_compare_irq = (read_c0_intctl () >> 29) & 7; | 1374 | cp0_compare_irq = (read_c0_intctl () >> 29) & 7; |
1375 | cp0_perfcount_irq = -1; | ||
1376 | } else { | ||
1377 | cp0_compare_irq = CP0_LEGACY_COMPARE_IRQ; | ||
1378 | cp0_perfcount_irq = (read_c0_intctl () >> 26) & 7; | 1375 | cp0_perfcount_irq = (read_c0_intctl () >> 26) & 7; |
1379 | if (cp0_perfcount_irq != cp0_compare_irq) | 1376 | if (cp0_perfcount_irq == cp0_compare_irq) |
1380 | cp0_perfcount_irq = -1; | 1377 | cp0_perfcount_irq = -1; |
1378 | } else { | ||
1379 | cp0_compare_irq = CP0_LEGACY_COMPARE_IRQ; | ||
1380 | cp0_perfcount_irq = -1; | ||
1381 | } | 1381 | } |
1382 | 1382 | ||
1383 | #ifdef CONFIG_MIPS_MT_SMTC | 1383 | #ifdef CONFIG_MIPS_MT_SMTC |
diff --git a/arch/mips/kernel/vpe.c b/arch/mips/kernel/vpe.c index c9ee9d2d5856..9e66354dee8b 100644 --- a/arch/mips/kernel/vpe.c +++ b/arch/mips/kernel/vpe.c | |||
@@ -1436,10 +1436,6 @@ static int __init vpe_module_init(void) | |||
1436 | write_vpe_c0_vpecontrol(read_vpe_c0_vpecontrol() & ~VPECONTROL_TE); | 1436 | write_vpe_c0_vpecontrol(read_vpe_c0_vpecontrol() & ~VPECONTROL_TE); |
1437 | 1437 | ||
1438 | if (i != 0) { | 1438 | if (i != 0) { |
1439 | write_vpe_c0_status((read_c0_status() & | ||
1440 | ~(ST0_IM | ST0_IE | ST0_KSU)) | ||
1441 | | ST0_CU0); | ||
1442 | |||
1443 | /* | 1439 | /* |
1444 | * Set config to be the same as vpe0, | 1440 | * Set config to be the same as vpe0, |
1445 | * particularly kseg0 coherency alg | 1441 | * particularly kseg0 coherency alg |
diff --git a/arch/mips/lib/Makefile b/arch/mips/lib/Makefile index 5dad13efba7e..1c1aa9f92f6c 100644 --- a/arch/mips/lib/Makefile +++ b/arch/mips/lib/Makefile | |||
@@ -9,4 +9,4 @@ obj-y += iomap.o | |||
9 | obj-$(CONFIG_PCI) += iomap-pci.o | 9 | obj-$(CONFIG_PCI) += iomap-pci.o |
10 | 10 | ||
11 | # libgcc-style stuff needed in the kernel | 11 | # libgcc-style stuff needed in the kernel |
12 | lib-y += ashldi3.o ashrdi3.o lshrdi3.o ucmpdi2.o | 12 | obj-y += ashldi3.o ashrdi3.o lshrdi3.o ucmpdi2.o |
diff --git a/drivers/atm/firestream.c b/drivers/atm/firestream.c index 7f6d02ce1b5f..38b688f9f6a9 100644 --- a/drivers/atm/firestream.c +++ b/drivers/atm/firestream.c | |||
@@ -1654,7 +1654,7 @@ static void fs_poll (unsigned long data) | |||
1654 | { | 1654 | { |
1655 | struct fs_dev *dev = (struct fs_dev *) data; | 1655 | struct fs_dev *dev = (struct fs_dev *) data; |
1656 | 1656 | ||
1657 | fs_irq (0, dev, NULL); | 1657 | fs_irq (0, dev); |
1658 | dev->timer.expires = jiffies + FS_POLL_FREQ; | 1658 | dev->timer.expires = jiffies + FS_POLL_FREQ; |
1659 | add_timer (&dev->timer); | 1659 | add_timer (&dev->timer); |
1660 | } | 1660 | } |
diff --git a/drivers/net/arm/am79c961a.c b/drivers/net/arm/am79c961a.c index 8f0d7ce503c9..2143eeb7a2b0 100644 --- a/drivers/net/arm/am79c961a.c +++ b/drivers/net/arm/am79c961a.c | |||
@@ -634,7 +634,7 @@ static void am79c961_poll_controller(struct net_device *dev) | |||
634 | { | 634 | { |
635 | unsigned long flags; | 635 | unsigned long flags; |
636 | local_irq_save(flags); | 636 | local_irq_save(flags); |
637 | am79c961_interrupt(dev->irq, dev, NULL); | 637 | am79c961_interrupt(dev->irq, dev); |
638 | local_irq_restore(flags); | 638 | local_irq_restore(flags); |
639 | } | 639 | } |
640 | #endif | 640 | #endif |
diff --git a/drivers/net/ixp2000/ixpdev.c b/drivers/net/ixp2000/ixpdev.c index 6683afc02aaa..d5f694fc4a21 100644 --- a/drivers/net/ixp2000/ixpdev.c +++ b/drivers/net/ixp2000/ixpdev.c | |||
@@ -222,7 +222,7 @@ static irqreturn_t ixpdev_interrupt(int irq, void *dev_id) | |||
222 | static void ixpdev_poll_controller(struct net_device *dev) | 222 | static void ixpdev_poll_controller(struct net_device *dev) |
223 | { | 223 | { |
224 | disable_irq(IRQ_IXP2000_THDA0); | 224 | disable_irq(IRQ_IXP2000_THDA0); |
225 | ixpdev_interrupt(IRQ_IXP2000_THDA0, dev, NULL); | 225 | ixpdev_interrupt(IRQ_IXP2000_THDA0, dev); |
226 | enable_irq(IRQ_IXP2000_THDA0); | 226 | enable_irq(IRQ_IXP2000_THDA0); |
227 | } | 227 | } |
228 | #endif | 228 | #endif |
diff --git a/drivers/net/sb1250-mac.c b/drivers/net/sb1250-mac.c index 132e2148b21c..e7fdcf15b5a7 100644 --- a/drivers/net/sb1250-mac.c +++ b/drivers/net/sb1250-mac.c | |||
@@ -1159,7 +1159,7 @@ static void sbmac_netpoll(struct net_device *netdev) | |||
1159 | 1159 | ||
1160 | __raw_writeq(0, sc->sbm_imr); | 1160 | __raw_writeq(0, sc->sbm_imr); |
1161 | 1161 | ||
1162 | sbmac_intr(irq, netdev, NULL); | 1162 | sbmac_intr(irq, netdev); |
1163 | 1163 | ||
1164 | #ifdef CONFIG_SBMAC_COALESCE | 1164 | #ifdef CONFIG_SBMAC_COALESCE |
1165 | __raw_writeq(((M_MAC_INT_EOP_COUNT | M_MAC_INT_EOP_TIMER) << S_MAC_TX_CH0) | | 1165 | __raw_writeq(((M_MAC_INT_EOP_COUNT | M_MAC_INT_EOP_TIMER) << S_MAC_TX_CH0) | |
diff --git a/drivers/pnp/quirks.c b/drivers/pnp/quirks.c index 967a8e22b2da..7c3236690cc3 100644 --- a/drivers/pnp/quirks.c +++ b/drivers/pnp/quirks.c | |||
@@ -136,11 +136,10 @@ static int quirk_smc_fir_enabled(struct pnp_dev *dev) | |||
136 | 136 | ||
137 | static void quirk_smc_enable(struct pnp_dev *dev) | 137 | static void quirk_smc_enable(struct pnp_dev *dev) |
138 | { | 138 | { |
139 | /* | 139 | struct resource fir, sir, irq; |
140 | * If the BIOS left the device disabled, or it is enabled and | 140 | |
141 | * responding correctly, we're in good shape. | 141 | pnp_activate_dev(dev); |
142 | */ | 142 | if (quirk_smc_fir_enabled(dev)) |
143 | if (!dev->active || quirk_smc_fir_enabled(dev)) | ||
144 | return; | 143 | return; |
145 | 144 | ||
146 | /* | 145 | /* |
@@ -152,16 +151,62 @@ static void quirk_smc_enable(struct pnp_dev *dev) | |||
152 | * this. Fortunately, they do fix things up if we auto-configure | 151 | * this. Fortunately, they do fix things up if we auto-configure |
153 | * the device using its _PRS and _SRS methods. | 152 | * the device using its _PRS and _SRS methods. |
154 | */ | 153 | */ |
155 | dev_err(&dev->dev, "%s device not responding, auto-configuring " | 154 | dev_err(&dev->dev, "%s not responding at SIR 0x%lx, FIR 0x%lx; " |
156 | "resources\n", dev->id->id); | 155 | "auto-configuring\n", dev->id->id, |
156 | (unsigned long) pnp_port_start(dev, 0), | ||
157 | (unsigned long) pnp_port_start(dev, 1)); | ||
157 | 158 | ||
158 | pnp_disable_dev(dev); | 159 | pnp_disable_dev(dev); |
159 | pnp_init_resource_table(&dev->res); | 160 | pnp_init_resource_table(&dev->res); |
160 | pnp_auto_config_dev(dev); | 161 | pnp_auto_config_dev(dev); |
161 | pnp_activate_dev(dev); | 162 | pnp_activate_dev(dev); |
163 | if (quirk_smc_fir_enabled(dev)) { | ||
164 | dev_err(&dev->dev, "responds at SIR 0x%lx, FIR 0x%lx\n", | ||
165 | (unsigned long) pnp_port_start(dev, 0), | ||
166 | (unsigned long) pnp_port_start(dev, 1)); | ||
167 | return; | ||
168 | } | ||
169 | |||
170 | /* | ||
171 | * The Toshiba Portege 4000 _CRS reports the FIR region first, | ||
172 | * followed by the SIR region. The BIOS will configure the bridge, | ||
173 | * but only if we call _SRS with SIR first, then FIR. It also | ||
174 | * reports the IRQ as active high, when it is really active low. | ||
175 | */ | ||
176 | dev_err(&dev->dev, "not responding at SIR 0x%lx, FIR 0x%lx; " | ||
177 | "swapping SIR/FIR and reconfiguring\n", | ||
178 | (unsigned long) pnp_port_start(dev, 0), | ||
179 | (unsigned long) pnp_port_start(dev, 1)); | ||
180 | |||
181 | /* | ||
182 | * Clear IORESOURCE_AUTO so pnp_activate_dev() doesn't reassign | ||
183 | * these resources any more. | ||
184 | */ | ||
185 | fir = dev->res.port_resource[0]; | ||
186 | sir = dev->res.port_resource[1]; | ||
187 | fir.flags &= ~IORESOURCE_AUTO; | ||
188 | sir.flags &= ~IORESOURCE_AUTO; | ||
189 | |||
190 | irq = dev->res.irq_resource[0]; | ||
191 | irq.flags &= ~IORESOURCE_AUTO; | ||
192 | irq.flags &= ~IORESOURCE_BITS; | ||
193 | irq.flags |= IORESOURCE_IRQ_LOWEDGE; | ||
194 | |||
195 | pnp_disable_dev(dev); | ||
196 | dev->res.port_resource[0] = sir; | ||
197 | dev->res.port_resource[1] = fir; | ||
198 | dev->res.irq_resource[0] = irq; | ||
199 | pnp_activate_dev(dev); | ||
200 | |||
201 | if (quirk_smc_fir_enabled(dev)) { | ||
202 | dev_err(&dev->dev, "responds at SIR 0x%lx, FIR 0x%lx\n", | ||
203 | (unsigned long) pnp_port_start(dev, 0), | ||
204 | (unsigned long) pnp_port_start(dev, 1)); | ||
205 | return; | ||
206 | } | ||
162 | 207 | ||
163 | if (!quirk_smc_fir_enabled(dev)) | 208 | dev_err(&dev->dev, "giving up; try \"smsc-ircc2.nopnp\" and " |
164 | dev_err(&dev->dev, "giving up; try \"smsc-ircc2.nopnp\"\n"); | 209 | "email bjorn.helgaas@hp.com\n"); |
165 | } | 210 | } |
166 | 211 | ||
167 | 212 | ||
diff --git a/drivers/usb/misc/uss720.c b/drivers/usb/misc/uss720.c index 70250252ae2a..1a60f9c473ad 100644 --- a/drivers/usb/misc/uss720.c +++ b/drivers/usb/misc/uss720.c | |||
@@ -336,7 +336,7 @@ static int uss720_irq(int usbstatus, void *buffer, int len, void *dev_id) | |||
336 | memcpy(priv->reg, buffer, 4); | 336 | memcpy(priv->reg, buffer, 4); |
337 | /* if nAck interrupts are enabled and we have an interrupt, call the interrupt procedure */ | 337 | /* if nAck interrupts are enabled and we have an interrupt, call the interrupt procedure */ |
338 | if (priv->reg[2] & priv->reg[1] & 0x10) | 338 | if (priv->reg[2] & priv->reg[1] & 0x10) |
339 | parport_generic_irq(0, pp, NULL); | 339 | parport_generic_irq(0, pp); |
340 | return 1; | 340 | return 1; |
341 | } | 341 | } |
342 | #endif | 342 | #endif |
diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c index fa8ea33ab0be..08e4414b8374 100644 --- a/fs/binfmt_elf.c +++ b/fs/binfmt_elf.c | |||
@@ -1499,6 +1499,9 @@ static int elf_core_dump(long signr, struct pt_regs *regs, struct file *file) | |||
1499 | #endif | 1499 | #endif |
1500 | int thread_status_size = 0; | 1500 | int thread_status_size = 0; |
1501 | elf_addr_t *auxv; | 1501 | elf_addr_t *auxv; |
1502 | #ifdef ELF_CORE_WRITE_EXTRA_NOTES | ||
1503 | int extra_notes_size; | ||
1504 | #endif | ||
1502 | 1505 | ||
1503 | /* | 1506 | /* |
1504 | * We no longer stop all VM operations. | 1507 | * We no longer stop all VM operations. |
@@ -1628,7 +1631,8 @@ static int elf_core_dump(long signr, struct pt_regs *regs, struct file *file) | |||
1628 | sz += thread_status_size; | 1631 | sz += thread_status_size; |
1629 | 1632 | ||
1630 | #ifdef ELF_CORE_WRITE_EXTRA_NOTES | 1633 | #ifdef ELF_CORE_WRITE_EXTRA_NOTES |
1631 | sz += ELF_CORE_EXTRA_NOTES_SIZE; | 1634 | extra_notes_size = ELF_CORE_EXTRA_NOTES_SIZE; |
1635 | sz += extra_notes_size; | ||
1632 | #endif | 1636 | #endif |
1633 | 1637 | ||
1634 | fill_elf_note_phdr(&phdr, sz, offset); | 1638 | fill_elf_note_phdr(&phdr, sz, offset); |
@@ -1674,6 +1678,7 @@ static int elf_core_dump(long signr, struct pt_regs *regs, struct file *file) | |||
1674 | 1678 | ||
1675 | #ifdef ELF_CORE_WRITE_EXTRA_NOTES | 1679 | #ifdef ELF_CORE_WRITE_EXTRA_NOTES |
1676 | ELF_CORE_WRITE_EXTRA_NOTES; | 1680 | ELF_CORE_WRITE_EXTRA_NOTES; |
1681 | foffset += extra_notes_size; | ||
1677 | #endif | 1682 | #endif |
1678 | 1683 | ||
1679 | /* write out the thread status notes section */ | 1684 | /* write out the thread status notes section */ |
diff --git a/include/asm-i386/mach-es7000/mach_apic.h b/include/asm-i386/mach-es7000/mach_apic.h index 2d978928a395..caec64be516d 100644 --- a/include/asm-i386/mach-es7000/mach_apic.h +++ b/include/asm-i386/mach-es7000/mach_apic.h | |||
@@ -73,6 +73,10 @@ static inline void init_apic_ldr(void) | |||
73 | apic_write_around(APIC_LDR, val); | 73 | apic_write_around(APIC_LDR, val); |
74 | } | 74 | } |
75 | 75 | ||
76 | #ifndef CONFIG_X86_GENERICARCH | ||
77 | extern void enable_apic_mode(void); | ||
78 | #endif | ||
79 | |||
76 | extern int apic_version [MAX_APICS]; | 80 | extern int apic_version [MAX_APICS]; |
77 | static inline void setup_apic_routing(void) | 81 | static inline void setup_apic_routing(void) |
78 | { | 82 | { |
diff --git a/include/asm-i386/mach-es7000/mach_mpparse.h b/include/asm-i386/mach-es7000/mach_mpparse.h index b9fb784e1fd5..8aa10547b4b1 100644 --- a/include/asm-i386/mach-es7000/mach_mpparse.h +++ b/include/asm-i386/mach-es7000/mach_mpparse.h | |||
@@ -18,6 +18,12 @@ extern int parse_unisys_oem (char *oemptr); | |||
18 | extern int find_unisys_acpi_oem_table(unsigned long *oem_addr); | 18 | extern int find_unisys_acpi_oem_table(unsigned long *oem_addr); |
19 | extern void setup_unisys(void); | 19 | extern void setup_unisys(void); |
20 | 20 | ||
21 | #ifndef CONFIG_X86_GENERICARCH | ||
22 | extern int acpi_madt_oem_check(char *oem_id, char *oem_table_id); | ||
23 | extern int mps_oem_check(struct mp_config_table *mpc, char *oem, | ||
24 | char *productid); | ||
25 | #endif | ||
26 | |||
21 | #ifdef CONFIG_ACPI | 27 | #ifdef CONFIG_ACPI |
22 | 28 | ||
23 | static inline int es7000_check_dsdt(void) | 29 | static inline int es7000_check_dsdt(void) |
diff --git a/include/asm-mips/addrspace.h b/include/asm-mips/addrspace.h index c6275088cf65..964c5eddc21b 100644 --- a/include/asm-mips/addrspace.h +++ b/include/asm-mips/addrspace.h | |||
@@ -133,6 +133,7 @@ | |||
133 | || defined (CONFIG_CPU_R4X00) \ | 133 | || defined (CONFIG_CPU_R4X00) \ |
134 | || defined (CONFIG_CPU_R5000) \ | 134 | || defined (CONFIG_CPU_R5000) \ |
135 | || defined (CONFIG_CPU_RM7000) \ | 135 | || defined (CONFIG_CPU_RM7000) \ |
136 | || defined (CONFIG_CPU_RM9000) \ | ||
136 | || defined (CONFIG_CPU_NEVADA) \ | 137 | || defined (CONFIG_CPU_NEVADA) \ |
137 | || defined (CONFIG_CPU_TX49XX) \ | 138 | || defined (CONFIG_CPU_TX49XX) \ |
138 | || defined (CONFIG_CPU_MIPS64) | 139 | || defined (CONFIG_CPU_MIPS64) |
diff --git a/include/asm-mips/cpu.h b/include/asm-mips/cpu.h index d38fdbf845b2..2924069075e0 100644 --- a/include/asm-mips/cpu.h +++ b/include/asm-mips/cpu.h | |||
@@ -125,6 +125,17 @@ | |||
125 | #define PRID_REV_VR4130 0x0080 | 125 | #define PRID_REV_VR4130 0x0080 |
126 | 126 | ||
127 | /* | 127 | /* |
128 | * Older processors used to encode processor version and revision in two | ||
129 | * 4-bit bitfields, the 4K seems to simply count up and even newer MTI cores | ||
130 | * have switched to use the 8-bits as 3:3:2 bitfield with the last field as | ||
131 | * the patch number. *ARGH* | ||
132 | */ | ||
133 | #define PRID_REV_ENCODE_44(ver, rev) \ | ||
134 | ((ver) << 4 | (rev)) | ||
135 | #define PRID_REV_ENCODE_332(ver, rev, patch) \ | ||
136 | ((ver) << 5 | (rev) << 2 | (patch)) | ||
137 | |||
138 | /* | ||
128 | * FPU implementation/revision register (CP1 control register 0). | 139 | * FPU implementation/revision register (CP1 control register 0). |
129 | * | 140 | * |
130 | * +---------------------------------+----------------+----------------+ | 141 | * +---------------------------------+----------------+----------------+ |
diff --git a/include/asm-mips/mipsregs.h b/include/asm-mips/mipsregs.h index 9985cb7c16e7..89c81922d47c 100644 --- a/include/asm-mips/mipsregs.h +++ b/include/asm-mips/mipsregs.h | |||
@@ -534,6 +534,8 @@ | |||
534 | #define MIPS_CONF3_LPA (_ULCAST_(1) << 7) | 534 | #define MIPS_CONF3_LPA (_ULCAST_(1) << 7) |
535 | #define MIPS_CONF3_DSP (_ULCAST_(1) << 10) | 535 | #define MIPS_CONF3_DSP (_ULCAST_(1) << 10) |
536 | 536 | ||
537 | #define MIPS_CONF7_WII (_ULCAST_(1) << 31) | ||
538 | |||
537 | /* | 539 | /* |
538 | * Bits in the MIPS32/64 coprocessor 1 (FPU) revision register. | 540 | * Bits in the MIPS32/64 coprocessor 1 (FPU) revision register. |
539 | */ | 541 | */ |
diff --git a/include/asm-mips/war.h b/include/asm-mips/war.h index 13a3502eef44..ec0eeebd8802 100644 --- a/include/asm-mips/war.h +++ b/include/asm-mips/war.h | |||
@@ -177,18 +177,22 @@ | |||
177 | #endif | 177 | #endif |
178 | 178 | ||
179 | /* | 179 | /* |
180 | * The RM9000 has a bug (though PMC-Sierra opposes it being called that) | 180 | * The RM7000 processors and the E9000 cores have a bug (though PMC-Sierra |
181 | * where invalid instructions in the same I-cache line worth of instructions | 181 | * opposes it being called that) where invalid instructions in the same |
182 | * being fetched may case spurious exceptions. | 182 | * I-cache line worth of instructions being fetched may case spurious |
183 | */ | 183 | * exceptions. |
184 | #if defined(CONFIG_MOMENCO_JAGUAR_ATX) || defined(CONFIG_MOMENCO_OCELOT_3) || \ | 184 | */ |
185 | defined(CONFIG_PMC_YOSEMITE) || defined(CONFIG_BASLER_EXCITE) | 185 | #if defined(CONFIG_BASLER_EXCITE) || defined(CONFIG_MOMENCO_JAGUAR_ATX) || \ |
186 | defined(CONFIG_MIPS_ATLAS) || defined(CONFIG_MIPS_MALTA) || \ | ||
187 | defined(CONFIG_MOMENCO_OCELOT) || defined(CONFIG_MOMENCO_OCELOT_3) || \ | ||
188 | defined(CONFIG_MOMENCO_OCELOT_C) || defined(CONFIG_PMC_YOSEMITE) || \ | ||
189 | defined(CONFIG_SGI_IP32) || defined(CONFIG_WR_PPMC) | ||
186 | #define ICACHE_REFILLS_WORKAROUND_WAR 1 | 190 | #define ICACHE_REFILLS_WORKAROUND_WAR 1 |
187 | #endif | 191 | #endif |
188 | 192 | ||
189 | 193 | ||
190 | /* | 194 | /* |
191 | * ON the R10000 upto version 2.6 (not sure about 2.7) there is a bug that | 195 | * On the R10000 upto version 2.6 (not sure about 2.7) there is a bug that |
192 | * may cause ll / sc and lld / scd sequences to execute non-atomically. | 196 | * may cause ll / sc and lld / scd sequences to execute non-atomically. |
193 | */ | 197 | */ |
194 | #ifdef CONFIG_SGI_IP27 | 198 | #ifdef CONFIG_SGI_IP27 |
diff --git a/ipc/compat.c b/ipc/compat.c index 8b44aa9a7c95..ab76fb0ef844 100644 --- a/ipc/compat.c +++ b/ipc/compat.c | |||
@@ -225,7 +225,7 @@ static inline int put_compat_semid_ds(struct semid64_ds *s, | |||
225 | int err; | 225 | int err; |
226 | 226 | ||
227 | if (!access_ok (VERIFY_WRITE, up, sizeof(*up))) | 227 | if (!access_ok (VERIFY_WRITE, up, sizeof(*up))) |
228 | err = -EFAULT; | 228 | return -EFAULT; |
229 | err = __put_compat_ipc_perm(&s->sem_perm, &up->sem_perm); | 229 | err = __put_compat_ipc_perm(&s->sem_perm, &up->sem_perm); |
230 | err |= __put_user(s->sem_otime, &up->sem_otime); | 230 | err |= __put_user(s->sem_otime, &up->sem_otime); |
231 | err |= __put_user(s->sem_ctime, &up->sem_ctime); | 231 | err |= __put_user(s->sem_ctime, &up->sem_ctime); |
diff --git a/mm/vmstat.c b/mm/vmstat.c index 38254297a494..eceaf496210f 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c | |||
@@ -477,8 +477,8 @@ const struct seq_operations fragmentation_op = { | |||
477 | static const char * const vmstat_text[] = { | 477 | static const char * const vmstat_text[] = { |
478 | /* Zoned VM counters */ | 478 | /* Zoned VM counters */ |
479 | "nr_free_pages", | 479 | "nr_free_pages", |
480 | "nr_active", | ||
481 | "nr_inactive", | 480 | "nr_inactive", |
481 | "nr_active", | ||
482 | "nr_anon_pages", | 482 | "nr_anon_pages", |
483 | "nr_mapped", | 483 | "nr_mapped", |
484 | "nr_file_pages", | 484 | "nr_file_pages", |
diff --git a/scripts/Makefile.headersinst b/scripts/Makefile.headersinst index 8cd63014a0d1..f98d772aac80 100644 --- a/scripts/Makefile.headersinst +++ b/scripts/Makefile.headersinst | |||
@@ -108,7 +108,7 @@ quiet_cmd_mkdir = MKDIR $(patsubst $(INSTALL_HDR_PATH)/%,%,$@) | |||
108 | 108 | ||
109 | quiet_cmd_gen = GEN $(patsubst $(INSTALL_HDR_PATH)/%,%,$@) | 109 | quiet_cmd_gen = GEN $(patsubst $(INSTALL_HDR_PATH)/%,%,$@) |
110 | cmd_gen = \ | 110 | cmd_gen = \ |
111 | FNAME=$(patsubst $(INSTALL_HDR_PATH)/$(_dst)/%,%,$@) \ | 111 | FNAME=$(patsubst $(INSTALL_HDR_PATH)/$(_dst)/%,%,$@); \ |
112 | STUBDEF=__ASM_STUB_`echo $$FNAME | tr a-z.- A-Z__`; \ | 112 | STUBDEF=__ASM_STUB_`echo $$FNAME | tr a-z.- A-Z__`; \ |
113 | (echo "/* File autogenerated by 'make headers_install' */" ; \ | 113 | (echo "/* File autogenerated by 'make headers_install' */" ; \ |
114 | echo "\#ifndef $$STUBDEF" ; \ | 114 | echo "\#ifndef $$STUBDEF" ; \ |