qlcnic: Enhance virtual NIC logging
Signed-off-by: Manish Chopra <manish.chopra@qlogic.com> Signed-off-by: Shahed Shaikh <shahed.shaikh@qlogic.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
2343f06a8c
commit
ee9e8b6c6e
@@ -442,6 +442,7 @@ struct qlcnic_hardware_context {
|
|||||||
u16 max_mtu;
|
u16 max_mtu;
|
||||||
u32 msg_enable;
|
u32 msg_enable;
|
||||||
u16 act_pci_func;
|
u16 act_pci_func;
|
||||||
|
u16 max_pci_func;
|
||||||
|
|
||||||
u32 capabilities;
|
u32 capabilities;
|
||||||
u32 capabilities2;
|
u32 capabilities2;
|
||||||
|
@@ -2134,26 +2134,25 @@ out:
|
|||||||
int qlcnic_83xx_get_pci_info(struct qlcnic_adapter *adapter,
|
int qlcnic_83xx_get_pci_info(struct qlcnic_adapter *adapter,
|
||||||
struct qlcnic_pci_info *pci_info)
|
struct qlcnic_pci_info *pci_info)
|
||||||
{
|
{
|
||||||
|
struct qlcnic_hardware_context *ahw = adapter->ahw;
|
||||||
|
struct device *dev = &adapter->pdev->dev;
|
||||||
|
struct qlcnic_cmd_args cmd;
|
||||||
int i, err = 0, j = 0;
|
int i, err = 0, j = 0;
|
||||||
u32 temp;
|
u32 temp;
|
||||||
struct qlcnic_cmd_args cmd;
|
|
||||||
|
|
||||||
qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_GET_PCI_INFO);
|
qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_GET_PCI_INFO);
|
||||||
err = qlcnic_issue_cmd(adapter, &cmd);
|
err = qlcnic_issue_cmd(adapter, &cmd);
|
||||||
|
|
||||||
adapter->ahw->act_pci_func = 0;
|
ahw->act_pci_func = 0;
|
||||||
if (err == QLCNIC_RCODE_SUCCESS) {
|
if (err == QLCNIC_RCODE_SUCCESS) {
|
||||||
pci_info->func_count = cmd.rsp.arg[1] & 0xFF;
|
ahw->max_pci_func = cmd.rsp.arg[1] & 0xFF;
|
||||||
dev_info(&adapter->pdev->dev,
|
|
||||||
"%s: total functions = %d\n",
|
|
||||||
__func__, pci_info->func_count);
|
|
||||||
for (i = 2, j = 0; j < QLCNIC_MAX_PCI_FUNC; j++, pci_info++) {
|
for (i = 2, j = 0; j < QLCNIC_MAX_PCI_FUNC; j++, pci_info++) {
|
||||||
pci_info->id = cmd.rsp.arg[i] & 0xFFFF;
|
pci_info->id = cmd.rsp.arg[i] & 0xFFFF;
|
||||||
pci_info->active = (cmd.rsp.arg[i] & 0xFFFF0000) >> 16;
|
pci_info->active = (cmd.rsp.arg[i] & 0xFFFF0000) >> 16;
|
||||||
i++;
|
i++;
|
||||||
pci_info->type = cmd.rsp.arg[i] & 0xFFFF;
|
pci_info->type = cmd.rsp.arg[i] & 0xFFFF;
|
||||||
if (pci_info->type == QLCNIC_TYPE_NIC)
|
if (pci_info->type == QLCNIC_TYPE_NIC)
|
||||||
adapter->ahw->act_pci_func++;
|
ahw->act_pci_func++;
|
||||||
temp = (cmd.rsp.arg[i] & 0xFFFF0000) >> 16;
|
temp = (cmd.rsp.arg[i] & 0xFFFF0000) >> 16;
|
||||||
pci_info->default_port = temp;
|
pci_info->default_port = temp;
|
||||||
i++;
|
i++;
|
||||||
@@ -2165,18 +2164,21 @@ int qlcnic_83xx_get_pci_info(struct qlcnic_adapter *adapter,
|
|||||||
i++;
|
i++;
|
||||||
memcpy(pci_info->mac + sizeof(u32), &cmd.rsp.arg[i], 2);
|
memcpy(pci_info->mac + sizeof(u32), &cmd.rsp.arg[i], 2);
|
||||||
i = i + 3;
|
i = i + 3;
|
||||||
|
if (ahw->op_mode == QLCNIC_MGMT_FUNC)
|
||||||
dev_info(&adapter->pdev->dev, "%s:\n"
|
dev_info(dev, "id = %d active = %d type = %d\n"
|
||||||
"\tid = %d active = %d type = %d\n"
|
|
||||||
"\tport = %d min bw = %d max bw = %d\n"
|
"\tport = %d min bw = %d max bw = %d\n"
|
||||||
"\tmac_addr = %pM\n", __func__,
|
"\tmac_addr = %pM\n", pci_info->id,
|
||||||
pci_info->id, pci_info->active, pci_info->type,
|
pci_info->active, pci_info->type,
|
||||||
pci_info->default_port, pci_info->tx_min_bw,
|
pci_info->default_port,
|
||||||
|
pci_info->tx_min_bw,
|
||||||
pci_info->tx_max_bw, pci_info->mac);
|
pci_info->tx_max_bw, pci_info->mac);
|
||||||
}
|
}
|
||||||
|
if (ahw->op_mode == QLCNIC_MGMT_FUNC)
|
||||||
|
dev_info(dev, "Max vNIC functions = %d, active vNIC functions = %d\n",
|
||||||
|
ahw->max_pci_func, ahw->act_pci_func);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
dev_err(&adapter->pdev->dev, "Failed to get PCI Info%d\n",
|
dev_err(dev, "Failed to get PCI Info, error = %d\n", err);
|
||||||
err);
|
|
||||||
err = -EIO;
|
err = -EIO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -885,9 +885,10 @@ int qlcnic_82xx_get_pci_info(struct qlcnic_adapter *adapter,
|
|||||||
int qlcnic_config_port_mirroring(struct qlcnic_adapter *adapter, u8 id,
|
int qlcnic_config_port_mirroring(struct qlcnic_adapter *adapter, u8 id,
|
||||||
u8 enable_mirroring, u8 pci_func)
|
u8 enable_mirroring, u8 pci_func)
|
||||||
{
|
{
|
||||||
|
struct device *dev = &adapter->pdev->dev;
|
||||||
|
struct qlcnic_cmd_args cmd;
|
||||||
int err = -EIO;
|
int err = -EIO;
|
||||||
u32 arg1;
|
u32 arg1;
|
||||||
struct qlcnic_cmd_args cmd;
|
|
||||||
|
|
||||||
if (adapter->ahw->op_mode != QLCNIC_MGMT_FUNC ||
|
if (adapter->ahw->op_mode != QLCNIC_MGMT_FUNC ||
|
||||||
!(adapter->eswitch[id].flags & QLCNIC_SWITCH_ENABLE))
|
!(adapter->eswitch[id].flags & QLCNIC_SWITCH_ENABLE))
|
||||||
@@ -901,13 +902,11 @@ int qlcnic_config_port_mirroring(struct qlcnic_adapter *adapter, u8 id,
|
|||||||
err = qlcnic_issue_cmd(adapter, &cmd);
|
err = qlcnic_issue_cmd(adapter, &cmd);
|
||||||
|
|
||||||
if (err != QLCNIC_RCODE_SUCCESS)
|
if (err != QLCNIC_RCODE_SUCCESS)
|
||||||
dev_err(&adapter->pdev->dev,
|
dev_err(dev, "Failed to configure port mirroring for vNIC function %d on eSwitch %d\n",
|
||||||
"Failed to configure port mirroring%d on eswitch:%d\n",
|
|
||||||
pci_func, id);
|
pci_func, id);
|
||||||
else
|
else
|
||||||
dev_info(&adapter->pdev->dev,
|
dev_info(dev, "Configured port mirroring for vNIC function %d on eSwitch %d\n",
|
||||||
"Configured eSwitch %d for port mirroring:%d\n",
|
pci_func, id);
|
||||||
id, pci_func);
|
|
||||||
qlcnic_free_mbx_args(&cmd);
|
qlcnic_free_mbx_args(&cmd);
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
@@ -1122,14 +1121,13 @@ err_ret:
|
|||||||
return -EIO;
|
return -EIO;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int __qlcnic_get_eswitch_port_config(struct qlcnic_adapter *adapter,
|
||||||
__qlcnic_get_eswitch_port_config(struct qlcnic_adapter *adapter,
|
|
||||||
u32 *arg1, u32 *arg2)
|
u32 *arg1, u32 *arg2)
|
||||||
{
|
{
|
||||||
int err = -EIO;
|
struct device *dev = &adapter->pdev->dev;
|
||||||
struct qlcnic_cmd_args cmd;
|
struct qlcnic_cmd_args cmd;
|
||||||
u8 pci_func;
|
u8 pci_func = *arg1 >> 8;
|
||||||
pci_func = (*arg1 >> 8);
|
int err = -EIO;
|
||||||
|
|
||||||
qlcnic_alloc_mbx_args(&cmd, adapter,
|
qlcnic_alloc_mbx_args(&cmd, adapter,
|
||||||
QLCNIC_CMD_GET_ESWITCH_PORT_CONFIG);
|
QLCNIC_CMD_GET_ESWITCH_PORT_CONFIG);
|
||||||
@@ -1140,11 +1138,10 @@ __qlcnic_get_eswitch_port_config(struct qlcnic_adapter *adapter,
|
|||||||
qlcnic_free_mbx_args(&cmd);
|
qlcnic_free_mbx_args(&cmd);
|
||||||
|
|
||||||
if (err == QLCNIC_RCODE_SUCCESS)
|
if (err == QLCNIC_RCODE_SUCCESS)
|
||||||
dev_info(&adapter->pdev->dev,
|
dev_info(dev, "Get eSwitch port config for vNIC function %d\n",
|
||||||
"eSwitch port config for pci func %d\n", pci_func);
|
pci_func);
|
||||||
else
|
else
|
||||||
dev_err(&adapter->pdev->dev,
|
dev_err(dev, "Failed to get eswitch port config for vNIC function %d\n",
|
||||||
"Failed to get eswitch port config for pci func %d\n",
|
|
||||||
pci_func);
|
pci_func);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
@@ -1158,9 +1155,10 @@ op_type = 1 for port vlan_id
|
|||||||
int qlcnic_config_switch_port(struct qlcnic_adapter *adapter,
|
int qlcnic_config_switch_port(struct qlcnic_adapter *adapter,
|
||||||
struct qlcnic_esw_func_cfg *esw_cfg)
|
struct qlcnic_esw_func_cfg *esw_cfg)
|
||||||
{
|
{
|
||||||
|
struct device *dev = &adapter->pdev->dev;
|
||||||
|
struct qlcnic_cmd_args cmd;
|
||||||
int err = -EIO, index;
|
int err = -EIO, index;
|
||||||
u32 arg1, arg2 = 0;
|
u32 arg1, arg2 = 0;
|
||||||
struct qlcnic_cmd_args cmd;
|
|
||||||
u8 pci_func;
|
u8 pci_func;
|
||||||
|
|
||||||
if (adapter->ahw->op_mode != QLCNIC_MGMT_FUNC)
|
if (adapter->ahw->op_mode != QLCNIC_MGMT_FUNC)
|
||||||
@@ -1217,11 +1215,11 @@ int qlcnic_config_switch_port(struct qlcnic_adapter *adapter,
|
|||||||
qlcnic_free_mbx_args(&cmd);
|
qlcnic_free_mbx_args(&cmd);
|
||||||
|
|
||||||
if (err != QLCNIC_RCODE_SUCCESS)
|
if (err != QLCNIC_RCODE_SUCCESS)
|
||||||
dev_err(&adapter->pdev->dev,
|
dev_err(dev, "Failed to configure eswitch for vNIC function %d\n",
|
||||||
"Failed to configure eswitch pci func %d\n", pci_func);
|
pci_func);
|
||||||
else
|
else
|
||||||
dev_info(&adapter->pdev->dev,
|
dev_info(dev, "Configured eSwitch for vNIC function %d\n",
|
||||||
"Configured eSwitch for pci func %d\n", pci_func);
|
pci_func);
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user