Merge tag lsk-v3.10-15.03-android
[firefly-linux-kernel-4.4.55.git] / kernel / sys.c
index 33192c2785b23395fcfc90b666a55de634cb30b6..b1a203d9b1e7b84508f5cfdf2ead87b6e84b59f0 100644 (file)
@@ -64,6 +64,9 @@
 #include <asm/uaccess.h>
 #include <asm/io.h>
 #include <asm/unistd.h>
+#ifdef CONFIG_ARCH_ROCKCHIP
+#include <asm/system_misc.h>
+#endif
 
 #ifndef SET_UNALIGN_CTL
 # define SET_UNALIGN_CTL(a,b)  (-EINVAL)
@@ -450,6 +453,9 @@ void kernel_power_off(void)
        printk(KERN_EMERG "Power down.\n");
        kmsg_dump(KMSG_DUMP_POWEROFF);
        machine_power_off();
+#ifdef CONFIG_ARCH_ROCKCHIP
+       arm_pm_restart('h', "charge");
+#endif
 }
 EXPORT_SYMBOL_GPL(kernel_power_off);
 
@@ -2397,11 +2403,11 @@ SYSCALL_DEFINE5(prctl, int, option, unsigned long, arg2, unsigned long, arg3,
                error = prctl_get_tid_address(me, (int __user **)arg2);
                break;
        case PR_SET_TIMERSLACK_PID:
-               if (current->pid != (pid_t)arg3 &&
+               if (task_pid_vnr(current) != (pid_t)arg3 &&
                                !capable(CAP_SYS_NICE))
                        return -EPERM;
                rcu_read_lock();
-               tsk = find_task_by_pid_ns((pid_t)arg3, &init_pid_ns);
+               tsk = find_task_by_vpid((pid_t)arg3);
                if (tsk == NULL) {
                        rcu_read_unlock();
                        return -EINVAL;