As this was the last user of put_sigset_t(), remove it as well.

Signed-off-by: Christophe Leroy <christophe.le...@csgroup.eu>
---
 arch/powerpc/kernel/signal_32.c | 24 ++++++++++--------------
 1 file changed, 10 insertions(+), 14 deletions(-)

diff --git a/arch/powerpc/kernel/signal_32.c b/arch/powerpc/kernel/signal_32.c
index 6cbff0293ff4..399d823782cf 100644
--- a/arch/powerpc/kernel/signal_32.c
+++ b/arch/powerpc/kernel/signal_32.c
@@ -82,11 +82,6 @@
  * Functions for flipping sigsets (thanks to brain dead generic
  * implementation that makes things simple for little endian only)
  */
-static inline int put_sigset_t(compat_sigset_t __user *uset, sigset_t *set)
-{
-       return put_compat_sigset(uset, set, sizeof(*uset));
-}
-
 #define unsafe_put_sigset_t    unsafe_put_compat_sigset
 
 static inline int get_sigset_t(sigset_t *set,
@@ -140,11 +135,6 @@ static inline int restore_general_regs(struct pt_regs 
*regs,
 
 #define GP_REGS_SIZE   min(sizeof(elf_gregset_t), sizeof(struct pt_regs))
 
-static inline int put_sigset_t(sigset_t __user *uset, sigset_t *set)
-{
-       return copy_to_user(uset, set, sizeof(*uset));
-}
-
 #define unsafe_put_sigset_t(uset, set, label) do {                     \
        sigset_t __user *__us = uset    ;                               \
        const sigset_t *__s = set;                                      \
@@ -1012,11 +1002,13 @@ SYSCALL_DEFINE3(swapcontext, struct ucontext __user *, 
old_ctx,
                 */
                mctx = (struct mcontext __user *)
                        ((unsigned long) &old_ctx->uc_mcontext & ~0xfUL);
-               if (!access_ok(old_ctx, ctx_size)
-                   || save_user_regs(regs, mctx, NULL, 0, ctx_has_vsx_region)
-                   || put_sigset_t(&old_ctx->uc_sigmask, &current->blocked)
-                   || __put_user(to_user_ptr(mctx), &old_ctx->uc_regs))
+               if (save_user_regs(regs, mctx, NULL, 0, ctx_has_vsx_region))
+                       return -EFAULT;
+               if (!user_write_access_begin(old_ctx, ctx_size))
                        return -EFAULT;
+               unsafe_put_sigset_t(&old_ctx->uc_sigmask, &current->blocked, 
failed);
+               unsafe_put_user(to_user_ptr(mctx), &old_ctx->uc_regs, failed);
+               user_write_access_end();
        }
        if (new_ctx == NULL)
                return 0;
@@ -1040,6 +1032,10 @@ SYSCALL_DEFINE3(swapcontext, struct ucontext __user *, 
old_ctx,
 
        set_thread_flag(TIF_RESTOREALL);
        return 0;
+
+failed:
+       user_write_access_end();
+       return -EFAULT;
 }
 
 #ifdef CONFIG_PPC64
-- 
2.25.0

Reply via email to