[ETH]: Combine format_addr() with print_mac().
print_mac() used many most net drivers and format_addr() used by net-sysfs.c are very similar and they can be intergrated. format_addr() is also identically redefined in the qla4xxx iscsi driver. Export a new function sysfs_format_mac() to be used by net-sysfs, qla4xxx and others in the future. Both print_mac() and sysfs_format_mac() call _format_mac_addr() to do the formatting. Changed print_mac() to use unsigned char * to be consistent with net_device struct's dev_addr. Added buffer length overrun checking as suggested by Joe Perches. Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
21371f768b
commit
7ffc49a6ee
@ -173,18 +173,6 @@ static void qla4xxx_conn_stop(struct iscsi_cls_conn *conn, int flag)
|
||||
printk(KERN_ERR "iscsi: invalid stop flag %d\n", flag);
|
||||
}
|
||||
|
||||
static ssize_t format_addr(char *buf, const unsigned char *addr, int len)
|
||||
{
|
||||
int i;
|
||||
char *cp = buf;
|
||||
|
||||
for (i = 0; i < len; i++)
|
||||
cp += sprintf(cp, "%02x%c", addr[i],
|
||||
i == (len - 1) ? '\n' : ':');
|
||||
return cp - buf;
|
||||
}
|
||||
|
||||
|
||||
static int qla4xxx_host_get_param(struct Scsi_Host *shost,
|
||||
enum iscsi_host_param param, char *buf)
|
||||
{
|
||||
@ -193,7 +181,7 @@ static int qla4xxx_host_get_param(struct Scsi_Host *shost,
|
||||
|
||||
switch (param) {
|
||||
case ISCSI_HOST_PARAM_HWADDRESS:
|
||||
len = format_addr(buf, ha->my_mac, MAC_ADDR_LEN);
|
||||
len = sysfs_format_mac(buf, ha->my_mac, MAC_ADDR_LEN);
|
||||
break;
|
||||
case ISCSI_HOST_PARAM_IPADDRESS:
|
||||
len = sprintf(buf, "%d.%d.%d.%d\n", ha->ip_address[0],
|
||||
|
Reference in New Issue
Block a user