This patch converts ft_parse_wwn() to use hex_to_bin() instead of custom
conversion code.
(Andy: Re-add missing strict && isupper(c) check)
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: "Nicholas A. Bellinger" <nab@linux-iscsi.org>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
 #include <linux/types.h>
 #include <linux/string.h>
 #include <linux/configfs.h>
+#include <linux/kernel.h>
 #include <linux/ctype.h>
 #include <asm/unaligned.h>
 #include <scsi/scsi.h>
 {
        const char *cp;
        char c;
-       u32 nibble;
        u32 byte = 0;
        u32 pos = 0;
        u32 err;
+       int val;
 
        *wwn = 0;
        for (cp = name; cp < &name[FT_NAMELEN - 1]; cp++) {
                        return cp - name;
                }
                err = 3;
-               if (isdigit(c))
-                       nibble = c - '0';
-               else if (isxdigit(c) && (islower(c) || !strict))
-                       nibble = tolower(c) - 'a' + 10;
-               else
+               val = hex_to_bin(c);
+               if (val < 0 || (strict && isupper(c)))
                        goto fail;
-               *wwn = (*wwn << 4) | nibble;
+               *wwn = (*wwn << 4) | val;
        }
        err = 4;
 fail: