Commit f1877fb2 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus

* 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
  [MIPS] Fix iounmap argument to const volatile.
  [MIPS] Reserve syscall numbers for kexec_load.
  [MIPS] Update tb0287_defconfig
  [MIPS] Update pnx8550-v2pci_defconfig
  [MIPS] Update pnx8500-jbs_defconfig
  [MIPS] More vr41xx pt_regs fixups
  [MIPS] save_context_stack fix
  [MIPS] Use compat_sys_mount.
  [MIPS] Fix O32 personality(2) call with 0xffffffff argument.
  [MIPS] A few more pt_regs fixups.
  [MIPS] Malta: Fix uninitialized regs pointer.
  [MIPS] Delete unneeded pt_regs forward declaration.
  [MIPS] Use kallsyms_lookup_size_offset() instead of kallsyms_lookup()
parents b2ef7858 d89e36d8
...@@ -849,7 +849,7 @@ au1xxx_dbdma_chan_free(u32 chanid) ...@@ -849,7 +849,7 @@ au1xxx_dbdma_chan_free(u32 chanid)
EXPORT_SYMBOL(au1xxx_dbdma_chan_free); EXPORT_SYMBOL(au1xxx_dbdma_chan_free);
static irqreturn_t static irqreturn_t
dbdma_interrupt(int irq, void *dev_id, struct pt_regs *regs) dbdma_interrupt(int irq, void *dev_id)
{ {
u32 intstat; u32 intstat;
u32 chan_index; u32 chan_index;
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -1055,7 +1055,9 @@ asmlinkage long sys32_newuname(struct new_utsname __user * name) ...@@ -1055,7 +1055,9 @@ asmlinkage long sys32_newuname(struct new_utsname __user * name)
asmlinkage int sys32_personality(unsigned long personality) asmlinkage int sys32_personality(unsigned long personality)
{ {
int ret; int ret;
if (current->personality == PER_LINUX32 && personality == PER_LINUX) personality &= 0xffffffff;
if (personality(current->personality) == PER_LINUX32 &&
personality == PER_LINUX)
personality = PER_LINUX32; personality = PER_LINUX32;
ret = sys_personality(personality); ret = sys_personality(personality);
if (ret == PER_LINUX32) if (ret == PER_LINUX32)
......
...@@ -358,10 +358,8 @@ static int __init frame_info_init(void) ...@@ -358,10 +358,8 @@ static int __init frame_info_init(void)
unsigned long size = 0; unsigned long size = 0;
#ifdef CONFIG_KALLSYMS #ifdef CONFIG_KALLSYMS
unsigned long ofs; unsigned long ofs;
char *modname;
char namebuf[KSYM_NAME_LEN + 1];
kallsyms_lookup((unsigned long)schedule, &size, &ofs, &modname, namebuf); kallsyms_lookup_size_offset((unsigned long)schedule, &size, &ofs);
#endif #endif
schedule_mfi.func = schedule; schedule_mfi.func = schedule;
schedule_mfi.func_size = size; schedule_mfi.func_size = size;
...@@ -403,8 +401,6 @@ unsigned long unwind_stack(struct task_struct *task, unsigned long *sp, ...@@ -403,8 +401,6 @@ unsigned long unwind_stack(struct task_struct *task, unsigned long *sp,
{ {
unsigned long stack_page; unsigned long stack_page;
struct mips_frame_info info; struct mips_frame_info info;
char *modname;
char namebuf[KSYM_NAME_LEN + 1];
unsigned long size, ofs; unsigned long size, ofs;
int leaf; int leaf;
extern void ret_from_irq(void); extern void ret_from_irq(void);
...@@ -433,7 +429,7 @@ unsigned long unwind_stack(struct task_struct *task, unsigned long *sp, ...@@ -433,7 +429,7 @@ unsigned long unwind_stack(struct task_struct *task, unsigned long *sp,
} }
return 0; return 0;
} }
if (!kallsyms_lookup(pc, &size, &ofs, &modname, namebuf)) if (!kallsyms_lookup_size_offset(pc, &size, &ofs))
return 0; return 0;
/* /*
* Return ra if an exception occured at the first instruction * Return ra if an exception occured at the first instruction
......
...@@ -652,7 +652,8 @@ einval: li v0, -EINVAL ...@@ -652,7 +652,8 @@ einval: li v0, -EINVAL
sys sys_vmsplice 4 sys sys_vmsplice 4
sys sys_move_pages 6 sys sys_move_pages 6
sys sys_set_robust_list 2 sys sys_set_robust_list 2
sys sys_get_robust_list 3 sys sys_get_robust_list 3 /* 4310 */
sys sys_ni_syscall 0
.endm .endm
/* We pre-compute the number of _instruction_ bytes needed to /* We pre-compute the number of _instruction_ bytes needed to
......
...@@ -468,3 +468,4 @@ sys_call_table: ...@@ -468,3 +468,4 @@ sys_call_table:
PTR sys_move_pages PTR sys_move_pages
PTR sys_set_robust_list PTR sys_set_robust_list
PTR sys_get_robust_list PTR sys_get_robust_list
PTR sys_ni_syscall /* 5270 */
...@@ -280,7 +280,7 @@ EXPORT(sysn32_call_table) ...@@ -280,7 +280,7 @@ EXPORT(sysn32_call_table)
PTR sys_sync PTR sys_sync
PTR sys_acct PTR sys_acct
PTR sys32_settimeofday PTR sys32_settimeofday
PTR sys_mount /* 6160 */ PTR compat_sys_mount /* 6160 */
PTR sys_umount PTR sys_umount
PTR sys_swapon PTR sys_swapon
PTR sys_swapoff PTR sys_swapoff
...@@ -394,3 +394,4 @@ EXPORT(sysn32_call_table) ...@@ -394,3 +394,4 @@ EXPORT(sysn32_call_table)
PTR sys_move_pages PTR sys_move_pages
PTR compat_sys_set_robust_list PTR compat_sys_set_robust_list
PTR compat_sys_get_robust_list PTR compat_sys_get_robust_list
PTR sys_ni_syscall
...@@ -226,7 +226,7 @@ sys_call_table: ...@@ -226,7 +226,7 @@ sys_call_table:
PTR sys_ni_syscall /* was sys_stat */ PTR sys_ni_syscall /* was sys_stat */
PTR sys_lseek PTR sys_lseek
PTR sys_getpid /* 4020 */ PTR sys_getpid /* 4020 */
PTR sys_mount PTR compat_sys_mount
PTR sys_oldumount PTR sys_oldumount
PTR sys_setuid PTR sys_setuid
PTR sys_getuid PTR sys_getuid
...@@ -516,4 +516,5 @@ sys_call_table: ...@@ -516,4 +516,5 @@ sys_call_table:
PTR compat_sys_move_pages PTR compat_sys_move_pages
PTR compat_sys_set_robust_list PTR compat_sys_set_robust_list
PTR compat_sys_get_robust_list /* 4310 */ PTR compat_sys_get_robust_list /* 4310 */
PTR sys_ni_syscall
.size sys_call_table,.-sys_call_table .size sys_call_table,.-sys_call_table
...@@ -57,7 +57,7 @@ static void save_context_stack(struct stack_trace *trace, ...@@ -57,7 +57,7 @@ static void save_context_stack(struct stack_trace *trace,
pc = unwind_stack(task, &sp, pc, &ra); pc = unwind_stack(task, &sp, pc, &ra);
} while (pc); } while (pc);
#else #else
save_raw_context_stack(sp); save_raw_context_stack(trace, sp);
#endif #endif
} }
......
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
#include <asm/i8259.h> #include <asm/i8259.h>
#include <asm/irq_cpu.h> #include <asm/irq_cpu.h>
#include <asm/io.h> #include <asm/io.h>
#include <asm/irq_regs.h>
#include <asm/mips-boards/malta.h> #include <asm/mips-boards/malta.h>
#include <asm/mips-boards/maltaint.h> #include <asm/mips-boards/maltaint.h>
#include <asm/mips-boards/piix4.h> #include <asm/mips-boards/piix4.h>
...@@ -131,7 +132,7 @@ static void corehi_irqdispatch(void) ...@@ -131,7 +132,7 @@ static void corehi_irqdispatch(void)
unsigned int intedge, intsteer, pcicmd, pcibadaddr; unsigned int intedge, intsteer, pcicmd, pcibadaddr;
unsigned int pcimstat, intisr, inten, intpol; unsigned int pcimstat, intisr, inten, intpol;
unsigned int intrcause,datalo,datahi; unsigned int intrcause,datalo,datahi;
struct pt_regs *regs; struct pt_regs *regs = get_irq_regs();
printk("CoreHI interrupt, shouldn't happen, so we die here!!!\n"); printk("CoreHI interrupt, shouldn't happen, so we die here!!!\n");
printk("epc : %08lx\nStatus: %08lx\n" printk("epc : %08lx\nStatus: %08lx\n"
......
...@@ -176,7 +176,7 @@ void __iomem * __ioremap(phys_t phys_addr, phys_t size, unsigned long flags) ...@@ -176,7 +176,7 @@ void __iomem * __ioremap(phys_t phys_addr, phys_t size, unsigned long flags)
#define IS_KSEG1(addr) (((unsigned long)(addr) & ~0x1fffffffUL) == CKSEG1) #define IS_KSEG1(addr) (((unsigned long)(addr) & ~0x1fffffffUL) == CKSEG1)
void __iounmap(volatile void __iomem *addr) void __iounmap(const volatile void __iomem *addr)
{ {
struct vm_struct *p; struct vm_struct *p;
......
...@@ -10,8 +10,6 @@ ...@@ -10,8 +10,6 @@
#ifndef OP_IMPL_H #ifndef OP_IMPL_H
#define OP_IMPL_H 1 #define OP_IMPL_H 1
struct pt_regs;
extern int null_perf_irq(void); extern int null_perf_irq(void);
extern int (*perf_irq)(void); extern int (*perf_irq)(void);
......
...@@ -80,8 +80,7 @@ static void rm9000_cpu_stop(void *args) ...@@ -80,8 +80,7 @@ static void rm9000_cpu_stop(void *args)
write_c0_perfcontrol(0); write_c0_perfcontrol(0);
} }
static irqreturn_t rm9000_perfcount_handler(int irq, void * dev_id, static irqreturn_t rm9000_perfcount_handler(int irq, void * dev_id)
struct pt_regs *regs)
{ {
unsigned int control = read_c0_perfcontrol(); unsigned int control = read_c0_perfcontrol();
uint32_t counter1, counter2; uint32_t counter1, counter2;
......
...@@ -135,7 +135,7 @@ static inline void ip32_power_button(void) ...@@ -135,7 +135,7 @@ static inline void ip32_power_button(void)
add_timer(&power_timer); add_timer(&power_timer);
} }
static irqreturn_t ip32_rtc_int(int irq, void *dev_id, struct pt_regs *regs) static irqreturn_t ip32_rtc_int(int irq, void *dev_id)
{ {
volatile unsigned char reg_c; volatile unsigned char reg_c;
......
...@@ -88,7 +88,7 @@ static void arm_tb(void) ...@@ -88,7 +88,7 @@ static void arm_tb(void)
sbp.tb_armed = 1; sbp.tb_armed = 1;
} }
static irqreturn_t sbprof_tb_intr(int irq, void *dev_id, struct pt_regs *regs) static irqreturn_t sbprof_tb_intr(int irq, void *dev_id)
{ {
int i; int i;
DBG(printk(DEVNAME ": tb_intr\n")); DBG(printk(DEVNAME ": tb_intr\n"));
...@@ -138,7 +138,7 @@ static irqreturn_t sbprof_tb_intr(int irq, void *dev_id, struct pt_regs *regs) ...@@ -138,7 +138,7 @@ static irqreturn_t sbprof_tb_intr(int irq, void *dev_id, struct pt_regs *regs)
return IRQ_HANDLED; return IRQ_HANDLED;
} }
static irqreturn_t sbprof_pc_intr(int irq, void *dev_id, struct pt_regs *regs) static irqreturn_t sbprof_pc_intr(int irq, void *dev_id)
{ {
printk(DEVNAME ": unexpected pc_intr"); printk(DEVNAME ": unexpected pc_intr");
return IRQ_NONE; return IRQ_NONE;
......
...@@ -171,7 +171,7 @@ static void create_proc_decoder(struct bw_stats_struct *stats) ...@@ -171,7 +171,7 @@ static void create_proc_decoder(struct bw_stats_struct *stats)
* notes: possible re-entry due to multiple sources * notes: possible re-entry due to multiple sources
* should check/indicate saturation * should check/indicate saturation
*/ */
static irqreturn_t sibyte_bw_int(int irq, void *data, struct pt_regs *regs) static irqreturn_t sibyte_bw_int(int irq, void *data)
{ {
struct bw_stats_struct *stats = data; struct bw_stats_struct *stats = data;
unsigned long cntr; unsigned long cntr;
......
...@@ -172,7 +172,7 @@ extern unsigned long isa_slot_offset; ...@@ -172,7 +172,7 @@ extern unsigned long isa_slot_offset;
#define page_to_phys(page) ((dma_addr_t)page_to_pfn(page) << PAGE_SHIFT) #define page_to_phys(page) ((dma_addr_t)page_to_pfn(page) << PAGE_SHIFT)
extern void __iomem * __ioremap(phys_t offset, phys_t size, unsigned long flags); extern void __iomem * __ioremap(phys_t offset, phys_t size, unsigned long flags);
extern void __iounmap(volatile void __iomem *addr); extern void __iounmap(const volatile void __iomem *addr);
static inline void __iomem * __ioremap_mode(phys_t offset, unsigned long size, static inline void __iomem * __ioremap_mode(phys_t offset, unsigned long size,
unsigned long flags) unsigned long flags)
...@@ -279,7 +279,7 @@ static inline void __iomem * __ioremap_mode(phys_t offset, unsigned long size, ...@@ -279,7 +279,7 @@ static inline void __iomem * __ioremap_mode(phys_t offset, unsigned long size,
#define ioremap_uncached_accelerated(offset, size) \ #define ioremap_uncached_accelerated(offset, size) \
__ioremap_mode((offset), (size), _CACHE_UNCACHED_ACCELERATED) __ioremap_mode((offset), (size), _CACHE_UNCACHED_ACCELERATED)
static inline void iounmap(volatile void __iomem *addr) static inline void iounmap(const volatile void __iomem *addr)
{ {
#define __IS_KSEG1(addr) (((unsigned long)(addr) & ~0x1fffffffUL) == CKSEG1) #define __IS_KSEG1(addr) (((unsigned long)(addr) & ~0x1fffffffUL) == CKSEG1)
......
...@@ -331,16 +331,17 @@ ...@@ -331,16 +331,17 @@
#define __NR_move_pages (__NR_Linux + 308) #define __NR_move_pages (__NR_Linux + 308)
#define __NR_set_robust_list (__NR_Linux + 309) #define __NR_set_robust_list (__NR_Linux + 309)
#define __NR_get_robust_list (__NR_Linux + 310) #define __NR_get_robust_list (__NR_Linux + 310)
#define __NR_kexec_load (__NR_Linux + 311)
/* /*
* Offset of the last Linux o32 flavoured syscall * Offset of the last Linux o32 flavoured syscall
*/ */
#define __NR_Linux_syscalls 310 #define __NR_Linux_syscalls 311
#endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */ #endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
#define __NR_O32_Linux 4000 #define __NR_O32_Linux 4000
#define __NR_O32_Linux_syscalls 310 #define __NR_O32_Linux_syscalls 311
#if _MIPS_SIM == _MIPS_SIM_ABI64 #if _MIPS_SIM == _MIPS_SIM_ABI64
...@@ -618,16 +619,17 @@ ...@@ -618,16 +619,17 @@
#define __NR_move_pages (__NR_Linux + 267) #define __NR_move_pages (__NR_Linux + 267)
#define __NR_set_robust_list (__NR_Linux + 268) #define __NR_set_robust_list (__NR_Linux + 268)
#define __NR_get_robust_list (__NR_Linux + 269) #define __NR_get_robust_list (__NR_Linux + 269)
#define __NR_kexec_load (__NR_Linux + 270)
/* /*
* Offset of the last Linux 64-bit flavoured syscall * Offset of the last Linux 64-bit flavoured syscall
*/ */
#define __NR_Linux_syscalls 269 #define __NR_Linux_syscalls 270
#endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */ #endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */
#define __NR_64_Linux 5000 #define __NR_64_Linux 5000
#define __NR_64_Linux_syscalls 269 #define __NR_64_Linux_syscalls 270
#if _MIPS_SIM == _MIPS_SIM_NABI32 #if _MIPS_SIM == _MIPS_SIM_NABI32
...@@ -909,16 +911,17 @@ ...@@ -909,16 +911,17 @@
#define __NR_move_pages (__NR_Linux + 271) #define __NR_move_pages (__NR_Linux + 271)
#define __NR_set_robust_list (__NR_Linux + 272) #define __NR_set_robust_list (__NR_Linux + 272)
#define __NR_get_robust_list (__NR_Linux + 273) #define __NR_get_robust_list (__NR_Linux + 273)
#define __NR_kexec_load (__NR_Linux + 274)
/* /*
* Offset of the last N32 flavoured syscall * Offset of the last N32 flavoured syscall
*/ */
#define __NR_Linux_syscalls 273 #define __NR_Linux_syscalls 274
#endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */ #endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */
#define __NR_N32_Linux 6000 #define __NR_N32_Linux 6000
#define __NR_N32_Linux_syscalls 273 #define __NR_N32_Linux_syscalls 274
#ifdef __KERNEL__ #ifdef __KERNEL__
......
...@@ -75,7 +75,7 @@ extern void vr41xx_mask_clock(vr41xx_clock_t clock); ...@@ -75,7 +75,7 @@ extern void vr41xx_mask_clock(vr41xx_clock_t clock);
* Interrupt Control Unit * Interrupt Control Unit
*/ */
extern int vr41xx_set_intassign(unsigned int irq, unsigned char intassign); extern int vr41xx_set_intassign(unsigned int irq, unsigned char intassign);
extern int cascade_irq(unsigned int irq, int (*get_irq)(unsigned int, struct pt_regs *)); extern int cascade_irq(unsigned int irq, int (*get_irq)(unsigned int));
#define PIUINT_COMMAND 0x0040 #define PIUINT_COMMAND 0x0040
#define PIUINT_DATA 0x0020 #define PIUINT_DATA 0x0020
......
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