Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 635a2b3f authored by Andy Shevchenko's avatar Andy Shevchenko Committed by Nicholas Bellinger
Browse files

tcm_fc: remove custom hex_to_bin in ft_parse_wwn



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: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: "Nicholas A. Bellinger" <nab@linux-iscsi.org>
Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
parent f2b56afd
Loading
Loading
Loading
Loading
+5 −7
Original line number Original line Diff line number Diff line
@@ -31,6 +31,7 @@
#include <linux/types.h>
#include <linux/types.h>
#include <linux/string.h>
#include <linux/string.h>
#include <linux/configfs.h>
#include <linux/configfs.h>
#include <linux/kernel.h>
#include <linux/ctype.h>
#include <linux/ctype.h>
#include <asm/unaligned.h>
#include <asm/unaligned.h>
#include <scsi/scsi.h>
#include <scsi/scsi.h>
@@ -70,10 +71,10 @@ static ssize_t ft_parse_wwn(const char *name, u64 *wwn, int strict)
{
{
	const char *cp;
	const char *cp;
	char c;
	char c;
	u32 nibble;
	u32 byte = 0;
	u32 byte = 0;
	u32 pos = 0;
	u32 pos = 0;
	u32 err;
	u32 err;
	int val;


	*wwn = 0;
	*wwn = 0;
	for (cp = name; cp < &name[FT_NAMELEN - 1]; cp++) {
	for (cp = name; cp < &name[FT_NAMELEN - 1]; cp++) {
@@ -94,13 +95,10 @@ static ssize_t ft_parse_wwn(const char *name, u64 *wwn, int strict)
			return cp - name;
			return cp - name;
		}
		}
		err = 3;
		err = 3;
		if (isdigit(c))
		val = hex_to_bin(c);
			nibble = c - '0';
		if (val < 0 || (strict && isupper(c)))
		else if (isxdigit(c) && (islower(c) || !strict))
			nibble = tolower(c) - 'a' + 10;
		else
			goto fail;
			goto fail;
		*wwn = (*wwn << 4) | nibble;
		*wwn = (*wwn << 4) | val;
	}
	}
	err = 4;
	err = 4;
fail:
fail: