Loading drivers/staging/vme/devices/vme_user.c +3 −25 Original line number Diff line number Diff line Loading @@ -410,41 +410,19 @@ static ssize_t vme_user_write(struct file *file, const char __user *buf, static loff_t vme_user_llseek(struct file *file, loff_t off, int whence) { loff_t absolute = -1; unsigned int minor = MINOR(file_inode(file)->i_rdev); size_t image_size; loff_t res; if (minor == CONTROL_MINOR) return -EINVAL; mutex_lock(&image[minor].mutex); image_size = vme_get_size(image[minor].resource); switch (whence) { case SEEK_SET: absolute = off; break; case SEEK_CUR: absolute = file->f_pos + off; break; case SEEK_END: absolute = image_size + off; break; default: mutex_unlock(&image[minor].mutex); return -EINVAL; } if ((absolute < 0) || (absolute >= image_size)) { mutex_unlock(&image[minor].mutex); return -EINVAL; } file->f_pos = absolute; res = fixed_size_llseek(file, off, whence, image_size); mutex_unlock(&image[minor].mutex); return absolute; return res; } /* Loading Loading
drivers/staging/vme/devices/vme_user.c +3 −25 Original line number Diff line number Diff line Loading @@ -410,41 +410,19 @@ static ssize_t vme_user_write(struct file *file, const char __user *buf, static loff_t vme_user_llseek(struct file *file, loff_t off, int whence) { loff_t absolute = -1; unsigned int minor = MINOR(file_inode(file)->i_rdev); size_t image_size; loff_t res; if (minor == CONTROL_MINOR) return -EINVAL; mutex_lock(&image[minor].mutex); image_size = vme_get_size(image[minor].resource); switch (whence) { case SEEK_SET: absolute = off; break; case SEEK_CUR: absolute = file->f_pos + off; break; case SEEK_END: absolute = image_size + off; break; default: mutex_unlock(&image[minor].mutex); return -EINVAL; } if ((absolute < 0) || (absolute >= image_size)) { mutex_unlock(&image[minor].mutex); return -EINVAL; } file->f_pos = absolute; res = fixed_size_llseek(file, off, whence, image_size); mutex_unlock(&image[minor].mutex); return absolute; return res; } /* Loading