diff options
Diffstat (limited to 'arch/arm/kernel')
| -rw-r--r-- | arch/arm/kernel/asm-offsets.c | 4 | ||||
| -rw-r--r-- | arch/arm/kernel/compat.c | 2 | ||||
| -rw-r--r-- | arch/arm/kernel/compat.h | 13 | ||||
| -rw-r--r-- | arch/arm/kernel/process.c | 3 | ||||
| -rw-r--r-- | arch/arm/kernel/ptrace.c | 14 | ||||
| -rw-r--r-- | arch/arm/kernel/setup.c | 5 |
6 files changed, 26 insertions, 15 deletions
diff --git a/arch/arm/kernel/asm-offsets.c b/arch/arm/kernel/asm-offsets.c index 0abbce8c70bc..b324dcac1c56 100644 --- a/arch/arm/kernel/asm-offsets.c +++ b/arch/arm/kernel/asm-offsets.c | |||
| @@ -57,7 +57,9 @@ int main(void) | |||
| 57 | DEFINE(TI_TP_VALUE, offsetof(struct thread_info, tp_value)); | 57 | DEFINE(TI_TP_VALUE, offsetof(struct thread_info, tp_value)); |
| 58 | DEFINE(TI_FPSTATE, offsetof(struct thread_info, fpstate)); | 58 | DEFINE(TI_FPSTATE, offsetof(struct thread_info, fpstate)); |
| 59 | DEFINE(TI_VFPSTATE, offsetof(struct thread_info, vfpstate)); | 59 | DEFINE(TI_VFPSTATE, offsetof(struct thread_info, vfpstate)); |
| 60 | DEFINE(TI_IWMMXT_STATE, (offsetof(struct thread_info, fpstate)+4)&~7); | 60 | #ifdef CONFIG_IWMMXT |
| 61 | DEFINE(TI_IWMMXT_STATE, offsetof(struct thread_info, fpstate.iwmmxt)); | ||
| 62 | #endif | ||
| 61 | BLANK(); | 63 | BLANK(); |
| 62 | DEFINE(S_R0, offsetof(struct pt_regs, ARM_r0)); | 64 | DEFINE(S_R0, offsetof(struct pt_regs, ARM_r0)); |
| 63 | DEFINE(S_R1, offsetof(struct pt_regs, ARM_r1)); | 65 | DEFINE(S_R1, offsetof(struct pt_regs, ARM_r1)); |
diff --git a/arch/arm/kernel/compat.c b/arch/arm/kernel/compat.c index 7195add42e74..60cfa7f3226c 100644 --- a/arch/arm/kernel/compat.c +++ b/arch/arm/kernel/compat.c | |||
| @@ -27,6 +27,8 @@ | |||
| 27 | 27 | ||
| 28 | #include <asm/mach/arch.h> | 28 | #include <asm/mach/arch.h> |
| 29 | 29 | ||
| 30 | #include "compat.h" | ||
| 31 | |||
| 30 | /* | 32 | /* |
| 31 | * Usage: | 33 | * Usage: |
| 32 | * - do not go blindly adding fields, add them at the end | 34 | * - do not go blindly adding fields, add them at the end |
diff --git a/arch/arm/kernel/compat.h b/arch/arm/kernel/compat.h new file mode 100644 index 000000000000..27e61a68bd1c --- /dev/null +++ b/arch/arm/kernel/compat.h | |||
| @@ -0,0 +1,13 @@ | |||
| 1 | /* | ||
| 2 | * linux/arch/arm/kernel/compat.h | ||
| 3 | * | ||
| 4 | * Copyright (C) 2001 Russell King | ||
| 5 | * | ||
| 6 | * This program is free software; you can redistribute it and/or modify | ||
| 7 | * it under the terms of the GNU General Public License version 2 as | ||
| 8 | * published by the Free Software Foundation. | ||
| 9 | */ | ||
| 10 | |||
| 11 | extern void convert_to_tag_list(struct tag *tags); | ||
| 12 | |||
| 13 | extern void squash_mem_tags(struct tag *tag); | ||
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c index 4b4e4cf79c80..489c069e5c3e 100644 --- a/arch/arm/kernel/process.c +++ b/arch/arm/kernel/process.c | |||
| @@ -27,6 +27,7 @@ | |||
| 27 | #include <linux/kallsyms.h> | 27 | #include <linux/kallsyms.h> |
| 28 | #include <linux/init.h> | 28 | #include <linux/init.h> |
| 29 | #include <linux/cpu.h> | 29 | #include <linux/cpu.h> |
| 30 | #include <linux/elfcore.h> | ||
| 30 | 31 | ||
| 31 | #include <asm/leds.h> | 32 | #include <asm/leds.h> |
| 32 | #include <asm/processor.h> | 33 | #include <asm/processor.h> |
| @@ -83,7 +84,7 @@ EXPORT_SYMBOL(pm_power_off); | |||
| 83 | * This is our default idle handler. We need to disable | 84 | * This is our default idle handler. We need to disable |
| 84 | * interrupts here to ensure we don't miss a wakeup call. | 85 | * interrupts here to ensure we don't miss a wakeup call. |
| 85 | */ | 86 | */ |
| 86 | void default_idle(void) | 87 | static void default_idle(void) |
| 87 | { | 88 | { |
| 88 | if (hlt_counter) | 89 | if (hlt_counter) |
| 89 | cpu_relax(); | 90 | cpu_relax(); |
diff --git a/arch/arm/kernel/ptrace.c b/arch/arm/kernel/ptrace.c index 7b6256bb590e..a1d1b2906e8d 100644 --- a/arch/arm/kernel/ptrace.c +++ b/arch/arm/kernel/ptrace.c | |||
| @@ -610,15 +610,12 @@ static int ptrace_setfpregs(struct task_struct *tsk, void __user *ufp) | |||
| 610 | static int ptrace_getwmmxregs(struct task_struct *tsk, void __user *ufp) | 610 | static int ptrace_getwmmxregs(struct task_struct *tsk, void __user *ufp) |
| 611 | { | 611 | { |
| 612 | struct thread_info *thread = task_thread_info(tsk); | 612 | struct thread_info *thread = task_thread_info(tsk); |
| 613 | void *ptr = &thread->fpstate; | ||
| 614 | 613 | ||
| 615 | if (!test_ti_thread_flag(thread, TIF_USING_IWMMXT)) | 614 | if (!test_ti_thread_flag(thread, TIF_USING_IWMMXT)) |
| 616 | return -ENODATA; | 615 | return -ENODATA; |
| 617 | iwmmxt_task_disable(thread); /* force it to ram */ | 616 | iwmmxt_task_disable(thread); /* force it to ram */ |
| 618 | /* The iWMMXt state is stored doubleword-aligned. */ | 617 | return copy_to_user(ufp, &thread->fpstate.iwmmxt, IWMMXT_SIZE) |
| 619 | if (((long) ptr) & 4) | 618 | ? -EFAULT : 0; |
| 620 | ptr += 4; | ||
| 621 | return copy_to_user(ufp, ptr, 0x98) ? -EFAULT : 0; | ||
| 622 | } | 619 | } |
| 623 | 620 | ||
| 624 | /* | 621 | /* |
| @@ -627,15 +624,12 @@ static int ptrace_getwmmxregs(struct task_struct *tsk, void __user *ufp) | |||
| 627 | static int ptrace_setwmmxregs(struct task_struct *tsk, void __user *ufp) | 624 | static int ptrace_setwmmxregs(struct task_struct *tsk, void __user *ufp) |
| 628 | { | 625 | { |
| 629 | struct thread_info *thread = task_thread_info(tsk); | 626 | struct thread_info *thread = task_thread_info(tsk); |
| 630 | void *ptr = &thread->fpstate; | ||
| 631 | 627 | ||
| 632 | if (!test_ti_thread_flag(thread, TIF_USING_IWMMXT)) | 628 | if (!test_ti_thread_flag(thread, TIF_USING_IWMMXT)) |
| 633 | return -EACCES; | 629 | return -EACCES; |
| 634 | iwmmxt_task_release(thread); /* force a reload */ | 630 | iwmmxt_task_release(thread); /* force a reload */ |
| 635 | /* The iWMMXt state is stored doubleword-aligned. */ | 631 | return copy_from_user(&thread->fpstate.iwmmxt, ufp, IWMMXT_SIZE) |
| 636 | if (((long) ptr) & 4) | 632 | ? -EFAULT : 0; |
| 637 | ptr += 4; | ||
| 638 | return copy_from_user(ptr, ufp, 0x98) ? -EFAULT : 0; | ||
| 639 | } | 633 | } |
| 640 | 634 | ||
| 641 | #endif | 635 | #endif |
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c index 68273b4dc882..08974cbe9824 100644 --- a/arch/arm/kernel/setup.c +++ b/arch/arm/kernel/setup.c | |||
| @@ -37,6 +37,8 @@ | |||
| 37 | #include <asm/mach/irq.h> | 37 | #include <asm/mach/irq.h> |
| 38 | #include <asm/mach/time.h> | 38 | #include <asm/mach/time.h> |
| 39 | 39 | ||
| 40 | #include "compat.h" | ||
| 41 | |||
| 40 | #ifndef MEM_SIZE | 42 | #ifndef MEM_SIZE |
| 41 | #define MEM_SIZE (16*1024*1024) | 43 | #define MEM_SIZE (16*1024*1024) |
| 42 | #endif | 44 | #endif |
| @@ -53,10 +55,7 @@ static int __init fpe_setup(char *line) | |||
| 53 | __setup("fpe=", fpe_setup); | 55 | __setup("fpe=", fpe_setup); |
| 54 | #endif | 56 | #endif |
| 55 | 57 | ||
| 56 | extern unsigned int mem_fclk_21285; | ||
| 57 | extern void paging_init(struct meminfo *, struct machine_desc *desc); | 58 | extern void paging_init(struct meminfo *, struct machine_desc *desc); |
| 58 | extern void convert_to_tag_list(struct tag *tags); | ||
| 59 | extern void squash_mem_tags(struct tag *tag); | ||
| 60 | extern void reboot_setup(char *str); | 59 | extern void reboot_setup(char *str); |
| 61 | extern int root_mountflags; | 60 | extern int root_mountflags; |
| 62 | extern void _stext, _text, _etext, __data_start, _edata, _end; | 61 | extern void _stext, _text, _etext, __data_start, _edata, _end; |
