[SCSI] be2iscsi: Fix repeated issue of MAC ADDR get IOCTL
Storing MAC ADDR of each function in it's priv structure to avoid issuing MAC_ADDR get IOCTL. Based on a flag set/unset it's decided if MAC_ADDR is stored in priv structure or IOCTL needs to be issued. Signed-off-by: John Soni Jose <sony.john-n@emulex.com> Signed-off-by: Jayamohan Kallickal <jayamohan.kallickal@emulex.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
This commit is contained in:
parent
e074d20f9b
commit
6c83185a72
|
@ -840,7 +840,7 @@ int beiscsi_get_macaddr(char *buf, struct beiscsi_hba *phba)
|
|||
struct be_cmd_get_nic_conf_resp resp;
|
||||
int rc;
|
||||
|
||||
if (strlen(phba->mac_address))
|
||||
if (phba->mac_addr_set)
|
||||
return sysfs_format_mac(buf, phba->mac_address, ETH_ALEN);
|
||||
|
||||
memset(&resp, 0, sizeof(resp));
|
||||
|
@ -848,6 +848,7 @@ int beiscsi_get_macaddr(char *buf, struct beiscsi_hba *phba)
|
|||
if (rc)
|
||||
return rc;
|
||||
|
||||
phba->mac_addr_set = true;
|
||||
memcpy(phba->mac_address, resp.mac_address, ETH_ALEN);
|
||||
return sysfs_format_mac(buf, phba->mac_address, ETH_ALEN);
|
||||
}
|
||||
|
|
|
@ -4948,6 +4948,7 @@ static int beiscsi_dev_probe(struct pci_dev *pcidev,
|
|||
beiscsi_hba_attrs_init(phba);
|
||||
|
||||
phba->fw_timeout = false;
|
||||
phba->mac_addr_set = false;
|
||||
|
||||
|
||||
switch (pcidev->device) {
|
||||
|
|
|
@ -348,6 +348,7 @@ struct beiscsi_hba {
|
|||
bool ue_detected;
|
||||
struct delayed_work beiscsi_hw_check_task;
|
||||
|
||||
bool mac_addr_set;
|
||||
u8 mac_address[ETH_ALEN];
|
||||
char fw_ver_str[BEISCSI_VER_STRLEN];
|
||||
char wq_name[20];
|
||||
|
|
Loading…
Reference in New Issue