fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / arch / frv / kernel / pm.c
index 1a1e8a1..ee677ce 100644 (file)
  *
  */
 
-#include <linux/config.h>
 #include <linux/init.h>
+#include <linux/module.h>
 #include <linux/pm.h>
+#include <linux/pm_legacy.h>
 #include <linux/sched.h>
 #include <linux/interrupt.h>
 #include <linux/sysctl.h>
 
 #include "local.h"
 
-void (*pm_power_off)(void);
-
-extern void frv_change_cmode(int);
-
 /*
  * Debug macros
  */
@@ -134,7 +131,7 @@ unsigned long sleep_phys_sp(void *sp)
 #define CTL_PM_P0 4
 #define CTL_PM_CM 5
 
-static int user_atoi(char *ubuf, size_t len)
+static int user_atoi(char __user *ubuf, size_t len)
 {
        char buf[16];
        unsigned long ret;
@@ -156,7 +153,7 @@ static int user_atoi(char *ubuf, size_t len)
  * Send us to sleep.
  */
 static int sysctl_pm_do_suspend(ctl_table *ctl, int write, struct file *filp,
-                               void *buffer, size_t *lenp, loff_t *fpos)
+                               void __user *buffer, size_t *lenp, loff_t *fpos)
 {
        int retval, mode;
 
@@ -212,7 +209,7 @@ static int try_set_cmode(int new_cmode)
 
 
 static int cmode_procctl(ctl_table *ctl, int write, struct file *filp,
-                        void *buffer, size_t *lenp, loff_t *fpos)
+                        void __user *buffer, size_t *lenp, loff_t *fpos)
 {
        int new_cmode;
 
@@ -224,9 +221,9 @@ static int cmode_procctl(ctl_table *ctl, int write, struct file *filp,
        return try_set_cmode(new_cmode)?:*lenp;
 }
 
-static int cmode_sysctl(ctl_table *table, int *name, int nlen,
-                       void *oldval, size_t *oldlenp,
-                       void *newval, size_t newlen, void **context)
+static int cmode_sysctl(ctl_table *table, int __user *name, int nlen,
+                       void __user *oldval, size_t __user *oldlenp,
+                       void __user *newval, size_t newlen)
 {
        if (oldval && oldlenp) {
                size_t oldlen;
@@ -237,7 +234,7 @@ static int cmode_sysctl(ctl_table *table, int *name, int nlen,
                if (oldlen != sizeof(int))
                        return -EINVAL;
 
-               if (put_user(clock_cmode_current, (unsigned int *)oldval) ||
+               if (put_user(clock_cmode_current, (unsigned __user *)oldval) ||
                    put_user(sizeof(int), oldlenp))
                        return -EFAULT;
        }
@@ -247,7 +244,7 @@ static int cmode_sysctl(ctl_table *table, int *name, int nlen,
                if (newlen != sizeof(int))
                        return -EINVAL;
 
-               if (get_user(new_cmode, (int *)newval))
+               if (get_user(new_cmode, (int __user *)newval))
                        return -EFAULT;
 
                return try_set_cmode(new_cmode)?:1;
@@ -315,7 +312,7 @@ static int try_set_cm(int new_cm)
 }
 
 static int p0_procctl(ctl_table *ctl, int write, struct file *filp,
-                     void *buffer, size_t *lenp, loff_t *fpos)
+                     void __user *buffer, size_t *lenp, loff_t *fpos)
 {
        int new_p0;
 
@@ -327,9 +324,9 @@ static int p0_procctl(ctl_table *ctl, int write, struct file *filp,
        return try_set_p0(new_p0)?:*lenp;
 }
 
-static int p0_sysctl(ctl_table *table, int *name, int nlen,
-                    void *oldval, size_t *oldlenp,
-                    void *newval, size_t newlen, void **context)
+static int p0_sysctl(ctl_table *table, int __user *name, int nlen,
+                    void __user *oldval, size_t __user *oldlenp,
+                    void __user *newval, size_t newlen)
 {
        if (oldval && oldlenp) {
                size_t oldlen;
@@ -340,7 +337,7 @@ static int p0_sysctl(ctl_table *table, int *name, int nlen,
                if (oldlen != sizeof(int))
                        return -EINVAL;
 
-               if (put_user(clock_p0_current, (unsigned int *)oldval) ||
+               if (put_user(clock_p0_current, (unsigned __user *)oldval) ||
                    put_user(sizeof(int), oldlenp))
                        return -EFAULT;
        }
@@ -350,7 +347,7 @@ static int p0_sysctl(ctl_table *table, int *name, int nlen,
                if (newlen != sizeof(int))
                        return -EINVAL;
 
-               if (get_user(new_p0, (int *)newval))
+               if (get_user(new_p0, (int __user *)newval))
                        return -EFAULT;
 
                return try_set_p0(new_p0)?:1;
@@ -359,7 +356,7 @@ static int p0_sysctl(ctl_table *table, int *name, int nlen,
 }
 
 static int cm_procctl(ctl_table *ctl, int write, struct file *filp,
-                     void *buffer, size_t *lenp, loff_t *fpos)
+                     void __user *buffer, size_t *lenp, loff_t *fpos)
 {
        int new_cm;
 
@@ -371,9 +368,9 @@ static int cm_procctl(ctl_table *ctl, int write, struct file *filp,
        return try_set_cm(new_cm)?:*lenp;
 }
 
-static int cm_sysctl(ctl_table *table, int *name, int nlen,
-                    void *oldval, size_t *oldlenp,
-                    void *newval, size_t newlen, void **context)
+static int cm_sysctl(ctl_table *table, int __user *name, int nlen,
+                    void __user *oldval, size_t __user *oldlenp,
+                    void __user *newval, size_t newlen)
 {
        if (oldval && oldlenp) {
                size_t oldlen;
@@ -384,7 +381,7 @@ static int cm_sysctl(ctl_table *table, int *name, int nlen,
                if (oldlen != sizeof(int))
                        return -EINVAL;
 
-               if (put_user(clock_cm_current, (unsigned int *)oldval) ||
+               if (put_user(clock_cm_current, (unsigned __user *)oldval) ||
                    put_user(sizeof(int), oldlenp))
                        return -EFAULT;
        }
@@ -394,7 +391,7 @@ static int cm_sysctl(ctl_table *table, int *name, int nlen,
                if (newlen != sizeof(int))
                        return -EINVAL;
 
-               if (get_user(new_cm, (int *)newval))
+               if (get_user(new_cm, (int __user *)newval))
                        return -EFAULT;
 
                return try_set_cm(new_cm)?:1;