save_general_regs() which does special handling when i == PT_SOFTE.

Rewrite it to minimise the specific part, especially the __put_user()
and associated error handling is the same so make it common.

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

diff --git a/arch/powerpc/kernel/signal_32.c b/arch/powerpc/kernel/signal_32.c
index 0fd59fbc6d49..aae31fa5e411 100644
--- a/arch/powerpc/kernel/signal_32.c
+++ b/arch/powerpc/kernel/signal_32.c
@@ -103,19 +103,14 @@ static inline int save_general_regs(struct pt_regs *regs,
 {
        elf_greg_t64 *gregs = (elf_greg_t64 *)regs;
        int i;
-       /* Force usr to alway see softe as 1 (interrupts enabled) */
-       elf_greg_t64 softe = 0x1;
 
        WARN_ON(!FULL_REGS(regs));
 
        for (i = 0; i <= PT_RESULT; i ++) {
-               if ( i == PT_SOFTE) {
-                       if(__put_user((unsigned int)softe, &frame->mc_gregs[i]))
-                               return -EFAULT;
-                       else
-                               continue;
-               }
-               if (__put_user((unsigned int)gregs[i], &frame->mc_gregs[i]))
+               /* Force usr to alway see softe as 1 (interrupts enabled) */
+               int val = (i == PT_SOFTE) ? 1 : gregs[i];
+
+               if (__put_user(val, &frame->mc_gregs[i]))
                        return -EFAULT;
        }
        return 0;
-- 
2.25.0

Reply via email to