aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char/mem.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/char/mem.c')
-rw-r--r--drivers/char/mem.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/char/mem.c b/drivers/char/mem.c
index 92c5937f80c3..917403fe10da 100644
--- a/drivers/char/mem.c
+++ b/drivers/char/mem.c
@@ -99,6 +99,9 @@ static ssize_t read_mem(struct file *file, char __user *buf,
99 ssize_t read, sz; 99 ssize_t read, sz;
100 char *ptr; 100 char *ptr;
101 101
102 if (p != *ppos)
103 return 0;
104
102 if (!valid_phys_addr_range(p, count)) 105 if (!valid_phys_addr_range(p, count))
103 return -EFAULT; 106 return -EFAULT;
104 read = 0; 107 read = 0;
@@ -157,6 +160,9 @@ static ssize_t write_mem(struct file *file, const char __user *buf,
157 unsigned long copied; 160 unsigned long copied;
158 void *ptr; 161 void *ptr;
159 162
163 if (p != *ppos)
164 return -EFBIG;
165
160 if (!valid_phys_addr_range(p, count)) 166 if (!valid_phys_addr_range(p, count))
161 return -EFAULT; 167 return -EFAULT;
162 168