diff --git a/arch/arm/kernel/ptrace.c b/arch/arm/kernel/ptrace.c index c421a899fc84..b47e56a87dfa 100644 --- a/arch/arm/kernel/ptrace.c +++ b/arch/arm/kernel/ptrace.c @@ -573,8 +573,10 @@ static int fpa_get(struct task_struct *target, const struct user_regset *regset, struct membuf to) { - return membuf_write(&to, &task_thread_info(target)->fpstate, - sizeof(struct user_fp)); + struct thread_info *thread = task_thread_info(target); + + return membuf_write(&to, &thread->fpstate, + sizeof(thread->fpstate)); } static int fpa_set(struct task_struct *target, @@ -586,7 +588,7 @@ static int fpa_set(struct task_struct *target, return user_regset_copyin(&pos, &count, &kbuf, &ubuf, &thread->fpstate, - 0, sizeof(struct user_fp)); + 0, sizeof(thread->fpstate)); } #ifdef CONFIG_VFP @@ -690,7 +692,7 @@ static const struct user_regset arm_regsets[] = { * of sizes, so pretend that the registers are word-sized: */ .core_note_type = NT_PRFPREG, - .n = sizeof(struct user_fp) / sizeof(u32), + .n = sizeof(union fp_state) / sizeof(u32), .size = sizeof(u32), .align = sizeof(u32), .regset_get = fpa_get,