diff options
Diffstat (limited to 'drivers/video/via/viafbdev.c')
-rw-r--r-- | drivers/video/via/viafbdev.c | 34 |
1 files changed, 12 insertions, 22 deletions
diff --git a/drivers/video/via/viafbdev.c b/drivers/video/via/viafbdev.c index 0c8837565bc7..c80e770e1800 100644 --- a/drivers/video/via/viafbdev.c +++ b/drivers/video/via/viafbdev.c | |||
@@ -1276,17 +1276,12 @@ static int viafb_dfph_proc_open(struct inode *inode, struct file *file) | |||
1276 | static ssize_t viafb_dfph_proc_write(struct file *file, | 1276 | static ssize_t viafb_dfph_proc_write(struct file *file, |
1277 | const char __user *buffer, size_t count, loff_t *pos) | 1277 | const char __user *buffer, size_t count, loff_t *pos) |
1278 | { | 1278 | { |
1279 | char buf[20]; | 1279 | int err; |
1280 | u8 reg_val = 0; | 1280 | u8 reg_val; |
1281 | unsigned long length; | 1281 | err = kstrtou8_from_user(buffer, count, 0, ®_val); |
1282 | if (count < 1) | 1282 | if (err) |
1283 | return -EINVAL; | 1283 | return err; |
1284 | length = count > 20 ? 20 : count; | 1284 | |
1285 | if (copy_from_user(&buf[0], buffer, length)) | ||
1286 | return -EFAULT; | ||
1287 | buf[length - 1] = '\0'; /*Ensure end string */ | ||
1288 | if (kstrtou8(buf, 0, ®_val) < 0) | ||
1289 | return -EINVAL; | ||
1290 | viafb_write_reg_mask(CR97, VIACR, reg_val, 0x0f); | 1285 | viafb_write_reg_mask(CR97, VIACR, reg_val, 0x0f); |
1291 | return count; | 1286 | return count; |
1292 | } | 1287 | } |
@@ -1316,17 +1311,12 @@ static int viafb_dfpl_proc_open(struct inode *inode, struct file *file) | |||
1316 | static ssize_t viafb_dfpl_proc_write(struct file *file, | 1311 | static ssize_t viafb_dfpl_proc_write(struct file *file, |
1317 | const char __user *buffer, size_t count, loff_t *pos) | 1312 | const char __user *buffer, size_t count, loff_t *pos) |
1318 | { | 1313 | { |
1319 | char buf[20]; | 1314 | int err; |
1320 | u8 reg_val = 0; | 1315 | u8 reg_val; |
1321 | unsigned long length; | 1316 | err = kstrtou8_from_user(buffer, count, 0, ®_val); |
1322 | if (count < 1) | 1317 | if (err) |
1323 | return -EINVAL; | 1318 | return err; |
1324 | length = count > 20 ? 20 : count; | 1319 | |
1325 | if (copy_from_user(&buf[0], buffer, length)) | ||
1326 | return -EFAULT; | ||
1327 | buf[length - 1] = '\0'; /*Ensure end string */ | ||
1328 | if (kstrtou8(buf, 0, ®_val) < 0) | ||
1329 | return -EINVAL; | ||
1330 | viafb_write_reg_mask(CR99, VIACR, reg_val, 0x0f); | 1320 | viafb_write_reg_mask(CR99, VIACR, reg_val, 0x0f); |
1331 | return count; | 1321 | return count; |
1332 | } | 1322 | } |