summaryrefslogtreecommitdiff
path: root/drivers/char/tile-srom.c
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2013-06-23 12:43:48 +0400
committerAl Viro <viro@zeniv.linux.org.uk>2013-06-29 12:57:51 +0400
commit914961aac077b5aebb4ae669d7c42d231826970b (patch)
treef021365b9fc95d45023c85da58278b8608f58914 /drivers/char/tile-srom.c
parentb33159b7d249afae386b91025ef4ea1d7793fc1b (diff)
downloadlinux-914961aac077b5aebb4ae669d7c42d231826970b.tar.xz
tile-srom: switch to fixed_size_llseek()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'drivers/char/tile-srom.c')
-rw-r--r--drivers/char/tile-srom.c28
1 files changed, 3 insertions, 25 deletions
diff --git a/drivers/char/tile-srom.c b/drivers/char/tile-srom.c
index 2e2036e940fc..7faeb1cde97d 100644
--- a/drivers/char/tile-srom.c
+++ b/drivers/char/tile-srom.c
@@ -273,32 +273,10 @@ static ssize_t srom_write(struct file *filp, const char __user *buf,
}
/* Provide our own implementation so we can use srom->total_size. */
-loff_t srom_llseek(struct file *filp, loff_t offset, int origin)
+loff_t srom_llseek(struct file *file, loff_t offset, int origin)
{
- struct srom_dev *srom = filp->private_data;
-
- if (mutex_lock_interruptible(&srom->lock))
- return -ERESTARTSYS;
-
- switch (origin) {
- case SEEK_END:
- offset += srom->total_size;
- break;
- case SEEK_CUR:
- offset += filp->f_pos;
- break;
- }
-
- if (offset < 0 || offset > srom->total_size) {
- offset = -EINVAL;
- } else {
- filp->f_pos = offset;
- filp->f_version = 0;
- }
-
- mutex_unlock(&srom->lock);
-
- return offset;
+ struct srom_dev *srom = file->private_data;
+ return fixed_size_llseek(file, offset, origin, srom->total_size);
}
static ssize_t total_show(struct device *dev,