Commit d33334d3 authored by Andi Kleen's avatar Andi Kleen Committed by Arnaldo Carvalho de Melo

[PATCH] x86-64 update

Just make x86-64/amd64 compile again.  Only architecture specific
changes.

And a workaround for the Opteron prefetch bug.

Also remove the obsolete LVM1 ioctl emulation code.
parent 700a4acb
This diff is collapsed.
...@@ -855,28 +855,14 @@ asmlinkage long sys32_time(int * tloc) ...@@ -855,28 +855,14 @@ asmlinkage long sys32_time(int * tloc)
return i; return i;
} }
asmlinkage long
sys32_waitpid(compat_pid_t pid, unsigned int *stat_addr, int options)
{
return compat_sys_wait4(pid, stat_addr, options, NULL);
}
extern asmlinkage long extern asmlinkage long
sys_getrusage(int who, struct rusage *ru); compat_sys_wait4(compat_pid_t pid, compat_uint_t * stat_addr, int options,
struct compat_rusage *ru);
asmlinkage long asmlinkage long
sys32_getrusage(int who, struct rusage32 *ru) sys32_waitpid(compat_pid_t pid, unsigned int *stat_addr, int options)
{ {
struct rusage r; return compat_sys_wait4(pid, stat_addr, options, NULL);
int ret;
mm_segment_t old_fs = get_fs();
set_fs (KERNEL_DS);
ret = sys_getrusage(who, &r);
set_fs (old_fs);
if (put_rusage (ru, &r)) return -EFAULT;
return ret;
} }
int sys32_ni_syscall(int call) int sys32_ni_syscall(int call)
......
...@@ -74,7 +74,7 @@ static void register_irq_proc (unsigned int irq); ...@@ -74,7 +74,7 @@ static void register_irq_proc (unsigned int irq);
* Special irq handlers. * Special irq handlers.
*/ */
void no_action(int cpl, void *dev_id, struct pt_regs *regs) { } irqreturn_t no_action(int cpl, void *dev_id, struct pt_regs *regs) { return IRQ_NONE; }
/* /*
* Generic no controller code * Generic no controller code
...@@ -433,7 +433,7 @@ asmlinkage unsigned int do_IRQ(struct pt_regs *regs) ...@@ -433,7 +433,7 @@ asmlinkage unsigned int do_IRQ(struct pt_regs *regs)
*/ */
int request_irq(unsigned int irq, int request_irq(unsigned int irq,
void (*handler)(int, void *, struct pt_regs *), irqreturn_t (*handler)(int, void *, struct pt_regs *),
unsigned long irqflags, unsigned long irqflags,
const char * devname, const char * devname,
void *dev_id) void *dev_id)
......
...@@ -195,7 +195,7 @@ static void set_rtc_mmss(unsigned long nowtime) ...@@ -195,7 +195,7 @@ static void set_rtc_mmss(unsigned long nowtime)
spin_unlock(&rtc_lock); spin_unlock(&rtc_lock);
} }
static void timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) static irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{ {
static unsigned long rtc_update = 0; static unsigned long rtc_update = 0;
...@@ -255,6 +255,8 @@ static void timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) ...@@ -255,6 +255,8 @@ static void timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
} }
write_sequnlock(&xtime_lock); write_sequnlock(&xtime_lock);
return IRQ_HANDLED;
} }
unsigned long get_cmos_time(void) unsigned long get_cmos_time(void)
......
...@@ -51,7 +51,7 @@ static char *virtual_dma_addr; ...@@ -51,7 +51,7 @@ static char *virtual_dma_addr;
static int virtual_dma_mode; static int virtual_dma_mode;
static int doing_pdma; static int doing_pdma;
static void floppy_hardint(int irq, void *dev_id, struct pt_regs * regs) static irqreturn_t floppy_hardint(int irq, void *dev_id, struct pt_regs * regs)
{ {
register unsigned char st; register unsigned char st;
...@@ -109,12 +109,14 @@ static void floppy_hardint(int irq, void *dev_id, struct pt_regs * regs) ...@@ -109,12 +109,14 @@ static void floppy_hardint(int irq, void *dev_id, struct pt_regs * regs)
#endif #endif
doing_pdma = 0; doing_pdma = 0;
floppy_interrupt(irq, dev_id, regs); floppy_interrupt(irq, dev_id, regs);
return; return IRQ_HANDLED;
} }
#ifdef TRACE_FLPY_INT #ifdef TRACE_FLPY_INT
if(!virtual_dma_count) if(!virtual_dma_count)
dma_wait++; dma_wait++;
#endif #endif
return IRQ_HANDLED;
} }
static void fd_disable_dma(void) static void fd_disable_dma(void)
......
...@@ -198,6 +198,8 @@ extern void mp_parse_prt (void); ...@@ -198,6 +198,8 @@ extern void mp_parse_prt (void);
#endif /*CONFIG_X86_IO_APIC*/ #endif /*CONFIG_X86_IO_APIC*/
#endif #endif
extern void mp_config_ioapic_for_sci(int irq);
extern int using_apic_timer; extern int using_apic_timer;
#endif #endif
......
...@@ -228,6 +228,9 @@ extern inline unsigned int cpuid_edx(unsigned int op) ...@@ -228,6 +228,9 @@ extern inline unsigned int cpuid_edx(unsigned int op)
/* VIA Cyrix defined MSRs*/ /* VIA Cyrix defined MSRs*/
#define MSR_VIA_FCR 0x1107 #define MSR_VIA_FCR 0x1107
#define MSR_VIA_LONGHAUL 0x110a
#define MSR_VIA_RNG 0x110b
#define MSR_VIA_BCR2 0x1147
/* Intel defined MSRs. */ /* Intel defined MSRs. */
#define MSR_IA32_P5_MC_ADDR 0 #define MSR_IA32_P5_MC_ADDR 0
......
...@@ -304,11 +304,16 @@ extern inline void sync_core(void) ...@@ -304,11 +304,16 @@ extern inline void sync_core(void)
#define cpu_has_fpu 1 #define cpu_has_fpu 1
#if 0
/* disabled for now to work around opteron errata #91. Also gcc 3.2
doesn't like this in some cases. */
#define ARCH_HAS_PREFETCH #define ARCH_HAS_PREFETCH
#define prefetch(x) __builtin_prefetch((x),0,1)
#endif
#define ARCH_HAS_PREFETCHW #define ARCH_HAS_PREFETCHW
#define ARCH_HAS_SPINLOCK_PREFETCH #define ARCH_HAS_SPINLOCK_PREFETCH
#define prefetch(x) __builtin_prefetch((x),0,1)
#define prefetchw(x) __builtin_prefetch((x),1,1) #define prefetchw(x) __builtin_prefetch((x),1,1)
#define spin_lock_prefetch(x) prefetchw(x) #define spin_lock_prefetch(x) prefetchw(x)
#define cpu_relax() rep_nop() #define cpu_relax() rep_nop()
......
#ifndef _ASM_X86_64_VSYSCALL_H_ #ifndef _ASM_X86_64_VSYSCALL_H_
#define _ASM_X86_64_VSYSCALL_H_ #define _ASM_X86_64_VSYSCALL_H_
#include <linux/time.h>
#include <linux/seqlock.h> #include <linux/seqlock.h>
enum vsyscall_num { enum vsyscall_num {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment