Skip to content

Commit

Permalink
Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/li…
Browse files Browse the repository at this point in the history
…nux/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:
  x86: fix section mismatch warning - apic_x2apic_phys
  x86: fix section mismatch warning - apic_x2apic_cluster
  x86: fix section mismatch warning - apic_x2apic_uv_x
  x86: fix section mismatch warning - apic_physflat
  x86: fix section mismatch warning - apic_flat
  x86: memtest fix use of reserve_early()
  x86 syscall.h: fix argument order
  x86/tlb_uv: remove strange mc146818rtc include
  x86: remove redundant KERN_DEBUG on pr_debug
  x86: do_boot_cpu - check if we have ESR register
  x86: MAINTAINERS change for AMD microcode patch loader
  x86/proc: fix /proc/cpuinfo cpu offline bug
  x86: call dmi-quirks for HP Laptops after early-quirks are executed
  x86, kexec: fix hang on i386 when panic occurs while console_sem is held
  MCE: Don't run 32bit machine checks with interrupts on
  x86: SB600: skip IRQ0 override if it is not routed to INT2 of IOAPIC
  x86: make variables static
  • Loading branch information
torvalds committed Oct 23, 2008
2 parents d244118 + 3cfba08 commit c3c9897
Show file tree
Hide file tree
Showing 18 changed files with 92 additions and 86 deletions.
5 changes: 3 additions & 2 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -378,8 +378,9 @@ T: git://git.kernel.org/pub/scm/linux/kernel/git/joro/linux-2.6-iommu.git
S: Supported

AMD MICROCODE UPDATE SUPPORT
P: Peter Oruba
M: peter.oruba@amd.com
P: Andreas Herrmann
M: andeas.herrmann3@amd.com
L: amd64-microcode@amd64.org
S: Supported

AMS (Apple Motion Sensor) DRIVER
Expand Down
4 changes: 2 additions & 2 deletions arch/x86/boot/video-bios.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
#include "boot.h"
#include "video.h"

__videocard video_bios;
static __videocard video_bios;

/* Set a conventional BIOS mode */
static int set_bios_mode(u8 mode);
Expand Down Expand Up @@ -119,7 +119,7 @@ static int bios_probe(void)
return nmodes;
}

__videocard video_bios =
static __videocard video_bios =
{
.card_name = "BIOS",
.probe = bios_probe,
Expand Down
4 changes: 2 additions & 2 deletions arch/x86/boot/video-vesa.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
static struct vesa_general_info vginfo;
static struct vesa_mode_info vminfo;

__videocard video_vesa;
static __videocard video_vesa;

#ifndef _WAKEUP
static void vesa_store_mode_params_graphics(void);
Expand Down Expand Up @@ -293,7 +293,7 @@ void vesa_store_edid(void)

#endif /* not _WAKEUP */

__videocard video_vesa =
static __videocard video_vesa =
{
.card_name = "VESA",
.probe = vesa_probe,
Expand Down
106 changes: 54 additions & 52 deletions arch/x86/include/asm/syscall.h
Original file line number Diff line number Diff line change
Expand Up @@ -93,53 +93,53 @@ static inline void syscall_get_arguments(struct task_struct *task,
{
# ifdef CONFIG_IA32_EMULATION
if (task_thread_info(task)->status & TS_COMPAT)
switch (i + n) {
case 6:
switch (i) {
case 0:
if (!n--) break;
*args++ = regs->bp;
case 5:
*args++ = regs->bx;
case 1:
if (!n--) break;
*args++ = regs->di;
case 4:
*args++ = regs->cx;
case 2:
if (!n--) break;
*args++ = regs->si;
*args++ = regs->dx;
case 3:
if (!n--) break;
*args++ = regs->dx;
case 2:
*args++ = regs->si;
case 4:
if (!n--) break;
*args++ = regs->cx;
case 1:
*args++ = regs->di;
case 5:
if (!n--) break;
*args++ = regs->bx;
case 0:
*args++ = regs->bp;
case 6:
if (!n--) break;
default:
BUG();
break;
}
else
# endif
switch (i + n) {
case 6:
switch (i) {
case 0:
if (!n--) break;
*args++ = regs->r9;
case 5:
*args++ = regs->di;
case 1:
if (!n--) break;
*args++ = regs->r8;
case 4:
*args++ = regs->si;
case 2:
if (!n--) break;
*args++ = regs->r10;
*args++ = regs->dx;
case 3:
if (!n--) break;
*args++ = regs->dx;
case 2:
*args++ = regs->r10;
case 4:
if (!n--) break;
*args++ = regs->si;
case 1:
*args++ = regs->r8;
case 5:
if (!n--) break;
*args++ = regs->di;
case 0:
*args++ = regs->r9;
case 6:
if (!n--) break;
default:
BUG();
Expand All @@ -154,55 +154,57 @@ static inline void syscall_set_arguments(struct task_struct *task,
{
# ifdef CONFIG_IA32_EMULATION
if (task_thread_info(task)->status & TS_COMPAT)
switch (i + n) {
case 6:
switch (i) {
case 0:
if (!n--) break;
regs->bp = *args++;
case 5:
regs->bx = *args++;
case 1:
if (!n--) break;
regs->di = *args++;
case 4:
regs->cx = *args++;
case 2:
if (!n--) break;
regs->si = *args++;
regs->dx = *args++;
case 3:
if (!n--) break;
regs->dx = *args++;
case 2:
regs->si = *args++;
case 4:
if (!n--) break;
regs->cx = *args++;
case 1:
regs->di = *args++;
case 5:
if (!n--) break;
regs->bx = *args++;
case 0:
regs->bp = *args++;
case 6:
if (!n--) break;
default:
BUG();
break;
}
else
# endif
switch (i + n) {
case 6:
switch (i) {
case 0:
if (!n--) break;
regs->r9 = *args++;
case 5:
regs->di = *args++;
case 1:
if (!n--) break;
regs->r8 = *args++;
case 4:
regs->si = *args++;
case 2:
if (!n--) break;
regs->r10 = *args++;
regs->dx = *args++;
case 3:
if (!n--) break;
regs->dx = *args++;
case 2:
regs->r10 = *args++;
case 4:
if (!n--) break;
regs->si = *args++;
case 1:
regs->r8 = *args++;
case 5:
if (!n--) break;
regs->di = *args++;
case 0:
regs->r9 = *args++;
case 6:
if (!n--) break;
default:
BUG();
break;
}
}

Expand Down
10 changes: 9 additions & 1 deletion arch/x86/kernel/acpi/boot.c
Original file line number Diff line number Diff line change
Expand Up @@ -1137,7 +1137,7 @@ int mp_register_gsi(u32 gsi, int triggering, int polarity)
return gsi;
}
if (test_bit(ioapic_pin, mp_ioapic_routing[ioapic].pin_programmed)) {
pr_debug(KERN_DEBUG "Pin %d-%d already programmed\n",
pr_debug("Pin %d-%d already programmed\n",
mp_ioapic_routing[ioapic].apic_id, ioapic_pin);
#ifdef CONFIG_X86_32
return (gsi < IRQ_COMPRESSION_START ? gsi : gsi_to_irq[gsi]);
Expand Down Expand Up @@ -1599,6 +1599,11 @@ static struct dmi_system_id __initdata acpi_dmi_table[] = {
DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 360"),
},
},
{}
};

/* second table for DMI checks that should run after early-quirks */
static struct dmi_system_id __initdata acpi_dmi_table_late[] = {
/*
* HP laptops which use a DSDT reporting as HP/SB400/10000,
* which includes some code which overrides all temperature
Expand Down Expand Up @@ -1727,6 +1732,9 @@ int __init early_acpi_boot_init(void)

int __init acpi_boot_init(void)
{
/* those are executed after early-quirks are executed */
dmi_check_system(acpi_dmi_table_late);

/*
* If acpi_disabled, bail out
* One exception: acpi=ht continues far enough to enumerate LAPICs
Expand Down
6 changes: 4 additions & 2 deletions arch/x86/kernel/cpu/proc.c
Original file line number Diff line number Diff line change
Expand Up @@ -160,14 +160,16 @@ static void *c_start(struct seq_file *m, loff_t *pos)
{
if (*pos == 0) /* just in case, cpu 0 is not the first */
*pos = first_cpu(cpu_online_map);
if ((*pos) < nr_cpu_ids && cpu_online(*pos))
else
*pos = next_cpu_nr(*pos - 1, cpu_online_map);
if ((*pos) < nr_cpu_ids)
return &cpu_data(*pos);
return NULL;
}

static void *c_next(struct seq_file *m, void *v, loff_t *pos)
{
*pos = next_cpu(*pos, cpu_online_map);
(*pos)++;
return c_start(m, pos);
}

Expand Down
2 changes: 1 addition & 1 deletion arch/x86/kernel/dumpstack_32.c
Original file line number Diff line number Diff line change
Expand Up @@ -405,7 +405,6 @@ die_nmi(char *str, struct pt_regs *regs, int do_panic)
panic("Non maskable interrupt");
console_silent();
spin_unlock(&nmi_print_lock);
bust_spinlocks(0);

/*
* If we are in kernel we are probably nested up pretty bad
Expand All @@ -416,6 +415,7 @@ die_nmi(char *str, struct pt_regs *regs, int do_panic)
crash_kexec(regs);
}

bust_spinlocks(0);
do_exit(SIGSEGV);
}

Expand Down
2 changes: 1 addition & 1 deletion arch/x86/kernel/entry_32.S
Original file line number Diff line number Diff line change
Expand Up @@ -1024,7 +1024,7 @@ ENTRY(machine_check)
RING0_INT_FRAME
pushl $0
CFI_ADJUST_CFA_OFFSET 4
pushl $do_machine_check
pushl machine_check_vector
CFI_ADJUST_CFA_OFFSET 4
jmp error_code
CFI_ENDPROC
Expand Down
4 changes: 2 additions & 2 deletions arch/x86/kernel/genapic_flat_64.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
#include <acpi/acpi_bus.h>
#endif

static int __init flat_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
static int flat_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
{
return 1;
}
Expand Down Expand Up @@ -170,7 +170,7 @@ struct genapic apic_flat = {
* We cannot use logical delivery in this case because the mask
* overflows, so use physical mode.
*/
static int __init physflat_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
static int physflat_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
{
#ifdef CONFIG_ACPI
/*
Expand Down
2 changes: 1 addition & 1 deletion arch/x86/kernel/genx2apic_cluster.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

DEFINE_PER_CPU(u32, x86_cpu_to_logical_apicid);

static int __init x2apic_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
static int x2apic_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
{
if (cpu_has_x2apic)
return 1;
Expand Down
2 changes: 1 addition & 1 deletion arch/x86/kernel/genx2apic_phys.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ static int set_x2apic_phys_mode(char *arg)
}
early_param("x2apic_phys", set_x2apic_phys_mode);

static int __init x2apic_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
static int x2apic_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
{
if (cpu_has_x2apic && x2apic_phys)
return 1;
Expand Down
2 changes: 1 addition & 1 deletion arch/x86/kernel/genx2apic_uv_x.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ DEFINE_PER_CPU(int, x2apic_extra_bits);

static enum uv_system_type uv_system_type;

static int __init uv_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
static int uv_acpi_madt_oem_check(char *oem_id, char *oem_table_id)
{
if (!strcmp(oem_id, "SGI")) {
if (!strcmp(oem_table_id, "UVL"))
Expand Down
2 changes: 1 addition & 1 deletion arch/x86/kernel/setup_percpu.c
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,7 @@ static void __init setup_node_to_cpumask_map(void)
/* allocate the map */
map = alloc_bootmem_low(nr_node_ids * sizeof(cpumask_t));

pr_debug(KERN_DEBUG "Node to cpumask map at %p for %d nodes\n",
pr_debug("Node to cpumask map at %p for %d nodes\n",
map, nr_node_ids);

/* node_to_cpumask() will now work */
Expand Down
8 changes: 5 additions & 3 deletions arch/x86/kernel/smpboot.c
Original file line number Diff line number Diff line change
Expand Up @@ -893,9 +893,11 @@ static int __cpuinit do_boot_cpu(int apicid, int cpu)
smpboot_setup_warm_reset_vector(start_ip);
/*
* Be paranoid about clearing APIC errors.
*/
apic_write(APIC_ESR, 0);
apic_read(APIC_ESR);
*/
if (APIC_INTEGRATED(apic_version[boot_cpu_physical_apicid])) {
apic_write(APIC_ESR, 0);
apic_read(APIC_ESR);
}
}

/*
Expand Down
2 changes: 1 addition & 1 deletion arch/x86/kernel/tlb_uv.c
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
* This code is released under the GNU General Public License version 2 or
* later.
*/
#include <linux/mc146818rtc.h>
#include <linux/seq_file.h>
#include <linux/proc_fs.h>
#include <linux/kernel.h>

Expand Down
8 changes: 0 additions & 8 deletions arch/x86/kernel/traps.c
Original file line number Diff line number Diff line change
Expand Up @@ -931,14 +931,6 @@ do_device_not_available(struct pt_regs *regs, long error)
}

#ifdef CONFIG_X86_32
#ifdef CONFIG_X86_MCE
dotraplinkage void __kprobes do_machine_check(struct pt_regs *regs, long error)
{
conditional_sti(regs);
machine_check_vector(regs, error);
}
#endif

dotraplinkage void do_iret_error(struct pt_regs *regs, long error_code)
{
siginfo_t info;
Expand Down
2 changes: 1 addition & 1 deletion arch/x86/kernel/xsave.c
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,7 @@ int restore_i387_xstate(void __user *buf)
* This will be saved when ever the FP and extended state context is
* saved on the user stack during the signal handler delivery to the user.
*/
void prepare_fx_sw_frame(void)
static void prepare_fx_sw_frame(void)
{
int size_extended = (xstate_size - sizeof(struct i387_fxsave_struct)) +
FP_XSTATE_MAGIC2_SIZE;
Expand Down
Loading

0 comments on commit c3c9897

Please sign in to comment.