i40e: removed unreachable code
Removed some of unnecessary if statements and unreachable code found by static code analysis tool. The return value of i40e_vsi_control_rings(..., false) is always 0. So, test for non-zero will never be true. The function has been split into "int i40e_vsi_start_rings()" and "void i40e_vsi_stop_rings()" for better understanding. Similarly, the function i40e_vsi_kill_vlan() never fails. So, checking for return value is also unnecessary. Function definition changed to void. The i40e_loopback_test() function is not implemented. The function and all references to loopback testing were removed. Change-ID: Id45cf66f6689ce2bc4e887de13f073e30e8431bd Signed-off-by: Filip Sadowski <filip.sadowski@intel.com> Tested-by: Andrew Bowers <andrewx.bowers@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>hifive-unleashed-5.1
parent
81fa7c97be
commit
3aa7b74dbe
|
@ -773,7 +773,8 @@ void i40e_service_event_schedule(struct i40e_pf *pf);
|
||||||
void i40e_notify_client_of_vf_msg(struct i40e_vsi *vsi, u32 vf_id,
|
void i40e_notify_client_of_vf_msg(struct i40e_vsi *vsi, u32 vf_id,
|
||||||
u8 *msg, u16 len);
|
u8 *msg, u16 len);
|
||||||
|
|
||||||
int i40e_vsi_control_rings(struct i40e_vsi *vsi, bool enable);
|
int i40e_vsi_start_rings(struct i40e_vsi *vsi);
|
||||||
|
void i40e_vsi_stop_rings(struct i40e_vsi *vsi);
|
||||||
int i40e_reconfig_rss_queues(struct i40e_pf *pf, int queue_count);
|
int i40e_reconfig_rss_queues(struct i40e_pf *pf, int queue_count);
|
||||||
struct i40e_veb *i40e_veb_setup(struct i40e_pf *pf, u16 flags, u16 uplink_seid,
|
struct i40e_veb *i40e_veb_setup(struct i40e_pf *pf, u16 flags, u16 uplink_seid,
|
||||||
u16 downlink_seid, u8 enabled_tc);
|
u16 downlink_seid, u8 enabled_tc);
|
||||||
|
@ -849,7 +850,7 @@ int i40e_close(struct net_device *netdev);
|
||||||
int i40e_vsi_open(struct i40e_vsi *vsi);
|
int i40e_vsi_open(struct i40e_vsi *vsi);
|
||||||
void i40e_vlan_stripping_disable(struct i40e_vsi *vsi);
|
void i40e_vlan_stripping_disable(struct i40e_vsi *vsi);
|
||||||
int i40e_vsi_add_vlan(struct i40e_vsi *vsi, s16 vid);
|
int i40e_vsi_add_vlan(struct i40e_vsi *vsi, s16 vid);
|
||||||
int i40e_vsi_kill_vlan(struct i40e_vsi *vsi, s16 vid);
|
void i40e_vsi_kill_vlan(struct i40e_vsi *vsi, s16 vid);
|
||||||
struct i40e_mac_filter *i40e_put_mac_in_vlan(struct i40e_vsi *vsi,
|
struct i40e_mac_filter *i40e_put_mac_in_vlan(struct i40e_vsi *vsi,
|
||||||
const u8 *macaddr);
|
const u8 *macaddr);
|
||||||
int i40e_del_mac_all_vlan(struct i40e_vsi *vsi, const u8 *macaddr);
|
int i40e_del_mac_all_vlan(struct i40e_vsi *vsi, const u8 *macaddr);
|
||||||
|
|
|
@ -216,7 +216,6 @@ enum i40e_ethtool_test_id {
|
||||||
I40E_ETH_TEST_REG = 0,
|
I40E_ETH_TEST_REG = 0,
|
||||||
I40E_ETH_TEST_EEPROM,
|
I40E_ETH_TEST_EEPROM,
|
||||||
I40E_ETH_TEST_INTR,
|
I40E_ETH_TEST_INTR,
|
||||||
I40E_ETH_TEST_LOOPBACK,
|
|
||||||
I40E_ETH_TEST_LINK,
|
I40E_ETH_TEST_LINK,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -224,7 +223,6 @@ static const char i40e_gstrings_test[][ETH_GSTRING_LEN] = {
|
||||||
"Register test (offline)",
|
"Register test (offline)",
|
||||||
"Eeprom test (offline)",
|
"Eeprom test (offline)",
|
||||||
"Interrupt test (offline)",
|
"Interrupt test (offline)",
|
||||||
"Loopback test (offline)",
|
|
||||||
"Link test (on/offline)"
|
"Link test (on/offline)"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1744,17 +1742,6 @@ static int i40e_intr_test(struct net_device *netdev, u64 *data)
|
||||||
return *data;
|
return *data;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int i40e_loopback_test(struct net_device *netdev, u64 *data)
|
|
||||||
{
|
|
||||||
struct i40e_netdev_priv *np = netdev_priv(netdev);
|
|
||||||
struct i40e_pf *pf = np->vsi->back;
|
|
||||||
|
|
||||||
netif_info(pf, hw, netdev, "loopback test not implemented\n");
|
|
||||||
*data = 0;
|
|
||||||
|
|
||||||
return *data;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline bool i40e_active_vfs(struct i40e_pf *pf)
|
static inline bool i40e_active_vfs(struct i40e_pf *pf)
|
||||||
{
|
{
|
||||||
struct i40e_vf *vfs = pf->vf;
|
struct i40e_vf *vfs = pf->vf;
|
||||||
|
@ -1790,7 +1777,6 @@ static void i40e_diag_test(struct net_device *netdev,
|
||||||
data[I40E_ETH_TEST_REG] = 1;
|
data[I40E_ETH_TEST_REG] = 1;
|
||||||
data[I40E_ETH_TEST_EEPROM] = 1;
|
data[I40E_ETH_TEST_EEPROM] = 1;
|
||||||
data[I40E_ETH_TEST_INTR] = 1;
|
data[I40E_ETH_TEST_INTR] = 1;
|
||||||
data[I40E_ETH_TEST_LOOPBACK] = 1;
|
|
||||||
data[I40E_ETH_TEST_LINK] = 1;
|
data[I40E_ETH_TEST_LINK] = 1;
|
||||||
eth_test->flags |= ETH_TEST_FL_FAILED;
|
eth_test->flags |= ETH_TEST_FL_FAILED;
|
||||||
clear_bit(__I40E_TESTING, &pf->state);
|
clear_bit(__I40E_TESTING, &pf->state);
|
||||||
|
@ -1818,9 +1804,6 @@ static void i40e_diag_test(struct net_device *netdev,
|
||||||
if (i40e_intr_test(netdev, &data[I40E_ETH_TEST_INTR]))
|
if (i40e_intr_test(netdev, &data[I40E_ETH_TEST_INTR]))
|
||||||
eth_test->flags |= ETH_TEST_FL_FAILED;
|
eth_test->flags |= ETH_TEST_FL_FAILED;
|
||||||
|
|
||||||
if (i40e_loopback_test(netdev, &data[I40E_ETH_TEST_LOOPBACK]))
|
|
||||||
eth_test->flags |= ETH_TEST_FL_FAILED;
|
|
||||||
|
|
||||||
/* run reg test last, a reset is required after it */
|
/* run reg test last, a reset is required after it */
|
||||||
if (i40e_reg_test(netdev, &data[I40E_ETH_TEST_REG]))
|
if (i40e_reg_test(netdev, &data[I40E_ETH_TEST_REG]))
|
||||||
eth_test->flags |= ETH_TEST_FL_FAILED;
|
eth_test->flags |= ETH_TEST_FL_FAILED;
|
||||||
|
@ -1841,7 +1824,6 @@ static void i40e_diag_test(struct net_device *netdev,
|
||||||
data[I40E_ETH_TEST_REG] = 0;
|
data[I40E_ETH_TEST_REG] = 0;
|
||||||
data[I40E_ETH_TEST_EEPROM] = 0;
|
data[I40E_ETH_TEST_EEPROM] = 0;
|
||||||
data[I40E_ETH_TEST_INTR] = 0;
|
data[I40E_ETH_TEST_INTR] = 0;
|
||||||
data[I40E_ETH_TEST_LOOPBACK] = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
skip_ol_tests:
|
skip_ol_tests:
|
||||||
|
|
|
@ -2503,10 +2503,8 @@ int i40e_vsi_add_vlan(struct i40e_vsi *vsi, s16 vid)
|
||||||
* i40e_vsi_kill_vlan - Remove vsi membership for given vlan
|
* i40e_vsi_kill_vlan - Remove vsi membership for given vlan
|
||||||
* @vsi: the vsi being configured
|
* @vsi: the vsi being configured
|
||||||
* @vid: vlan id to be removed (0 = untagged only , -1 = any)
|
* @vid: vlan id to be removed (0 = untagged only , -1 = any)
|
||||||
*
|
|
||||||
* Return: 0 on success or negative otherwise
|
|
||||||
**/
|
**/
|
||||||
int i40e_vsi_kill_vlan(struct i40e_vsi *vsi, s16 vid)
|
void i40e_vsi_kill_vlan(struct i40e_vsi *vsi, s16 vid)
|
||||||
{
|
{
|
||||||
struct net_device *netdev = vsi->netdev;
|
struct net_device *netdev = vsi->netdev;
|
||||||
struct i40e_mac_filter *f;
|
struct i40e_mac_filter *f;
|
||||||
|
@ -2530,7 +2528,6 @@ int i40e_vsi_kill_vlan(struct i40e_vsi *vsi, s16 vid)
|
||||||
* applying the new filter changes
|
* applying the new filter changes
|
||||||
*/
|
*/
|
||||||
i40e_service_event_schedule(vsi->back);
|
i40e_service_event_schedule(vsi->back);
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -4017,29 +4014,35 @@ static int i40e_vsi_control_rx(struct i40e_vsi *vsi, bool enable)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* i40e_vsi_control_rings - Start or stop a VSI's rings
|
* i40e_vsi_start_rings - Start a VSI's rings
|
||||||
* @vsi: the VSI being configured
|
* @vsi: the VSI being configured
|
||||||
* @enable: start or stop the rings
|
|
||||||
**/
|
**/
|
||||||
int i40e_vsi_control_rings(struct i40e_vsi *vsi, bool request)
|
int i40e_vsi_start_rings(struct i40e_vsi *vsi)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
/* do rx first for enable and last for disable */
|
/* do rx first for enable and last for disable */
|
||||||
if (request) {
|
ret = i40e_vsi_control_rx(vsi, true);
|
||||||
ret = i40e_vsi_control_rx(vsi, request);
|
if (ret)
|
||||||
if (ret)
|
return ret;
|
||||||
return ret;
|
ret = i40e_vsi_control_tx(vsi, true);
|
||||||
ret = i40e_vsi_control_tx(vsi, request);
|
|
||||||
} else {
|
|
||||||
/* Ignore return value, we need to shutdown whatever we can */
|
|
||||||
i40e_vsi_control_tx(vsi, request);
|
|
||||||
i40e_vsi_control_rx(vsi, request);
|
|
||||||
}
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* i40e_vsi_stop_rings - Stop a VSI's rings
|
||||||
|
* @vsi: the VSI being configured
|
||||||
|
**/
|
||||||
|
void i40e_vsi_stop_rings(struct i40e_vsi *vsi)
|
||||||
|
{
|
||||||
|
/* do rx first for enable and last for disable
|
||||||
|
* Ignore return value, we need to shutdown whatever we can
|
||||||
|
*/
|
||||||
|
i40e_vsi_control_tx(vsi, false);
|
||||||
|
i40e_vsi_control_rx(vsi, false);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* i40e_vsi_free_irq - Free the irq association with the OS
|
* i40e_vsi_free_irq - Free the irq association with the OS
|
||||||
* @vsi: the VSI being configured
|
* @vsi: the VSI being configured
|
||||||
|
@ -5238,7 +5241,7 @@ static int i40e_up_complete(struct i40e_vsi *vsi)
|
||||||
i40e_configure_msi_and_legacy(vsi);
|
i40e_configure_msi_and_legacy(vsi);
|
||||||
|
|
||||||
/* start rings */
|
/* start rings */
|
||||||
err = i40e_vsi_control_rings(vsi, true);
|
err = i40e_vsi_start_rings(vsi);
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
|
@ -5335,7 +5338,7 @@ void i40e_down(struct i40e_vsi *vsi)
|
||||||
netif_tx_disable(vsi->netdev);
|
netif_tx_disable(vsi->netdev);
|
||||||
}
|
}
|
||||||
i40e_vsi_disable_irq(vsi);
|
i40e_vsi_disable_irq(vsi);
|
||||||
i40e_vsi_control_rings(vsi, false);
|
i40e_vsi_stop_rings(vsi);
|
||||||
i40e_napi_disable_all(vsi);
|
i40e_napi_disable_all(vsi);
|
||||||
|
|
||||||
for (i = 0; i < vsi->num_queue_pairs; i++) {
|
for (i = 0; i < vsi->num_queue_pairs; i++) {
|
||||||
|
|
|
@ -991,7 +991,7 @@ void i40e_reset_vf(struct i40e_vf *vf, bool flr)
|
||||||
if (vf->lan_vsi_idx == 0)
|
if (vf->lan_vsi_idx == 0)
|
||||||
goto complete_reset;
|
goto complete_reset;
|
||||||
|
|
||||||
i40e_vsi_control_rings(pf->vsi[vf->lan_vsi_idx], false);
|
i40e_vsi_stop_rings(pf->vsi[vf->lan_vsi_idx]);
|
||||||
complete_reset:
|
complete_reset:
|
||||||
/* reallocate VF resources to reset the VSI state */
|
/* reallocate VF resources to reset the VSI state */
|
||||||
i40e_free_vf_res(vf);
|
i40e_free_vf_res(vf);
|
||||||
|
@ -1032,8 +1032,7 @@ void i40e_free_vfs(struct i40e_pf *pf)
|
||||||
i40e_notify_client_of_vf_enable(pf, 0);
|
i40e_notify_client_of_vf_enable(pf, 0);
|
||||||
for (i = 0; i < pf->num_alloc_vfs; i++)
|
for (i = 0; i < pf->num_alloc_vfs; i++)
|
||||||
if (test_bit(I40E_VF_STAT_INIT, &pf->vf[i].vf_states))
|
if (test_bit(I40E_VF_STAT_INIT, &pf->vf[i].vf_states))
|
||||||
i40e_vsi_control_rings(pf->vsi[pf->vf[i].lan_vsi_idx],
|
i40e_vsi_stop_rings(pf->vsi[pf->vf[i].lan_vsi_idx]);
|
||||||
false);
|
|
||||||
|
|
||||||
/* Disable IOV before freeing resources. This lets any VF drivers
|
/* Disable IOV before freeing resources. This lets any VF drivers
|
||||||
* running in the host get themselves cleaned up before we yank
|
* running in the host get themselves cleaned up before we yank
|
||||||
|
@ -1759,7 +1758,7 @@ static int i40e_vc_enable_queues_msg(struct i40e_vf *vf, u8 *msg, u16 msglen)
|
||||||
goto error_param;
|
goto error_param;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (i40e_vsi_control_rings(pf->vsi[vf->lan_vsi_idx], true))
|
if (i40e_vsi_start_rings(pf->vsi[vf->lan_vsi_idx]))
|
||||||
aq_ret = I40E_ERR_TIMEOUT;
|
aq_ret = I40E_ERR_TIMEOUT;
|
||||||
error_param:
|
error_param:
|
||||||
/* send the response to the VF */
|
/* send the response to the VF */
|
||||||
|
@ -1798,8 +1797,7 @@ static int i40e_vc_disable_queues_msg(struct i40e_vf *vf, u8 *msg, u16 msglen)
|
||||||
goto error_param;
|
goto error_param;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (i40e_vsi_control_rings(pf->vsi[vf->lan_vsi_idx], false))
|
i40e_vsi_stop_rings(pf->vsi[vf->lan_vsi_idx]);
|
||||||
aq_ret = I40E_ERR_TIMEOUT;
|
|
||||||
|
|
||||||
error_param:
|
error_param:
|
||||||
/* send the response to the VF */
|
/* send the response to the VF */
|
||||||
|
@ -2139,9 +2137,8 @@ static int i40e_vc_remove_vlan_msg(struct i40e_vf *vf, u8 *msg, u16 msglen)
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < vfl->num_elements; i++) {
|
for (i = 0; i < vfl->num_elements; i++) {
|
||||||
int ret = i40e_vsi_kill_vlan(vsi, vfl->vlan_id[i]);
|
i40e_vsi_kill_vlan(vsi, vfl->vlan_id[i]);
|
||||||
if (!ret)
|
vf->num_vlan--;
|
||||||
vf->num_vlan--;
|
|
||||||
|
|
||||||
if (test_bit(I40E_VF_STAT_UC_PROMISC, &vf->vf_states))
|
if (test_bit(I40E_VF_STAT_UC_PROMISC, &vf->vf_states))
|
||||||
i40e_aq_set_vsi_uc_promisc_on_vlan(&pf->hw, vsi->seid,
|
i40e_aq_set_vsi_uc_promisc_on_vlan(&pf->hw, vsi->seid,
|
||||||
|
@ -2153,11 +2150,6 @@ static int i40e_vc_remove_vlan_msg(struct i40e_vf *vf, u8 *msg, u16 msglen)
|
||||||
false,
|
false,
|
||||||
vfl->vlan_id[i],
|
vfl->vlan_id[i],
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
if (ret)
|
|
||||||
dev_err(&pf->pdev->dev,
|
|
||||||
"Unable to delete VLAN filter %d for VF %d, error %d\n",
|
|
||||||
vfl->vlan_id[i], vf->vf_id, ret);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
error_param:
|
error_param:
|
||||||
|
@ -2835,13 +2827,8 @@ int i40e_ndo_set_vf_port_vlan(struct net_device *netdev, int vf_id,
|
||||||
|
|
||||||
if (vsi->info.pvid) {
|
if (vsi->info.pvid) {
|
||||||
/* kill old VLAN */
|
/* kill old VLAN */
|
||||||
ret = i40e_vsi_kill_vlan(vsi, (le16_to_cpu(vsi->info.pvid) &
|
i40e_vsi_kill_vlan(vsi, (le16_to_cpu(vsi->info.pvid) &
|
||||||
VLAN_VID_MASK));
|
VLAN_VID_MASK));
|
||||||
if (ret) {
|
|
||||||
dev_info(&vsi->back->pdev->dev,
|
|
||||||
"remove VLAN failed, ret=%d, aq_err=%d\n",
|
|
||||||
ret, pf->hw.aq.asq_last_status);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (vlan_id || qos)
|
if (vlan_id || qos)
|
||||||
ret = i40e_vsi_add_pvid(vsi, vlanprio);
|
ret = i40e_vsi_add_pvid(vsi, vlanprio);
|
||||||
|
|
Loading…
Reference in New Issue