scsi: libsas: remove private hex2bin() implementation
The function sas_parse_addr() could be easily substituted by hex2bin() which is in kernel library code. Cc: Christoph Hellwig <hch@lst.de> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Tested-by: Xiang Chen <chenxiang66@hisilicon.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
d754941225
commit
9ea4e076bd
|
@ -27,6 +27,7 @@
|
||||||
#include <linux/firmware.h>
|
#include <linux/firmware.h>
|
||||||
#include <linux/export.h>
|
#include <linux/export.h>
|
||||||
#include <linux/ctype.h>
|
#include <linux/ctype.h>
|
||||||
|
#include <linux/kernel.h>
|
||||||
|
|
||||||
#include "sas_internal.h"
|
#include "sas_internal.h"
|
||||||
|
|
||||||
|
@ -946,21 +947,6 @@ void sas_target_destroy(struct scsi_target *starget)
|
||||||
sas_put_device(found_dev);
|
sas_put_device(found_dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sas_parse_addr(u8 *sas_addr, const char *p)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
for (i = 0; i < SAS_ADDR_SIZE; i++) {
|
|
||||||
u8 h, l;
|
|
||||||
if (!*p)
|
|
||||||
break;
|
|
||||||
h = isdigit(*p) ? *p-'0' : toupper(*p)-'A'+10;
|
|
||||||
p++;
|
|
||||||
l = isdigit(*p) ? *p-'0' : toupper(*p)-'A'+10;
|
|
||||||
p++;
|
|
||||||
sas_addr[i] = (h<<4) | l;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#define SAS_STRING_ADDR_SIZE 16
|
#define SAS_STRING_ADDR_SIZE 16
|
||||||
|
|
||||||
int sas_request_addr(struct Scsi_Host *shost, u8 *addr)
|
int sas_request_addr(struct Scsi_Host *shost, u8 *addr)
|
||||||
|
@ -977,7 +963,9 @@ int sas_request_addr(struct Scsi_Host *shost, u8 *addr)
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
sas_parse_addr(addr, fw->data);
|
res = hex2bin(addr, fw->data, strnlen(fw->data, SAS_ADDR_SIZE * 2) / 2);
|
||||||
|
if (res)
|
||||||
|
goto out;
|
||||||
|
|
||||||
out:
|
out:
|
||||||
release_firmware(fw);
|
release_firmware(fw);
|
||||||
|
|
Loading…
Reference in New Issue