Commit 6c83185a authored by Jayamohan Kallickal's avatar Jayamohan Kallickal Committed by James Bottomley

[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: default avatarJohn Soni Jose <sony.john-n@emulex.com>
Signed-off-by: default avatarJayamohan Kallickal <jayamohan.kallickal@emulex.com>
Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
parent e074d20f
...@@ -840,7 +840,7 @@ int beiscsi_get_macaddr(char *buf, struct beiscsi_hba *phba) ...@@ -840,7 +840,7 @@ int beiscsi_get_macaddr(char *buf, struct beiscsi_hba *phba)
struct be_cmd_get_nic_conf_resp resp; struct be_cmd_get_nic_conf_resp resp;
int rc; int rc;
if (strlen(phba->mac_address)) if (phba->mac_addr_set)
return sysfs_format_mac(buf, phba->mac_address, ETH_ALEN); return sysfs_format_mac(buf, phba->mac_address, ETH_ALEN);
memset(&resp, 0, sizeof(resp)); memset(&resp, 0, sizeof(resp));
...@@ -848,6 +848,7 @@ int beiscsi_get_macaddr(char *buf, struct beiscsi_hba *phba) ...@@ -848,6 +848,7 @@ int beiscsi_get_macaddr(char *buf, struct beiscsi_hba *phba)
if (rc) if (rc)
return rc; return rc;
phba->mac_addr_set = true;
memcpy(phba->mac_address, resp.mac_address, ETH_ALEN); memcpy(phba->mac_address, resp.mac_address, ETH_ALEN);
return sysfs_format_mac(buf, phba->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, ...@@ -4948,6 +4948,7 @@ static int beiscsi_dev_probe(struct pci_dev *pcidev,
beiscsi_hba_attrs_init(phba); beiscsi_hba_attrs_init(phba);
phba->fw_timeout = false; phba->fw_timeout = false;
phba->mac_addr_set = false;
switch (pcidev->device) { switch (pcidev->device) {
......
...@@ -348,6 +348,7 @@ struct beiscsi_hba { ...@@ -348,6 +348,7 @@ struct beiscsi_hba {
bool ue_detected; bool ue_detected;
struct delayed_work beiscsi_hw_check_task; struct delayed_work beiscsi_hw_check_task;
bool mac_addr_set;
u8 mac_address[ETH_ALEN]; u8 mac_address[ETH_ALEN];
char fw_ver_str[BEISCSI_VER_STRLEN]; char fw_ver_str[BEISCSI_VER_STRLEN];
char wq_name[20]; char wq_name[20];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment