mirror of
https://github.com/torvalds/linux.git
synced 2024-12-28 05:41:55 +00:00
nwflash: use simple_read_from_buffer()
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com> Cc: Russell King <linux@arm.linux.org.uk> Cc: Tim Schmielau <tim@physik3.uni-rostock.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
236b8756a2
commit
6ee8928d94
@ -122,35 +122,20 @@ static int flash_ioctl(struct inode *inodep, struct file *filep, unsigned int cm
|
||||
static ssize_t flash_read(struct file *file, char __user *buf, size_t size,
|
||||
loff_t *ppos)
|
||||
{
|
||||
unsigned long p = *ppos;
|
||||
unsigned int count = size;
|
||||
int ret = 0;
|
||||
ssize_t ret;
|
||||
|
||||
if (flashdebug)
|
||||
printk(KERN_DEBUG "flash_read: flash_read: offset=0x%lX, "
|
||||
"buffer=%p, count=0x%X.\n", p, buf, count);
|
||||
/*
|
||||
* We now lock against reads and writes. --rmk
|
||||
*/
|
||||
if (mutex_lock_interruptible(&nwflash_mutex))
|
||||
return -ERESTARTSYS;
|
||||
|
||||
if (count)
|
||||
ret = -ENXIO;
|
||||
ret = simple_read_from_buffer(buf, size, ppos, FLASH_BASE, gbFlashSize);
|
||||
mutex_unlock(&nwflash_mutex);
|
||||
|
||||
if (p < gbFlashSize) {
|
||||
if (count > gbFlashSize - p)
|
||||
count = gbFlashSize - p;
|
||||
|
||||
/*
|
||||
* We now lock against reads and writes. --rmk
|
||||
*/
|
||||
if (mutex_lock_interruptible(&nwflash_mutex))
|
||||
return -ERESTARTSYS;
|
||||
|
||||
ret = copy_to_user(buf, (void *)(FLASH_BASE + p), count);
|
||||
if (ret == 0) {
|
||||
ret = count;
|
||||
*ppos += count;
|
||||
} else
|
||||
ret = -EFAULT;
|
||||
mutex_unlock(&nwflash_mutex);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user