diff options
Diffstat (limited to 'drivers/input/keyboard/atkbd.c')
| -rw-r--r-- | drivers/input/keyboard/atkbd.c | 40 |
1 files changed, 30 insertions, 10 deletions
diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c index 19cfc0cf558c..e05a2e7073c6 100644 --- a/drivers/input/keyboard/atkbd.c +++ b/drivers/input/keyboard/atkbd.c | |||
| @@ -1305,7 +1305,7 @@ static ssize_t atkbd_show_extra(struct atkbd *atkbd, char *buf) | |||
| 1305 | static ssize_t atkbd_set_extra(struct atkbd *atkbd, const char *buf, size_t count) | 1305 | static ssize_t atkbd_set_extra(struct atkbd *atkbd, const char *buf, size_t count) |
| 1306 | { | 1306 | { |
| 1307 | struct input_dev *old_dev, *new_dev; | 1307 | struct input_dev *old_dev, *new_dev; |
| 1308 | unsigned long value; | 1308 | unsigned int value; |
| 1309 | int err; | 1309 | int err; |
| 1310 | bool old_extra; | 1310 | bool old_extra; |
| 1311 | unsigned char old_set; | 1311 | unsigned char old_set; |
| @@ -1313,7 +1313,11 @@ static ssize_t atkbd_set_extra(struct atkbd *atkbd, const char *buf, size_t coun | |||
| 1313 | if (!atkbd->write) | 1313 | if (!atkbd->write) |
| 1314 | return -EIO; | 1314 | return -EIO; |
| 1315 | 1315 | ||
| 1316 | if (strict_strtoul(buf, 10, &value) || value > 1) | 1316 | err = kstrtouint(buf, 10, &value); |
| 1317 | if (err) | ||
| 1318 | return err; | ||
| 1319 | |||
| 1320 | if (value > 1) | ||
| 1317 | return -EINVAL; | 1321 | return -EINVAL; |
| 1318 | 1322 | ||
| 1319 | if (atkbd->extra != value) { | 1323 | if (atkbd->extra != value) { |
| @@ -1389,11 +1393,15 @@ static ssize_t atkbd_show_scroll(struct atkbd *atkbd, char *buf) | |||
| 1389 | static ssize_t atkbd_set_scroll(struct atkbd *atkbd, const char *buf, size_t count) | 1393 | static ssize_t atkbd_set_scroll(struct atkbd *atkbd, const char *buf, size_t count) |
| 1390 | { | 1394 | { |
| 1391 | struct input_dev *old_dev, *new_dev; | 1395 | struct input_dev *old_dev, *new_dev; |
| 1392 | unsigned long value; | 1396 | unsigned int value; |
| 1393 | int err; | 1397 | int err; |
| 1394 | bool old_scroll; | 1398 | bool old_scroll; |
| 1395 | 1399 | ||
| 1396 | if (strict_strtoul(buf, 10, &value) || value > 1) | 1400 | err = kstrtouint(buf, 10, &value); |
| 1401 | if (err) | ||
| 1402 | return err; | ||
| 1403 | |||
| 1404 | if (value > 1) | ||
| 1397 | return -EINVAL; | 1405 | return -EINVAL; |
| 1398 | 1406 | ||
| 1399 | if (atkbd->scroll != value) { | 1407 | if (atkbd->scroll != value) { |
| @@ -1433,7 +1441,7 @@ static ssize_t atkbd_show_set(struct atkbd *atkbd, char *buf) | |||
| 1433 | static ssize_t atkbd_set_set(struct atkbd *atkbd, const char *buf, size_t count) | 1441 | static ssize_t atkbd_set_set(struct atkbd *atkbd, const char *buf, size_t count) |
| 1434 | { | 1442 | { |
| 1435 | struct input_dev *old_dev, *new_dev; | 1443 | struct input_dev *old_dev, *new_dev; |
| 1436 | unsigned long value; | 1444 | unsigned int value; |
| 1437 | int err; | 1445 | int err; |
| 1438 | unsigned char old_set; | 1446 | unsigned char old_set; |
| 1439 | bool old_extra; | 1447 | bool old_extra; |
| @@ -1441,7 +1449,11 @@ static ssize_t atkbd_set_set(struct atkbd *atkbd, const char *buf, size_t count) | |||
| 1441 | if (!atkbd->write) | 1449 | if (!atkbd->write) |
| 1442 | return -EIO; | 1450 | return -EIO; |
| 1443 | 1451 | ||
| 1444 | if (strict_strtoul(buf, 10, &value) || (value != 2 && value != 3)) | 1452 | err = kstrtouint(buf, 10, &value); |
| 1453 | if (err) | ||
| 1454 | return err; | ||
| 1455 | |||
| 1456 | if (value != 2 && value != 3) | ||
| 1445 | return -EINVAL; | 1457 | return -EINVAL; |
| 1446 | 1458 | ||
| 1447 | if (atkbd->set != value) { | 1459 | if (atkbd->set != value) { |
| @@ -1484,14 +1496,18 @@ static ssize_t atkbd_show_softrepeat(struct atkbd *atkbd, char *buf) | |||
| 1484 | static ssize_t atkbd_set_softrepeat(struct atkbd *atkbd, const char *buf, size_t count) | 1496 | static ssize_t atkbd_set_softrepeat(struct atkbd *atkbd, const char *buf, size_t count) |
| 1485 | { | 1497 | { |
| 1486 | struct input_dev *old_dev, *new_dev; | 1498 | struct input_dev *old_dev, *new_dev; |
| 1487 | unsigned long value; | 1499 | unsigned int value; |
| 1488 | int err; | 1500 | int err; |
| 1489 | bool old_softrepeat, old_softraw; | 1501 | bool old_softrepeat, old_softraw; |
| 1490 | 1502 | ||
| 1491 | if (!atkbd->write) | 1503 | if (!atkbd->write) |
| 1492 | return -EIO; | 1504 | return -EIO; |
| 1493 | 1505 | ||
| 1494 | if (strict_strtoul(buf, 10, &value) || value > 1) | 1506 | err = kstrtouint(buf, 10, &value); |
| 1507 | if (err) | ||
| 1508 | return err; | ||
| 1509 | |||
| 1510 | if (value > 1) | ||
| 1495 | return -EINVAL; | 1511 | return -EINVAL; |
| 1496 | 1512 | ||
| 1497 | if (atkbd->softrepeat != value) { | 1513 | if (atkbd->softrepeat != value) { |
| @@ -1534,11 +1550,15 @@ static ssize_t atkbd_show_softraw(struct atkbd *atkbd, char *buf) | |||
| 1534 | static ssize_t atkbd_set_softraw(struct atkbd *atkbd, const char *buf, size_t count) | 1550 | static ssize_t atkbd_set_softraw(struct atkbd *atkbd, const char *buf, size_t count) |
| 1535 | { | 1551 | { |
| 1536 | struct input_dev *old_dev, *new_dev; | 1552 | struct input_dev *old_dev, *new_dev; |
| 1537 | unsigned long value; | 1553 | unsigned int value; |
| 1538 | int err; | 1554 | int err; |
| 1539 | bool old_softraw; | 1555 | bool old_softraw; |
| 1540 | 1556 | ||
| 1541 | if (strict_strtoul(buf, 10, &value) || value > 1) | 1557 | err = kstrtouint(buf, 10, &value); |
| 1558 | if (err) | ||
| 1559 | return err; | ||
| 1560 | |||
| 1561 | if (value > 1) | ||
| 1542 | return -EINVAL; | 1562 | return -EINVAL; |
| 1543 | 1563 | ||
| 1544 | if (atkbd->softraw != value) { | 1564 | if (atkbd->softraw != value) { |
