summaryrefslogtreecommitdiffstats
path: root/kernel/arch/tile
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/arch/tile')
-rw-r--r--kernel/arch/tile/include/asm/elf.h1
-rw-r--r--kernel/arch/tile/include/uapi/asm/auxvec.h2
-rw-r--r--kernel/arch/tile/kernel/ptrace.c2
-rw-r--r--kernel/arch/tile/kernel/time.c4
4 files changed, 6 insertions, 3 deletions
diff --git a/kernel/arch/tile/include/asm/elf.h b/kernel/arch/tile/include/asm/elf.h
index c505d77e4..e9d54a067 100644
--- a/kernel/arch/tile/include/asm/elf.h
+++ b/kernel/arch/tile/include/asm/elf.h
@@ -129,6 +129,7 @@ extern int dump_task_regs(struct task_struct *, elf_gregset_t *);
struct linux_binprm;
extern int arch_setup_additional_pages(struct linux_binprm *bprm,
int executable_stack);
+/* update AT_VECTOR_SIZE_ARCH if the number of NEW_AUX_ENT entries changes */
#define ARCH_DLINFO \
do { \
NEW_AUX_ENT(AT_SYSINFO_EHDR, VDSO_BASE); \
diff --git a/kernel/arch/tile/include/uapi/asm/auxvec.h b/kernel/arch/tile/include/uapi/asm/auxvec.h
index c93e92709..f497123ed 100644
--- a/kernel/arch/tile/include/uapi/asm/auxvec.h
+++ b/kernel/arch/tile/include/uapi/asm/auxvec.h
@@ -18,4 +18,6 @@
/* The vDSO location. */
#define AT_SYSINFO_EHDR 33
+#define AT_VECTOR_SIZE_ARCH 1 /* entries in ARCH_DLINFO */
+
#endif /* _ASM_TILE_AUXVEC_H */
diff --git a/kernel/arch/tile/kernel/ptrace.c b/kernel/arch/tile/kernel/ptrace.c
index bdc126faf..6239aa155 100644
--- a/kernel/arch/tile/kernel/ptrace.c
+++ b/kernel/arch/tile/kernel/ptrace.c
@@ -111,7 +111,7 @@ static int tile_gpr_set(struct task_struct *target,
const void *kbuf, const void __user *ubuf)
{
int ret;
- struct pt_regs regs;
+ struct pt_regs regs = *task_pt_regs(target);
ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf, &regs, 0,
sizeof(regs));
diff --git a/kernel/arch/tile/kernel/time.c b/kernel/arch/tile/kernel/time.c
index 178989e6d..ea960d660 100644
--- a/kernel/arch/tile/kernel/time.c
+++ b/kernel/arch/tile/kernel/time.c
@@ -218,8 +218,8 @@ void do_timer_interrupt(struct pt_regs *regs, int fault_num)
*/
unsigned long long sched_clock(void)
{
- return clocksource_cyc2ns(get_cycles(),
- sched_clock_mult, SCHED_CLOCK_SHIFT);
+ return mult_frac(get_cycles(),
+ sched_clock_mult, 1ULL << SCHED_CLOCK_SHIFT);
}
int setup_profiling_timer(unsigned int multiplier)