init_ti_parallel(minor);
parport_release(table[minor].dev);
- return 0;
+ return nonseekable_open(inode, file);
}
static int
}
static ssize_t
-tipar_write(struct file *file, const char *buf, size_t count, loff_t * ppos)
+tipar_write(struct file *file, const char __user *buf, size_t count, loff_t * ppos)
{
unsigned int minor = iminor(file->f_dentry->d_inode) - TIPAR_MINOR;
ssize_t n;
}
static ssize_t
-tipar_read(struct file *file, char *buf, size_t count, loff_t * ppos)
+tipar_read(struct file *file, char __user *buf, size_t count, loff_t * ppos)
{
int b = 0;
unsigned int minor = iminor(file->f_dentry->d_inode) - TIPAR_MINOR;
if (count == 0)
return 0;
- if (ppos != &file->f_pos)
- return -ESPIPE;
-
parport_claim_or_block(table[minor].dev);
while (n < count) {
retval = -ETIMEDOUT;
goto out;
} else {
- if (put_user(b, ((unsigned char *) buf) + n)) {
+ if (put_user(b, buf + n)) {
retval = -EFAULT;
break;
} else