Merge tag 'iwlwifi-next-for-kalle-2014-12-30' of https://git.kernel.org/pub/scm/linux...
[cascardo/linux.git] / arch / tile / kernel / signal.c
index 7c2fecc..bb0a9ce 100644 (file)
@@ -45,8 +45,7 @@
 int restore_sigcontext(struct pt_regs *regs,
                       struct sigcontext __user *sc)
 {
-       int err = 0;
-       int i;
+       int err;
 
        /* Always make any pending restarted system calls return -EINTR */
        current_thread_info()->restart_block.fn = do_no_restart_syscall;
@@ -57,9 +56,7 @@ int restore_sigcontext(struct pt_regs *regs,
         */
        BUILD_BUG_ON(sizeof(struct sigcontext) != sizeof(struct pt_regs));
        BUILD_BUG_ON(sizeof(struct sigcontext) % 8 != 0);
-
-       for (i = 0; i < sizeof(struct pt_regs)/sizeof(long); ++i)
-               err |= __get_user(regs->regs[i], &sc->gregs[i]);
+       err = __copy_from_user(regs, sc, sizeof(*regs));
 
        /* Ensure that the PL is always set to USER_PL. */
        regs->ex1 = PL_ICS_EX1(USER_PL, EX1_ICS(regs->ex1));
@@ -110,12 +107,7 @@ badframe:
 
 int setup_sigcontext(struct sigcontext __user *sc, struct pt_regs *regs)
 {
-       int i, err = 0;
-
-       for (i = 0; i < sizeof(struct pt_regs)/sizeof(long); ++i)
-               err |= __put_user(regs->regs[i], &sc->gregs[i]);
-
-       return err;
+       return  __copy_to_user(sc, regs, sizeof(*regs));
 }
 
 /*
@@ -345,7 +337,6 @@ static void dump_mem(void __user *address)
        int i, j, k;
        int found_readable_mem = 0;
 
-       pr_err("\n");
        if (!access_ok(VERIFY_READ, address, 1)) {
                pr_err("Not dumping at address 0x%lx (kernel address)\n",
                       (unsigned long)address);
@@ -367,7 +358,7 @@ static void dump_mem(void __user *address)
                               (unsigned long)address);
                        found_readable_mem = 1;
                }
-               j = sprintf(line, REGFMT":", (unsigned long)addr);
+               j = sprintf(line, REGFMT ":", (unsigned long)addr);
                for (k = 0; k < bytes_per_line; ++k)
                        j += sprintf(&line[j], " %02x", buf[k]);
                pr_err("%s\n", line);
@@ -411,8 +402,7 @@ void trace_unhandled_signal(const char *type, struct pt_regs *regs,
                case SIGFPE:
                case SIGSEGV:
                case SIGBUS:
-                       pr_err("User crash: signal %d,"
-                              " trap %ld, address 0x%lx\n",
+                       pr_err("User crash: signal %d, trap %ld, address 0x%lx\n",
                               sig, regs->faultnum, address);
                        show_regs(regs);
                        dump_mem((void __user *)address);