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: (27 commits) x86: mpparse.c fix style problems x86: nmi.c fix style problems x86: ldt.c fix style problems x86: cpuid.c fix style problems x86, UV: remove erroneous BAU initialization x86: fix incorrect __read_mostly on _boot_cpu_pda x86: convert permanent_kmaps_init() from macro to inline x86: early_printk - use sizeof instead of hardcoded number x86: xsave.c: restore_user_xstate should be static x86: uv_bau.h: fix dubious bitfield x86: apic.c: xapic_icr_read and x2apic_icr_read should be static x86: bios_uv.c: uv_systab should be static x86: genx2apic_phys.c: x2apic_send_IPI_self and init_x2apic_ldr should be static x86: amd_iommu.c: prealloc_protection_domains should be static x86: amd_iommu_init.c: iommu_enable and iommu_enable_event_logging should be static x86, pci: move arch/x86/pci/pci.h to arch/x86/include/asm/pci_x86.h x86_64: pci-gart_64.c iommu_fullflush should be static x86: efi.c declare add_efi_memmap before they get used x86: io_apic.c io_apic_sync should be static x86: apic.c declare pic_mode before they get used ...
This commit is contained in:
Коммит
a8e782348d
|
@ -24,15 +24,14 @@
|
|||
#include <asm/ucontext.h>
|
||||
#include <asm/uaccess.h>
|
||||
#include <asm/i387.h>
|
||||
#include <asm/ia32.h>
|
||||
#include <asm/ptrace.h>
|
||||
#include <asm/ia32_unistd.h>
|
||||
#include <asm/user32.h>
|
||||
#include <asm/sigcontext32.h>
|
||||
#include <asm/proto.h>
|
||||
#include <asm/vdso.h>
|
||||
|
||||
#include <asm/sigframe.h>
|
||||
#include <asm/sys_ia32.h>
|
||||
|
||||
#define DEBUG_SIG 0
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
#include <linux/shm.h>
|
||||
#include <linux/ipc.h>
|
||||
#include <linux/compat.h>
|
||||
#include <asm/sys_ia32.h>
|
||||
|
||||
asmlinkage long sys32_ipc(u32 call, int first, int second, int third,
|
||||
compat_uptr_t ptr, u32 fifth)
|
||||
|
|
|
@ -44,8 +44,8 @@
|
|||
#include <asm/types.h>
|
||||
#include <asm/uaccess.h>
|
||||
#include <asm/atomic.h>
|
||||
#include <asm/ia32.h>
|
||||
#include <asm/vgtod.h>
|
||||
#include <asm/sys_ia32.h>
|
||||
|
||||
#define AA(__x) ((unsigned long)(__x))
|
||||
|
||||
|
|
|
@ -54,7 +54,6 @@ extern int disable_apic;
|
|||
extern int is_vsmp_box(void);
|
||||
extern void xapic_wait_icr_idle(void);
|
||||
extern u32 safe_xapic_wait_icr_idle(void);
|
||||
extern u64 xapic_icr_read(void);
|
||||
extern void xapic_icr_write(u32, u32);
|
||||
extern int setup_profiling_timer(unsigned int);
|
||||
|
||||
|
@ -93,7 +92,7 @@ static inline u32 native_apic_msr_read(u32 reg)
|
|||
}
|
||||
|
||||
#ifndef CONFIG_X86_32
|
||||
extern int x2apic, x2apic_preenabled;
|
||||
extern int x2apic;
|
||||
extern void check_x2apic(void);
|
||||
extern void enable_x2apic(void);
|
||||
extern void enable_IR_x2apic(void);
|
||||
|
|
|
@ -90,6 +90,7 @@ extern void __iomem *efi_ioremap(unsigned long addr, unsigned long size);
|
|||
|
||||
#endif /* CONFIG_X86_32 */
|
||||
|
||||
extern int add_efi_memmap;
|
||||
extern void efi_reserve_early(void);
|
||||
extern void efi_call_phys_prelog(void);
|
||||
extern void efi_call_phys_epilog(void);
|
||||
|
|
|
@ -6,13 +6,13 @@
|
|||
#include <asm/mpspec_def.h>
|
||||
|
||||
extern int apic_version[MAX_APICS];
|
||||
extern int pic_mode;
|
||||
|
||||
#ifdef CONFIG_X86_32
|
||||
#include <mach_mpspec.h>
|
||||
|
||||
extern unsigned int def_to_bigsmp;
|
||||
extern u8 apicid_2_node[];
|
||||
extern int pic_mode;
|
||||
|
||||
#ifdef CONFIG_X86_NUMAQ
|
||||
extern int mp_bus_id_to_node[MAX_MP_BUSSES];
|
||||
|
|
|
@ -57,7 +57,8 @@ extern struct pci_ops pci_root_ops;
|
|||
struct irq_info {
|
||||
u8 bus, devfn; /* Bus, device and function */
|
||||
struct {
|
||||
u8 link; /* IRQ line ID, chipset dependent, 0=not routed */
|
||||
u8 link; /* IRQ line ID, chipset dependent,
|
||||
0 = not routed */
|
||||
u16 bitmap; /* Available IRQs */
|
||||
} __attribute__((packed)) irq[4];
|
||||
u8 slot; /* Slot number, 0=onboard */
|
||||
|
@ -69,11 +70,13 @@ struct irq_routing_table {
|
|||
u16 version; /* PIRQ_VERSION */
|
||||
u16 size; /* Table size in bytes */
|
||||
u8 rtr_bus, rtr_devfn; /* Where the interrupt router lies */
|
||||
u16 exclusive_irqs; /* IRQs devoted exclusively to PCI usage */
|
||||
u16 rtr_vendor, rtr_device; /* Vendor and device ID of interrupt router */
|
||||
u16 exclusive_irqs; /* IRQs devoted exclusively to
|
||||
PCI usage */
|
||||
u16 rtr_vendor, rtr_device; /* Vendor and device ID of
|
||||
interrupt router */
|
||||
u32 miniport_data; /* Crap */
|
||||
u8 rfu[11];
|
||||
u8 checksum; /* Modulo 256 checksum must give zero */
|
||||
u8 checksum; /* Modulo 256 checksum must give 0 */
|
||||
struct irq_info slots[0];
|
||||
} __attribute__((packed));
|
||||
|
||||
|
@ -148,15 +151,15 @@ static inline unsigned int mmio_config_readl(void __iomem *pos)
|
|||
|
||||
static inline void mmio_config_writeb(void __iomem *pos, u8 val)
|
||||
{
|
||||
asm volatile("movb %%al,(%1)" :: "a" (val), "r" (pos) : "memory");
|
||||
asm volatile("movb %%al,(%1)" : : "a" (val), "r" (pos) : "memory");
|
||||
}
|
||||
|
||||
static inline void mmio_config_writew(void __iomem *pos, u16 val)
|
||||
{
|
||||
asm volatile("movw %%ax,(%1)" :: "a" (val), "r" (pos) : "memory");
|
||||
asm volatile("movw %%ax,(%1)" : : "a" (val), "r" (pos) : "memory");
|
||||
}
|
||||
|
||||
static inline void mmio_config_writel(void __iomem *pos, u32 val)
|
||||
{
|
||||
asm volatile("movl %%eax,(%1)" :: "a" (val), "r" (pos) : "memory");
|
||||
asm volatile("movl %%eax,(%1)" : : "a" (val), "r" (pos) : "memory");
|
||||
}
|
|
@ -0,0 +1,101 @@
|
|||
/*
|
||||
* sys_ia32.h - Linux ia32 syscall interfaces
|
||||
*
|
||||
* Copyright (c) 2008 Jaswinder Singh Rajput
|
||||
*
|
||||
* This file is released under the GPLv2.
|
||||
* See the file COPYING for more details.
|
||||
*/
|
||||
|
||||
#ifndef _ASM_X86_SYS_IA32_H
|
||||
#define _ASM_X86_SYS_IA32_H
|
||||
|
||||
#include <linux/compiler.h>
|
||||
#include <linux/linkage.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/signal.h>
|
||||
#include <asm/compat.h>
|
||||
#include <asm/ia32.h>
|
||||
|
||||
/* ia32/sys_ia32.c */
|
||||
asmlinkage long sys32_truncate64(char __user *, unsigned long, unsigned long);
|
||||
asmlinkage long sys32_ftruncate64(unsigned int, unsigned long, unsigned long);
|
||||
|
||||
asmlinkage long sys32_stat64(char __user *, struct stat64 __user *);
|
||||
asmlinkage long sys32_lstat64(char __user *, struct stat64 __user *);
|
||||
asmlinkage long sys32_fstat64(unsigned int, struct stat64 __user *);
|
||||
asmlinkage long sys32_fstatat(unsigned int, char __user *,
|
||||
struct stat64 __user *, int);
|
||||
struct mmap_arg_struct;
|
||||
asmlinkage long sys32_mmap(struct mmap_arg_struct __user *);
|
||||
asmlinkage long sys32_mprotect(unsigned long, size_t, unsigned long);
|
||||
|
||||
asmlinkage long sys32_pipe(int __user *);
|
||||
struct sigaction32;
|
||||
struct old_sigaction32;
|
||||
asmlinkage long sys32_rt_sigaction(int, struct sigaction32 __user *,
|
||||
struct sigaction32 __user *, unsigned int);
|
||||
asmlinkage long sys32_sigaction(int, struct old_sigaction32 __user *,
|
||||
struct old_sigaction32 __user *);
|
||||
asmlinkage long sys32_rt_sigprocmask(int, compat_sigset_t __user *,
|
||||
compat_sigset_t __user *, unsigned int);
|
||||
asmlinkage long sys32_alarm(unsigned int);
|
||||
|
||||
struct sel_arg_struct;
|
||||
asmlinkage long sys32_old_select(struct sel_arg_struct __user *);
|
||||
asmlinkage long sys32_waitpid(compat_pid_t, unsigned int *, int);
|
||||
asmlinkage long sys32_sysfs(int, u32, u32);
|
||||
|
||||
asmlinkage long sys32_sched_rr_get_interval(compat_pid_t,
|
||||
struct compat_timespec __user *);
|
||||
asmlinkage long sys32_rt_sigpending(compat_sigset_t __user *, compat_size_t);
|
||||
asmlinkage long sys32_rt_sigqueueinfo(int, int, compat_siginfo_t __user *);
|
||||
|
||||
#ifdef CONFIG_SYSCTL_SYSCALL
|
||||
struct sysctl_ia32;
|
||||
asmlinkage long sys32_sysctl(struct sysctl_ia32 __user *);
|
||||
#endif
|
||||
|
||||
asmlinkage long sys32_pread(unsigned int, char __user *, u32, u32, u32);
|
||||
asmlinkage long sys32_pwrite(unsigned int, char __user *, u32, u32, u32);
|
||||
|
||||
asmlinkage long sys32_personality(unsigned long);
|
||||
asmlinkage long sys32_sendfile(int, int, compat_off_t __user *, s32);
|
||||
|
||||
asmlinkage long sys32_mmap2(unsigned long, unsigned long, unsigned long,
|
||||
unsigned long, unsigned long, unsigned long);
|
||||
|
||||
struct oldold_utsname;
|
||||
struct old_utsname;
|
||||
asmlinkage long sys32_olduname(struct oldold_utsname __user *);
|
||||
long sys32_uname(struct old_utsname __user *);
|
||||
|
||||
long sys32_ustat(unsigned, struct ustat32 __user *);
|
||||
|
||||
asmlinkage long sys32_execve(char __user *, compat_uptr_t __user *,
|
||||
compat_uptr_t __user *, struct pt_regs *);
|
||||
asmlinkage long sys32_clone(unsigned int, unsigned int, struct pt_regs *);
|
||||
|
||||
long sys32_lseek(unsigned int, int, unsigned int);
|
||||
long sys32_kill(int, int);
|
||||
long sys32_fadvise64_64(int, __u32, __u32, __u32, __u32, int);
|
||||
long sys32_vm86_warning(void);
|
||||
long sys32_lookup_dcookie(u32, u32, char __user *, size_t);
|
||||
|
||||
asmlinkage ssize_t sys32_readahead(int, unsigned, unsigned, size_t);
|
||||
asmlinkage long sys32_sync_file_range(int, unsigned, unsigned,
|
||||
unsigned, unsigned, int);
|
||||
asmlinkage long sys32_fadvise64(int, unsigned, unsigned, size_t, int);
|
||||
asmlinkage long sys32_fallocate(int, int, unsigned,
|
||||
unsigned, unsigned, unsigned);
|
||||
|
||||
/* ia32/ia32_signal.c */
|
||||
asmlinkage long sys32_sigsuspend(int, int, old_sigset_t);
|
||||
asmlinkage long sys32_sigaltstack(const stack_ia32_t __user *,
|
||||
stack_ia32_t __user *, struct pt_regs *);
|
||||
asmlinkage long sys32_sigreturn(struct pt_regs *);
|
||||
asmlinkage long sys32_rt_sigreturn(struct pt_regs *);
|
||||
|
||||
/* ia32/ipc32.c */
|
||||
asmlinkage long sys32_ipc(u32, int, int, int, compat_uptr_t, u32);
|
||||
#endif /* _ASM_X86_SYS_IA32_H */
|
|
@ -133,61 +133,61 @@ struct bau_msg_payload {
|
|||
* see table 4.2.3.0.1 in broacast_assist spec.
|
||||
*/
|
||||
struct bau_msg_header {
|
||||
int dest_subnodeid:6; /* must be zero */
|
||||
unsigned int dest_subnodeid:6; /* must be zero */
|
||||
/* bits 5:0 */
|
||||
int base_dest_nodeid:15; /* nasid>>1 (pnode) of first bit in node_map */
|
||||
/* bits 20:6 */
|
||||
int command:8; /* message type */
|
||||
unsigned int base_dest_nodeid:15; /* nasid>>1 (pnode) of */
|
||||
/* bits 20:6 */ /* first bit in node_map */
|
||||
unsigned int command:8; /* message type */
|
||||
/* bits 28:21 */
|
||||
/* 0x38: SN3net EndPoint Message */
|
||||
int rsvd_1:3; /* must be zero */
|
||||
unsigned int rsvd_1:3; /* must be zero */
|
||||
/* bits 31:29 */
|
||||
/* int will align on 32 bits */
|
||||
int rsvd_2:9; /* must be zero */
|
||||
unsigned int rsvd_2:9; /* must be zero */
|
||||
/* bits 40:32 */
|
||||
/* Suppl_A is 56-41 */
|
||||
int payload_2a:8; /* becomes byte 16 of msg */
|
||||
unsigned int payload_2a:8;/* becomes byte 16 of msg */
|
||||
/* bits 48:41 */ /* not currently using */
|
||||
int payload_2b:8; /* becomes byte 17 of msg */
|
||||
unsigned int payload_2b:8;/* becomes byte 17 of msg */
|
||||
/* bits 56:49 */ /* not currently using */
|
||||
/* Address field (96:57) is never used as an
|
||||
address (these are address bits 42:3) */
|
||||
int rsvd_3:1; /* must be zero */
|
||||
unsigned int rsvd_3:1; /* must be zero */
|
||||
/* bit 57 */
|
||||
/* address bits 27:4 are payload */
|
||||
/* these 24 bits become bytes 12-14 of msg */
|
||||
int replied_to:1; /* sent as 0 by the source to byte 12 */
|
||||
unsigned int replied_to:1;/* sent as 0 by the source to byte 12 */
|
||||
/* bit 58 */
|
||||
|
||||
int payload_1a:5; /* not currently used */
|
||||
unsigned int payload_1a:5;/* not currently used */
|
||||
/* bits 63:59 */
|
||||
int payload_1b:8; /* not currently used */
|
||||
unsigned int payload_1b:8;/* not currently used */
|
||||
/* bits 71:64 */
|
||||
int payload_1c:8; /* not currently used */
|
||||
unsigned int payload_1c:8;/* not currently used */
|
||||
/* bits 79:72 */
|
||||
int payload_1d:2; /* not currently used */
|
||||
unsigned int payload_1d:2;/* not currently used */
|
||||
/* bits 81:80 */
|
||||
|
||||
int rsvd_4:7; /* must be zero */
|
||||
unsigned int rsvd_4:7; /* must be zero */
|
||||
/* bits 88:82 */
|
||||
int sw_ack_flag:1; /* software acknowledge flag */
|
||||
unsigned int sw_ack_flag:1;/* software acknowledge flag */
|
||||
/* bit 89 */
|
||||
/* INTD trasactions at destination are to
|
||||
wait for software acknowledge */
|
||||
int rsvd_5:6; /* must be zero */
|
||||
unsigned int rsvd_5:6; /* must be zero */
|
||||
/* bits 95:90 */
|
||||
int rsvd_6:5; /* must be zero */
|
||||
unsigned int rsvd_6:5; /* must be zero */
|
||||
/* bits 100:96 */
|
||||
int int_both:1; /* if 1, interrupt both sockets on the blade */
|
||||
unsigned int int_both:1;/* if 1, interrupt both sockets on the blade */
|
||||
/* bit 101*/
|
||||
int fairness:3; /* usually zero */
|
||||
unsigned int fairness:3;/* usually zero */
|
||||
/* bits 104:102 */
|
||||
int multilevel:1; /* multi-level multicast format */
|
||||
unsigned int multilevel:1; /* multi-level multicast format */
|
||||
/* bit 105 */
|
||||
/* 0 for TLB: endpoint multi-unicast messages */
|
||||
int chaining:1; /* next descriptor is part of this activation*/
|
||||
unsigned int chaining:1;/* next descriptor is part of this activation*/
|
||||
/* bit 106 */
|
||||
int rsvd_7:21; /* must be zero */
|
||||
unsigned int rsvd_7:21; /* must be zero */
|
||||
/* bits 127:107 */
|
||||
};
|
||||
|
||||
|
|
|
@ -1296,7 +1296,7 @@ static int amd_iommu_dma_supported(struct device *dev, u64 mask)
|
|||
* we don't need to preallocate the protection domains anymore.
|
||||
* For now we have to.
|
||||
*/
|
||||
void prealloc_protection_domains(void)
|
||||
static void prealloc_protection_domains(void)
|
||||
{
|
||||
struct pci_dev *dev = NULL;
|
||||
struct dma_ops_domain *dma_dom;
|
||||
|
|
|
@ -243,7 +243,7 @@ static void __init iommu_feature_disable(struct amd_iommu *iommu, u8 bit)
|
|||
}
|
||||
|
||||
/* Function to enable the hardware */
|
||||
void __init iommu_enable(struct amd_iommu *iommu)
|
||||
static void __init iommu_enable(struct amd_iommu *iommu)
|
||||
{
|
||||
printk(KERN_INFO "AMD IOMMU: Enabling IOMMU "
|
||||
"at %02x:%02x.%x cap 0x%hx\n",
|
||||
|
@ -256,7 +256,7 @@ void __init iommu_enable(struct amd_iommu *iommu)
|
|||
}
|
||||
|
||||
/* Function to enable IOMMU event logging and event interrupts */
|
||||
void __init iommu_enable_event_logging(struct amd_iommu *iommu)
|
||||
static void __init iommu_enable_event_logging(struct amd_iommu *iommu)
|
||||
{
|
||||
iommu_feature_enable(iommu, CONTROL_EVT_LOG_EN);
|
||||
iommu_feature_enable(iommu, CONTROL_EVT_INT_EN);
|
||||
|
|
|
@ -98,8 +98,8 @@ __setup("apicpmtimer", setup_apicpmtimer);
|
|||
#ifdef HAVE_X2APIC
|
||||
int x2apic;
|
||||
/* x2apic enabled before OS handover */
|
||||
int x2apic_preenabled;
|
||||
int disable_x2apic;
|
||||
static int x2apic_preenabled;
|
||||
static int disable_x2apic;
|
||||
static __init int setup_nox2apic(char *str)
|
||||
{
|
||||
disable_x2apic = 1;
|
||||
|
@ -226,7 +226,7 @@ void xapic_icr_write(u32 low, u32 id)
|
|||
apic_write(APIC_ICR, low);
|
||||
}
|
||||
|
||||
u64 xapic_icr_read(void)
|
||||
static u64 xapic_icr_read(void)
|
||||
{
|
||||
u32 icr1, icr2;
|
||||
|
||||
|
@ -266,7 +266,7 @@ void x2apic_icr_write(u32 low, u32 id)
|
|||
wrmsrl(APIC_BASE_MSR + (APIC_ICR >> 4), ((__u64) id) << 32 | low);
|
||||
}
|
||||
|
||||
u64 x2apic_icr_read(void)
|
||||
static u64 x2apic_icr_read(void)
|
||||
{
|
||||
unsigned long val;
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
#include <asm/uv/bios.h>
|
||||
#include <asm/uv/uv_hub.h>
|
||||
|
||||
struct uv_systab uv_systab;
|
||||
static struct uv_systab uv_systab;
|
||||
|
||||
s64 uv_bios_call(enum uv_bios_cmd which, u64 a1, u64 a2, u64 a3, u64 a4, u64 a5)
|
||||
{
|
||||
|
|
|
@ -824,16 +824,14 @@ static int enable_mtrr_cleanup __initdata =
|
|||
|
||||
static int __init disable_mtrr_cleanup_setup(char *str)
|
||||
{
|
||||
if (enable_mtrr_cleanup != -1)
|
||||
enable_mtrr_cleanup = 0;
|
||||
enable_mtrr_cleanup = 0;
|
||||
return 0;
|
||||
}
|
||||
early_param("disable_mtrr_cleanup", disable_mtrr_cleanup_setup);
|
||||
|
||||
static int __init enable_mtrr_cleanup_setup(char *str)
|
||||
{
|
||||
if (enable_mtrr_cleanup != -1)
|
||||
enable_mtrr_cleanup = 1;
|
||||
enable_mtrr_cleanup = 1;
|
||||
return 0;
|
||||
}
|
||||
early_param("enable_mtrr_cleanup", enable_mtrr_cleanup_setup);
|
||||
|
|
|
@ -39,10 +39,10 @@
|
|||
#include <linux/device.h>
|
||||
#include <linux/cpu.h>
|
||||
#include <linux/notifier.h>
|
||||
#include <linux/uaccess.h>
|
||||
|
||||
#include <asm/processor.h>
|
||||
#include <asm/msr.h>
|
||||
#include <asm/uaccess.h>
|
||||
#include <asm/system.h>
|
||||
|
||||
static struct class *cpuid_class;
|
||||
|
@ -82,7 +82,7 @@ static loff_t cpuid_seek(struct file *file, loff_t offset, int orig)
|
|||
}
|
||||
|
||||
static ssize_t cpuid_read(struct file *file, char __user *buf,
|
||||
size_t count, loff_t * ppos)
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
char __user *tmp = buf;
|
||||
struct cpuid_regs cmd;
|
||||
|
@ -117,7 +117,7 @@ static int cpuid_open(struct inode *inode, struct file *file)
|
|||
unsigned int cpu;
|
||||
struct cpuinfo_x86 *c;
|
||||
int ret = 0;
|
||||
|
||||
|
||||
lock_kernel();
|
||||
|
||||
cpu = iminor(file->f_path.dentry->d_inode);
|
||||
|
|
|
@ -886,7 +886,7 @@ asmlinkage void early_printk(const char *fmt, ...)
|
|||
va_list ap;
|
||||
|
||||
va_start(ap, fmt);
|
||||
n = vscnprintf(buf, 512, fmt, ap);
|
||||
n = vscnprintf(buf, sizeof(buf), fmt, ap);
|
||||
early_console->write(early_console, buf, n);
|
||||
va_end(ap);
|
||||
}
|
||||
|
|
|
@ -161,12 +161,12 @@ static unsigned int phys_pkg_id(int index_msb)
|
|||
return current_cpu_data.initial_apicid >> index_msb;
|
||||
}
|
||||
|
||||
void x2apic_send_IPI_self(int vector)
|
||||
static void x2apic_send_IPI_self(int vector)
|
||||
{
|
||||
apic_write(APIC_SELF_IPI, vector);
|
||||
}
|
||||
|
||||
void init_x2apic_ldr(void)
|
||||
static void init_x2apic_ldr(void)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
#include <asm/trampoline.h>
|
||||
|
||||
/* boot cpu pda */
|
||||
static struct x8664_pda _boot_cpu_pda __read_mostly;
|
||||
static struct x8664_pda _boot_cpu_pda;
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
/*
|
||||
|
|
|
@ -706,7 +706,7 @@ static void __unmask_IO_APIC_irq(struct irq_cfg *cfg)
|
|||
}
|
||||
|
||||
#ifdef CONFIG_X86_64
|
||||
void io_apic_sync(struct irq_pin_list *entry)
|
||||
static void io_apic_sync(struct irq_pin_list *entry)
|
||||
{
|
||||
/*
|
||||
* Synchronize the IO-APIC and the CPU by doing
|
||||
|
|
|
@ -12,8 +12,8 @@
|
|||
#include <linux/mm.h>
|
||||
#include <linux/smp.h>
|
||||
#include <linux/vmalloc.h>
|
||||
#include <linux/uaccess.h>
|
||||
|
||||
#include <asm/uaccess.h>
|
||||
#include <asm/system.h>
|
||||
#include <asm/ldt.h>
|
||||
#include <asm/desc.h>
|
||||
|
@ -93,7 +93,7 @@ static inline int copy_ldt(mm_context_t *new, mm_context_t *old)
|
|||
if (err < 0)
|
||||
return err;
|
||||
|
||||
for(i = 0; i < old->size; i++)
|
||||
for (i = 0; i < old->size; i++)
|
||||
write_ldt_entry(new->ldt, i, old->ldt + i * LDT_ENTRY_SIZE);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -13,8 +13,7 @@
|
|||
#include <asm/msr.h>
|
||||
#include <asm/acpi.h>
|
||||
#include <asm/mmconfig.h>
|
||||
|
||||
#include "../pci/pci.h"
|
||||
#include <asm/pci_x86.h>
|
||||
|
||||
struct pci_hostbridge_probe {
|
||||
u32 bus;
|
||||
|
|
|
@ -16,14 +16,14 @@
|
|||
#include <linux/bitops.h>
|
||||
#include <linux/acpi.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/smp.h>
|
||||
#include <linux/acpi.h>
|
||||
|
||||
#include <asm/smp.h>
|
||||
#include <asm/mtrr.h>
|
||||
#include <asm/mpspec.h>
|
||||
#include <asm/pgalloc.h>
|
||||
#include <asm/io_apic.h>
|
||||
#include <asm/proto.h>
|
||||
#include <asm/acpi.h>
|
||||
#include <asm/bios_ebda.h>
|
||||
#include <asm/e820.h>
|
||||
#include <asm/trampoline.h>
|
||||
|
@ -95,8 +95,8 @@ static void __init MP_bus_info(struct mpc_config_bus *m)
|
|||
#endif
|
||||
|
||||
if (strncmp(str, BUSTYPE_ISA, sizeof(BUSTYPE_ISA) - 1) == 0) {
|
||||
set_bit(m->mpc_busid, mp_bus_not_pci);
|
||||
#if defined(CONFIG_EISA) || defined (CONFIG_MCA)
|
||||
set_bit(m->mpc_busid, mp_bus_not_pci);
|
||||
#if defined(CONFIG_EISA) || defined(CONFIG_MCA)
|
||||
mp_bus_id_to_type[m->mpc_busid] = MP_BUS_ISA;
|
||||
#endif
|
||||
} else if (strncmp(str, BUSTYPE_PCI, sizeof(BUSTYPE_PCI) - 1) == 0) {
|
||||
|
@ -104,7 +104,7 @@ static void __init MP_bus_info(struct mpc_config_bus *m)
|
|||
x86_quirks->mpc_oem_pci_bus(m);
|
||||
|
||||
clear_bit(m->mpc_busid, mp_bus_not_pci);
|
||||
#if defined(CONFIG_EISA) || defined (CONFIG_MCA)
|
||||
#if defined(CONFIG_EISA) || defined(CONFIG_MCA)
|
||||
mp_bus_id_to_type[m->mpc_busid] = MP_BUS_PCI;
|
||||
} else if (strncmp(str, BUSTYPE_EISA, sizeof(BUSTYPE_EISA) - 1) == 0) {
|
||||
mp_bus_id_to_type[m->mpc_busid] = MP_BUS_EISA;
|
||||
|
|
|
@ -26,11 +26,10 @@
|
|||
#include <linux/kernel_stat.h>
|
||||
#include <linux/kdebug.h>
|
||||
#include <linux/smp.h>
|
||||
#include <linux/nmi.h>
|
||||
|
||||
#include <asm/i8259.h>
|
||||
#include <asm/io_apic.h>
|
||||
#include <asm/smp.h>
|
||||
#include <asm/nmi.h>
|
||||
#include <asm/proto.h>
|
||||
#include <asm/timer.h>
|
||||
|
||||
|
|
|
@ -52,7 +52,7 @@ static u32 *iommu_gatt_base; /* Remapping table */
|
|||
* to trigger bugs with some popular PCI cards, in particular 3ware (but
|
||||
* has been also also seen with Qlogic at least).
|
||||
*/
|
||||
int iommu_fullflush = 1;
|
||||
static int iommu_fullflush = 1;
|
||||
|
||||
/* Allocation bitmap for the remapping area: */
|
||||
static DEFINE_SPINLOCK(iommu_bitmap_lock);
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
#include <asm/proto.h>
|
||||
#include <asm/reboot_fixups.h>
|
||||
#include <asm/reboot.h>
|
||||
#include <asm/pci_x86.h>
|
||||
#include <asm/virtext.h>
|
||||
|
||||
#ifdef CONFIG_X86_32
|
||||
|
@ -24,7 +25,6 @@
|
|||
|
||||
#include <mach_ipi.h>
|
||||
|
||||
|
||||
/*
|
||||
* Power off function, if any
|
||||
*/
|
||||
|
|
|
@ -582,7 +582,6 @@ static int __init uv_ptc_init(void)
|
|||
static struct bau_control * __init uv_table_bases_init(int blade, int node)
|
||||
{
|
||||
int i;
|
||||
int *ip;
|
||||
struct bau_msg_status *msp;
|
||||
struct bau_control *bau_tabp;
|
||||
|
||||
|
@ -599,13 +598,6 @@ static struct bau_control * __init uv_table_bases_init(int blade, int node)
|
|||
bau_cpubits_clear(&msp->seen_by, (int)
|
||||
uv_blade_nr_possible_cpus(blade));
|
||||
|
||||
bau_tabp->watching =
|
||||
kmalloc_node(sizeof(int) * DEST_NUM_RESOURCES, GFP_KERNEL, node);
|
||||
BUG_ON(!bau_tabp->watching);
|
||||
|
||||
for (i = 0, ip = bau_tabp->watching; i < DEST_Q_SIZE; i++, ip++)
|
||||
*ip = 0;
|
||||
|
||||
uv_bau_table_bases[blade] = bau_tabp;
|
||||
|
||||
return bau_tabp;
|
||||
|
@ -628,7 +620,6 @@ uv_table_bases_finish(int blade, int node, int cur_cpu,
|
|||
bcp->bau_msg_head = bau_tablesp->va_queue_first;
|
||||
bcp->va_queue_first = bau_tablesp->va_queue_first;
|
||||
bcp->va_queue_last = bau_tablesp->va_queue_last;
|
||||
bcp->watching = bau_tablesp->watching;
|
||||
bcp->msg_statuses = bau_tablesp->msg_statuses;
|
||||
bcp->descriptor_base = adp;
|
||||
}
|
||||
|
|
|
@ -292,8 +292,10 @@ dotraplinkage void do_double_fault(struct pt_regs *regs, long error_code)
|
|||
tsk->thread.error_code = error_code;
|
||||
tsk->thread.trap_no = 8;
|
||||
|
||||
/* This is always a kernel trap and never fixable (and thus must
|
||||
never return). */
|
||||
/*
|
||||
* This is always a kernel trap and never fixable (and thus must
|
||||
* never return).
|
||||
*/
|
||||
for (;;)
|
||||
die(str, regs, error_code);
|
||||
}
|
||||
|
@ -520,9 +522,11 @@ dotraplinkage void __kprobes do_int3(struct pt_regs *regs, long error_code)
|
|||
}
|
||||
|
||||
#ifdef CONFIG_X86_64
|
||||
/* Help handler running on IST stack to switch back to user stack
|
||||
for scheduling or signal handling. The actual stack switch is done in
|
||||
entry.S */
|
||||
/*
|
||||
* Help handler running on IST stack to switch back to user stack
|
||||
* for scheduling or signal handling. The actual stack switch is done in
|
||||
* entry.S
|
||||
*/
|
||||
asmlinkage __kprobes struct pt_regs *sync_regs(struct pt_regs *eregs)
|
||||
{
|
||||
struct pt_regs *regs = eregs;
|
||||
|
@ -532,8 +536,10 @@ asmlinkage __kprobes struct pt_regs *sync_regs(struct pt_regs *eregs)
|
|||
/* Exception from user space */
|
||||
else if (user_mode(eregs))
|
||||
regs = task_pt_regs(current);
|
||||
/* Exception from kernel and interrupts are enabled. Move to
|
||||
kernel process stack. */
|
||||
/*
|
||||
* Exception from kernel and interrupts are enabled. Move to
|
||||
* kernel process stack.
|
||||
*/
|
||||
else if (eregs->flags & X86_EFLAGS_IF)
|
||||
regs = (struct pt_regs *)(eregs->sp -= sizeof(struct pt_regs));
|
||||
if (eregs != regs)
|
||||
|
@ -685,12 +691,7 @@ void math_error(void __user *ip)
|
|||
cwd = get_fpu_cwd(task);
|
||||
swd = get_fpu_swd(task);
|
||||
|
||||
err = swd & ~cwd & 0x3f;
|
||||
|
||||
#ifdef CONFIG_X86_32
|
||||
if (!err)
|
||||
return;
|
||||
#endif
|
||||
err = swd & ~cwd;
|
||||
|
||||
if (err & 0x001) { /* Invalid op */
|
||||
/*
|
||||
|
@ -708,7 +709,11 @@ void math_error(void __user *ip)
|
|||
} else if (err & 0x020) { /* Precision */
|
||||
info.si_code = FPE_FLTRES;
|
||||
} else {
|
||||
info.si_code = __SI_FAULT|SI_KERNEL; /* WTF? */
|
||||
/*
|
||||
* If we're using IRQ 13, or supposedly even some trap 16
|
||||
* implementations, it's possible we get a spurious trap...
|
||||
*/
|
||||
return; /* Spurious trap, no error */
|
||||
}
|
||||
force_sig_info(SIGFPE, &info, task);
|
||||
}
|
||||
|
|
|
@ -159,7 +159,7 @@ int save_i387_xstate(void __user *buf)
|
|||
* Restore the extended state if present. Otherwise, restore the FP/SSE
|
||||
* state.
|
||||
*/
|
||||
int restore_user_xstate(void __user *buf)
|
||||
static int restore_user_xstate(void __user *buf)
|
||||
{
|
||||
struct _fpx_sw_bytes fx_sw_user;
|
||||
u64 mask;
|
||||
|
|
|
@ -133,29 +133,28 @@ void __init time_init_hook(void)
|
|||
**/
|
||||
void mca_nmi_hook(void)
|
||||
{
|
||||
/* If I recall correctly, there's a whole bunch of other things that
|
||||
/*
|
||||
* If I recall correctly, there's a whole bunch of other things that
|
||||
* we can do to check for NMI problems, but that's all I know about
|
||||
* at the moment.
|
||||
*/
|
||||
|
||||
printk("NMI generated from unknown source!\n");
|
||||
pr_warning("NMI generated from unknown source!\n");
|
||||
}
|
||||
#endif
|
||||
|
||||
static __init int no_ipi_broadcast(char *str)
|
||||
{
|
||||
get_option(&str, &no_broadcast);
|
||||
printk ("Using %s mode\n", no_broadcast ? "No IPI Broadcast" :
|
||||
"IPI Broadcast");
|
||||
pr_info("Using %s mode\n",
|
||||
no_broadcast ? "No IPI Broadcast" : "IPI Broadcast");
|
||||
return 1;
|
||||
}
|
||||
|
||||
__setup("no_ipi_broadcast=", no_ipi_broadcast);
|
||||
|
||||
static int __init print_ipi_mode(void)
|
||||
{
|
||||
printk ("Using IPI %s mode\n", no_broadcast ? "No-Shortcut" :
|
||||
"Shortcut");
|
||||
pr_info("Using IPI %s mode\n",
|
||||
no_broadcast ? "No-Shortcut" : "Shortcut");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
#include <linux/irq.h>
|
||||
#include <linux/dmi.h>
|
||||
#include <asm/numa.h>
|
||||
#include "pci.h"
|
||||
#include <asm/pci_x86.h>
|
||||
|
||||
struct pci_root_info {
|
||||
char *name;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
#include <linux/pci.h>
|
||||
#include <linux/topology.h>
|
||||
#include <linux/cpu.h>
|
||||
#include "pci.h"
|
||||
#include <asm/pci_x86.h>
|
||||
|
||||
#ifdef CONFIG_X86_64
|
||||
#include <asm/pci-direct.h>
|
||||
|
|
|
@ -14,8 +14,7 @@
|
|||
#include <asm/segment.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/smp.h>
|
||||
|
||||
#include "pci.h"
|
||||
#include <asm/pci_x86.h>
|
||||
|
||||
unsigned int pci_probe = PCI_PROBE_BIOS | PCI_PROBE_CONF1 | PCI_PROBE_CONF2 |
|
||||
PCI_PROBE_MMCONF;
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
#include <linux/pci.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/dmi.h>
|
||||
#include "pci.h"
|
||||
#include <asm/pci_x86.h>
|
||||
|
||||
/*
|
||||
* Functions for accessing PCI base (first 256 bytes) and extended
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
#include <linux/pci.h>
|
||||
#include <asm/pci-direct.h>
|
||||
#include <asm/io.h>
|
||||
#include "pci.h"
|
||||
#include <asm/pci_x86.h>
|
||||
|
||||
/* Direct PCI access. This is used for PCI accesses in early boot before
|
||||
the PCI subsystem works. */
|
||||
|
|
|
@ -6,8 +6,7 @@
|
|||
#include <linux/dmi.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/init.h>
|
||||
#include "pci.h"
|
||||
|
||||
#include <asm/pci_x86.h>
|
||||
|
||||
static void __devinit pci_fixup_i450nx(struct pci_dev *d)
|
||||
{
|
||||
|
|
|
@ -34,8 +34,8 @@
|
|||
|
||||
#include <asm/pat.h>
|
||||
#include <asm/e820.h>
|
||||
#include <asm/pci_x86.h>
|
||||
|
||||
#include "pci.h"
|
||||
|
||||
static int
|
||||
skip_isa_ioresource_align(struct pci_dev *dev) {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#include <linux/pci.h>
|
||||
#include <linux/init.h>
|
||||
#include "pci.h"
|
||||
#include <asm/pci_x86.h>
|
||||
|
||||
/* arch_initcall has too random ordering, so call the initializers
|
||||
in the right sequence from here. */
|
||||
|
|
|
@ -16,8 +16,7 @@
|
|||
#include <asm/io_apic.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/acpi.h>
|
||||
|
||||
#include "pci.h"
|
||||
#include <asm/pci_x86.h>
|
||||
|
||||
#define PIRQ_SIGNATURE (('$' << 0) + ('P' << 8) + ('I' << 16) + ('R' << 24))
|
||||
#define PIRQ_VERSION 0x0100
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
*/
|
||||
#include <linux/init.h>
|
||||
#include <linux/pci.h>
|
||||
#include "pci.h"
|
||||
#include <asm/pci_x86.h>
|
||||
|
||||
/*
|
||||
* Discover remaining PCI buses in case there are peer host bridges.
|
||||
|
|
|
@ -15,8 +15,7 @@
|
|||
#include <linux/acpi.h>
|
||||
#include <linux/bitmap.h>
|
||||
#include <asm/e820.h>
|
||||
|
||||
#include "pci.h"
|
||||
#include <asm/pci_x86.h>
|
||||
|
||||
/* aperture is up to 256MB but BIOS may reserve less */
|
||||
#define MMCONFIG_APER_MIN (2 * 1024*1024)
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
#include <linux/init.h>
|
||||
#include <linux/acpi.h>
|
||||
#include <asm/e820.h>
|
||||
#include "pci.h"
|
||||
#include <asm/pci_x86.h>
|
||||
|
||||
/* Assume systems with more busses have correct MCFG */
|
||||
#define mmcfg_virt_addr ((void __iomem *) fix_to_virt(FIX_PCIE_MCFG))
|
||||
|
|
|
@ -10,8 +10,7 @@
|
|||
#include <linux/acpi.h>
|
||||
#include <linux/bitmap.h>
|
||||
#include <asm/e820.h>
|
||||
|
||||
#include "pci.h"
|
||||
#include <asm/pci_x86.h>
|
||||
|
||||
/* Static virtual mapping of the MMCONFIG aperture */
|
||||
struct mmcfg_virt {
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include <linux/nodemask.h>
|
||||
#include <mach_apic.h>
|
||||
#include <asm/mpspec.h>
|
||||
#include "pci.h"
|
||||
#include <asm/pci_x86.h>
|
||||
|
||||
#define XQUAD_PORTIO_BASE 0xfe400000
|
||||
#define XQUAD_PORTIO_QUAD 0x40000 /* 256k per quad. */
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
#include <linux/init.h>
|
||||
#include <asm/olpc.h>
|
||||
#include <asm/geode.h>
|
||||
#include "pci.h"
|
||||
#include <asm/pci_x86.h>
|
||||
|
||||
/*
|
||||
* In the tables below, the first two line (8 longwords) are the
|
||||
|
|
|
@ -6,9 +6,8 @@
|
|||
#include <linux/init.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/uaccess.h>
|
||||
#include "pci.h"
|
||||
#include "pci-functions.h"
|
||||
|
||||
#include <asm/pci_x86.h>
|
||||
#include <asm/mach-default/pci-functions.h>
|
||||
|
||||
/* BIOS32 signature: "_32_" */
|
||||
#define BIOS32_SIGNATURE (('_' << 0) + ('3' << 8) + ('2' << 16) + ('_' << 24))
|
||||
|
|
|
@ -9,11 +9,10 @@
|
|||
#include <linux/init.h>
|
||||
|
||||
#include <asm/setup.h>
|
||||
#include <asm/pci_x86.h>
|
||||
#include <asm/visws/cobalt.h>
|
||||
#include <asm/visws/lithium.h>
|
||||
|
||||
#include "pci.h"
|
||||
|
||||
static int pci_visws_enable_irq(struct pci_dev *dev) { return 0; }
|
||||
static void pci_visws_disable_irq(struct pci_dev *dev) { }
|
||||
|
||||
|
|
|
@ -45,7 +45,7 @@
|
|||
|
||||
#include "cpqphp.h"
|
||||
#include "cpqphp_nvram.h"
|
||||
#include "../../../arch/x86/pci/pci.h" /* horrible hack showing how processor dependent we are... */
|
||||
#include <asm/pci_x86.h>
|
||||
|
||||
|
||||
/* Global variables */
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
#include "../pci.h"
|
||||
#include "cpqphp.h"
|
||||
#include "cpqphp_nvram.h"
|
||||
#include "../../../arch/x86/pci/pci.h" /* horrible hack showing how processor dependent we are... */
|
||||
#include <asm/pci_x86.h>
|
||||
|
||||
|
||||
u8 cpqhp_nic_irq;
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
#include <linux/delay.h>
|
||||
#include <linux/wait.h>
|
||||
#include "../pci.h"
|
||||
#include "../../../arch/x86/pci/pci.h" /* for struct irq_routing_table */
|
||||
#include <asm/pci_x86.h> /* for struct irq_routing_table */
|
||||
#include "ibmphp.h"
|
||||
|
||||
#define attn_on(sl) ibmphp_hpc_writeslot (sl, HPC_SLOT_ATTNON)
|
||||
|
|
Загрузка…
Ссылка в новой задаче