isdn/hysdn: Convert to kstrtoul_from_user
authorPeter Hüwe <PeterHuewe@gmx.de>
Sat, 14 Apr 2012 13:42:59 +0000 (13:42 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sun, 15 Apr 2012 07:23:31 +0000 (03:23 -0400)
This patch replaces the code for getting an number from a
userspace buffer by a simple call to kstroul_from_user.
This makes it easier to read and less error prone.

Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/isdn/hysdn/hysdn_proclog.c

index ba91333e3e41fca11c05a1cfb69005a235c0819c..88e4f0ee073cf8efc7c95cbae29e6db405d319a8 100644 (file)
@@ -156,17 +156,9 @@ static ssize_t
 hysdn_log_write(struct file *file, const char __user *buf, size_t count, loff_t *off)
 {
        int rc;
-       unsigned char valbuf[128];
        hysdn_card *card = file->private_data;
 
-       if (count > (sizeof(valbuf) - 1))
-               count = sizeof(valbuf) - 1;     /* limit length */
-       if (copy_from_user(valbuf, buf, count))
-               return (-EFAULT);       /* copy failed */
-
-       valbuf[count] = 0;      /* terminating 0 */
-
-       rc = kstrtoul(valbuf, 0, &card->debug_flags);
+       rc = kstrtoul_from_user(buf, count, 0, &card->debug_flags);
        if (rc < 0)
                return rc;
        hysdn_addlog(card, "debug set to 0x%lx", card->debug_flags);