amd-xgbe: Fix debugfs compatibility change with kstrtouint
authorLendacky, Thomas <Thomas.Lendacky@amd.com>
Wed, 2 Jul 2014 18:04:28 +0000 (13:04 -0500)
committerDavid S. Miller <davem@davemloft.net>
Tue, 8 Jul 2014 04:38:06 +0000 (21:38 -0700)
The initial change from sscanf to kstrtouint broke backward
compatbility by using a base of "0" in the kstrtouint call.
This allowed for entering decimal, hexadecimal or octal as
input where previously the sscanf always interpreted the input
as hexadecimal.  Additionally, -EIO was returned on error prior
to this change and now it is whatever the error value that is
returned by kstrtouint.

Change the base value of the kstrtouint from 0 to 16 and return
-EIO on error.

Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
Reported-by: Joe Perches <joe@perches.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/amd/xgbe/xgbe-debugfs.c

index 81198587a6c6887e2a7d88ae23837a5d38573325..346592dca33ce98dd94e24f33f99eabb373f60cb 100644 (file)
@@ -165,9 +165,9 @@ static ssize_t xgbe_common_write(const char __user *buffer, size_t count,
                return len;
 
        workarea[len] = '\0';
-       ret = kstrtouint(workarea, 0, value);
+       ret = kstrtouint(workarea, 16, value);
        if (ret)
-               return ret;
+               return -EIO;
 
        return len;
 }