aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWill Deacon2013-02-06 05:42:23 -0600
committerCatalin Marinas2013-02-11 06:39:16 -0600
commitc0e01d5d8f15c085236df184e5bc3d79a8b700cd (patch)
tree92efd5f16d6462a96e3f46e591b7e170cd7f17a8 /arch/arm64
parentb6f3598140608012bbc034c9a9ba55b0e8ea0755 (diff)
downloadam43-linux-kernel-c0e01d5d8f15c085236df184e5bc3d79a8b700cd.tar.gz
am43-linux-kernel-c0e01d5d8f15c085236df184e5bc3d79a8b700cd.tar.xz
am43-linux-kernel-c0e01d5d8f15c085236df184e5bc3d79a8b700cd.zip
arm64: compat: use compat_uptr_t type for compat_ucontext.uc_link
struct compat_ucontext * is a 64-bit pointer, so we need to use a compat_uptr_t instead to avoid declaring a structure incompatible with what AArch32 userspace expects. Cc: <stable@vger.kernel.org> Reported-by: Edmund Grimley-Evans <Edmund.Grimley-Evans@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'arch/arm64')
-rw-r--r--arch/arm64/kernel/signal32.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/arm64/kernel/signal32.c b/arch/arm64/kernel/signal32.c
index a4db3d22aac..41db148a7eb 100644
--- a/arch/arm64/kernel/signal32.c
+++ b/arch/arm64/kernel/signal32.c
@@ -76,7 +76,7 @@ struct compat_sigcontext {
76 76
77struct compat_ucontext { 77struct compat_ucontext {
78 compat_ulong_t uc_flags; 78 compat_ulong_t uc_flags;
79 struct compat_ucontext *uc_link; 79 compat_uptr_t uc_link;
80 compat_stack_t uc_stack; 80 compat_stack_t uc_stack;
81 struct compat_sigcontext uc_mcontext; 81 struct compat_sigcontext uc_mcontext;
82 compat_sigset_t uc_sigmask; 82 compat_sigset_t uc_sigmask;
@@ -703,7 +703,7 @@ int compat_setup_rt_frame(int usig, struct k_sigaction *ka, siginfo_t *info,
703 err |= copy_siginfo_to_user32(&frame->info, info); 703 err |= copy_siginfo_to_user32(&frame->info, info);
704 704
705 __put_user_error(0, &frame->sig.uc.uc_flags, err); 705 __put_user_error(0, &frame->sig.uc.uc_flags, err);
706 __put_user_error(NULL, &frame->sig.uc.uc_link, err); 706 __put_user_error(0, &frame->sig.uc.uc_link, err);
707 707
708 memset(&stack, 0, sizeof(stack)); 708 memset(&stack, 0, sizeof(stack));
709 stack.ss_sp = (compat_uptr_t)current->sas_ss_sp; 709 stack.ss_sp = (compat_uptr_t)current->sas_ss_sp;