summaryrefslogtreecommitdiffstats
path: root/drivers/char/tile-srom.c
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2013-06-23 04:43:48 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2013-06-29 04:57:51 -0400
commit914961aac077b5aebb4ae669d7c42d231826970b (patch)
treef021365b9fc95d45023c85da58278b8608f58914 /drivers/char/tile-srom.c
parentb33159b7d249afae386b91025ef4ea1d7793fc1b (diff)
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,
273} 273}
274 274
275/* Provide our own implementation so we can use srom->total_size. */ 275/* Provide our own implementation so we can use srom->total_size. */
276loff_t srom_llseek(struct file *filp, loff_t offset, int origin) 276loff_t srom_llseek(struct file *file, loff_t offset, int origin)
277{ 277{
278 struct srom_dev *srom = filp->private_data; 278 struct srom_dev *srom = file->private_data;
279 279 return fixed_size_llseek(file, offset, origin, srom->total_size);
280 if (mutex_lock_interruptible(&srom->lock))
281 return -ERESTARTSYS;
282
283 switch (origin) {
284 case SEEK_END:
285 offset += srom->total_size;
286 break;
287 case SEEK_CUR:
288 offset += filp->f_pos;
289 break;
290 }
291
292 if (offset < 0 || offset > srom->total_size) {
293 offset = -EINVAL;
294 } else {
295 filp->f_pos = offset;
296 filp->f_version = 0;
297 }
298
299 mutex_unlock(&srom->lock);
300
301 return offset;
302} 280}
303 281
304static ssize_t total_show(struct device *dev, 282static ssize_t total_show(struct device *dev,