This commit was manufactured by cvs2svn to create tag
[linux-2.6.git] / arch / ppc64 / kernel / rtc.c
index 7bf41f3..57a708d 100644 (file)
@@ -56,7 +56,9 @@ extern int piranha_simulator;
  *     ioctls.
  */
 
-static ssize_t rtc_read(struct file *file, char __user *buf,
+static loff_t rtc_llseek(struct file *file, loff_t offset, int origin);
+
+static ssize_t rtc_read(struct file *file, char *buf,
                        size_t count, loff_t *ppos);
 
 static int rtc_ioctl(struct inode *inode, struct file *file,
@@ -79,7 +81,12 @@ static const unsigned char days_in_mo[] =
  *     Now all the various file operations that we export.
  */
 
-static ssize_t rtc_read(struct file *file, char __user *buf,
+static loff_t rtc_llseek(struct file *file, loff_t offset, int origin)
+{
+       return -ESPIPE;
+}
+
+static ssize_t rtc_read(struct file *file, char *buf,
                        size_t count, loff_t *ppos)
 {
        return -EIO;
@@ -106,7 +113,7 @@ static int rtc_ioctl(struct inode *inode, struct file *file, unsigned int cmd,
                if (!capable(CAP_SYS_TIME))
                        return -EACCES;
 
-               if (copy_from_user(&rtc_tm, (struct rtc_time __user *)arg,
+               if (copy_from_user(&rtc_tm, (struct rtc_time*)arg,
                                   sizeof(struct rtc_time)))
                        return -EFAULT;
 
@@ -140,7 +147,7 @@ static int rtc_ioctl(struct inode *inode, struct file *file, unsigned int cmd,
        }
        case RTC_EPOCH_READ:    /* Read the epoch.      */
        {
-               return put_user (epoch, (unsigned long __user *)arg);
+               return put_user (epoch, (unsigned long *)arg);
        }
        case RTC_EPOCH_SET:     /* Set the epoch.       */
        {
@@ -159,12 +166,11 @@ static int rtc_ioctl(struct inode *inode, struct file *file, unsigned int cmd,
        default:
                return -EINVAL;
        }
-       return copy_to_user((void __user *)arg, &wtime, sizeof wtime) ? -EFAULT : 0;
+       return copy_to_user((void *)arg, &wtime, sizeof wtime) ? -EFAULT : 0;
 }
 
 static int rtc_open(struct inode *inode, struct file *file)
 {
-       nonseekable_open(inode, file);
        return 0;
 }
 
@@ -178,7 +184,7 @@ static int rtc_release(struct inode *inode, struct file *file)
  */
 static struct file_operations rtc_fops = {
        .owner =        THIS_MODULE,
-       .llseek =       no_llseek,
+       .llseek =       rtc_llseek,
        .read =         rtc_read,
        .ioctl =        rtc_ioctl,
        .open =         rtc_open,
@@ -201,7 +207,7 @@ static int __init rtc_init(void)
                return retval;
 
 #ifdef CONFIG_PROC_FS
-       if (create_proc_read_entry ("driver/rtc", 0, NULL, rtc_read_proc, NULL) == NULL)
+       if(create_proc_read_entry ("driver/rtc", 0, 0, rtc_read_proc, NULL) == NULL)
                misc_deregister(&rtc_dev);
                return -ENOMEM;
 #endif