diff options
author | Olof Johansson <olof@lixom.net> | 2013-06-12 23:26:33 (GMT) |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2013-06-12 23:27:21 (GMT) |
commit | 1e76c7cb3c1d281be2e452e780e53859abc7c145 (patch) | |
tree | 5199604868c08ab76ea17c860f1f2ab553670360 /arch/mips/kernel | |
parent | 18c0e596791a1014781202a3af649f42a6d8495d (diff) | |
parent | a38089057fa450944f2e2d07885d76fd727c8d16 (diff) | |
download | linux-1e76c7cb3c1d281be2e452e780e53859abc7c145.tar.xz |
Merge tag 'exynos-dt-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/dt
From Kukjin Kim:
Update exynos DT for
- usb3phy and dwc3 for exynos5250
- keypad for exynos4412
- TMU clock for exynos4210
- MFC clock for exynos4
- DP controller for exynos5250
- G2D clock for exynos4
- some exynos boards
* tag 'exynos-dt-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung: (456 commits)
ARM: dts: add ohci and ehci controller nodes for EXYNOS5440
ARM: dts: Update G2D documentation for clock entries
ARM: dts: Add clock entries to G2D node for exynos4x12
ARM: dts: Add clock entries to G2D node for exynos4210
ARM: dts: Remove duplicate and add missing G2D nodes
clk: exynos4: Add additional G2D clocks
ARM: dts: Document DP clock in samsung,exynos5-dp binding
ARM: dts: add pin state information for DP HPD support to Exynos5250
ARM: dts: add dts node for the ahci sata exynos5440
ARM: dts: add vmmc regulator support for ODROID-X
ARM: dts: add max77686 node entry for ODROID-X
ARM: dts: Enable RTC by default on EXYNOS5440
ARM: dts: Add display timing node to exynos5250-arndale.dts
ARM: dts: Add clock provider information for DP controller in Exynos5250 SoC
ARM: dts: Add DT node for DP controller for Arndale Board
ARM: dts: Remove combiner IRQ node from exynos4x12.dtsi
ARM: dts: add max8997 device node for exynos4210-origen board
ARM: dts: Enable TMU on Origen4210 board
ARM: dts: Add TMU clock entries to exynos4210.dtsi
ARM: dts: Update MFC documentation for clock entries
...
Signed-off-by: Olof Johansson <olof@lixom.net>
Diffstat (limited to 'arch/mips/kernel')
-rw-r--r-- | arch/mips/kernel/binfmt_elfn32.c | 11 | ||||
-rw-r--r-- | arch/mips/kernel/binfmt_elfo32.c | 11 | ||||
-rw-r--r-- | arch/mips/kernel/rtlx.c | 1 | ||||
-rw-r--r-- | arch/mips/kernel/traps.c | 28 |
4 files changed, 38 insertions, 13 deletions
diff --git a/arch/mips/kernel/binfmt_elfn32.c b/arch/mips/kernel/binfmt_elfn32.c index e06f777..1188e00 100644 --- a/arch/mips/kernel/binfmt_elfn32.c +++ b/arch/mips/kernel/binfmt_elfn32.c @@ -119,4 +119,15 @@ MODULE_AUTHOR("Ralf Baechle (ralf@linux-mips.org)"); #undef TASK_SIZE #define TASK_SIZE TASK_SIZE32 +#undef cputime_to_timeval +#define cputime_to_timeval cputime_to_compat_timeval +static __inline__ void +cputime_to_compat_timeval(const cputime_t cputime, struct compat_timeval *value) +{ + unsigned long jiffies = cputime_to_jiffies(cputime); + + value->tv_usec = (jiffies % HZ) * (1000000L / HZ); + value->tv_sec = jiffies / HZ; +} + #include "../../../fs/binfmt_elf.c" diff --git a/arch/mips/kernel/binfmt_elfo32.c b/arch/mips/kernel/binfmt_elfo32.c index 97c5a16..202e581 100644 --- a/arch/mips/kernel/binfmt_elfo32.c +++ b/arch/mips/kernel/binfmt_elfo32.c @@ -162,4 +162,15 @@ MODULE_AUTHOR("Ralf Baechle (ralf@linux-mips.org)"); #undef TASK_SIZE #define TASK_SIZE TASK_SIZE32 +#undef cputime_to_timeval +#define cputime_to_timeval cputime_to_compat_timeval +static __inline__ void +cputime_to_compat_timeval(const cputime_t cputime, struct compat_timeval *value) +{ + unsigned long jiffies = cputime_to_jiffies(cputime); + + value->tv_usec = (jiffies % HZ) * (1000000L / HZ); + value->tv_sec = jiffies / HZ; +} + #include "../../../fs/binfmt_elf.c" diff --git a/arch/mips/kernel/rtlx.c b/arch/mips/kernel/rtlx.c index 93c070b..6fa198d 100644 --- a/arch/mips/kernel/rtlx.c +++ b/arch/mips/kernel/rtlx.c @@ -40,6 +40,7 @@ #include <asm/processor.h> #include <asm/vpe.h> #include <asm/rtlx.h> +#include <asm/setup.h> static struct rtlx_info *rtlx; static int major; diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c index e3be670..a75ae40 100644 --- a/arch/mips/kernel/traps.c +++ b/arch/mips/kernel/traps.c @@ -897,22 +897,24 @@ out_sigsegv: asmlinkage void do_tr(struct pt_regs *regs) { - unsigned int opcode, tcode = 0; + u32 opcode, tcode = 0; u16 instr[2]; - unsigned long epc = exception_epc(regs); + unsigned long epc = msk_isa16_mode(exception_epc(regs)); - if ((__get_user(instr[0], (u16 __user *)msk_isa16_mode(epc))) || - (__get_user(instr[1], (u16 __user *)msk_isa16_mode(epc + 2)))) + if (get_isa16_mode(regs->cp0_epc)) { + if (__get_user(instr[0], (u16 __user *)(epc + 0)) || + __get_user(instr[1], (u16 __user *)(epc + 2))) goto out_sigsegv; - opcode = (instr[0] << 16) | instr[1]; - - /* Immediate versions don't provide a code. */ - if (!(opcode & OPCODE)) { - if (get_isa16_mode(regs->cp0_epc)) - /* microMIPS */ - tcode = (opcode >> 12) & 0x1f; - else - tcode = ((opcode >> 6) & ((1 << 10) - 1)); + opcode = (instr[0] << 16) | instr[1]; + /* Immediate versions don't provide a code. */ + if (!(opcode & OPCODE)) + tcode = (opcode >> 12) & ((1 << 4) - 1); + } else { + if (__get_user(opcode, (u32 __user *)epc)) + goto out_sigsegv; + /* Immediate versions don't provide a code. */ + if (!(opcode & OPCODE)) + tcode = (opcode >> 6) & ((1 << 10) - 1); } do_trap_or_bp(regs, tcode, "Trap"); |