diff options
Diffstat (limited to 'drivers/char/mem.c')
| -rw-r--r-- | drivers/char/mem.c | 7 | 
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/char/mem.c b/drivers/char/mem.c index f895a8c8a24..917403fe10d 100644 --- a/drivers/char/mem.c +++ b/drivers/char/mem.c @@ -22,7 +22,6 @@  #include <linux/device.h>  #include <linux/highmem.h>  #include <linux/backing-dev.h> -#include <linux/bootmem.h>  #include <linux/splice.h>  #include <linux/pfn.h>  #include <linux/export.h> @@ -100,6 +99,9 @@ static ssize_t read_mem(struct file *file, char __user *buf,  	ssize_t read, sz;  	char *ptr; +	if (p != *ppos) +		return 0; +  	if (!valid_phys_addr_range(p, count))  		return -EFAULT;  	read = 0; @@ -158,6 +160,9 @@ static ssize_t write_mem(struct file *file, const char __user *buf,  	unsigned long copied;  	void *ptr; +	if (p != *ppos) +		return -EFBIG; +  	if (!valid_phys_addr_range(p, count))  		return -EFAULT;  | 
