mirror of https://gitee.com/openkylin/linux.git
i40e: check for netdev before debugfs use
Make sure the VSI has a netdev before trying to use it in the debugfs netdev_ops commands. Change-ID: I2d744fc0c32b3226534ce2cde171d9675c5440a6 Signed-off-by: Shannon Nelson <shannon.nelson@intel.com> Signed-off-by: Catherine Sullivan <catherine.sullivan@intel.com> Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
c550360343
commit
ca04657b9d
|
@ -2087,9 +2087,13 @@ static ssize_t i40e_dbg_netdev_ops_write(struct file *filp,
|
|||
if (!vsi) {
|
||||
dev_info(&pf->pdev->dev,
|
||||
"tx_timeout: VSI %d not found\n", vsi_seid);
|
||||
goto netdev_ops_write_done;
|
||||
}
|
||||
if (rtnl_trylock()) {
|
||||
} else if (!vsi->netdev) {
|
||||
dev_info(&pf->pdev->dev, "tx_timeout: no netdev for VSI %d\n",
|
||||
vsi_seid);
|
||||
} else if (test_bit(__I40E_DOWN, &vsi->state)) {
|
||||
dev_info(&pf->pdev->dev, "tx_timeout: VSI %d not UP\n",
|
||||
vsi_seid);
|
||||
} else if (rtnl_trylock()) {
|
||||
vsi->netdev->netdev_ops->ndo_tx_timeout(vsi->netdev);
|
||||
rtnl_unlock();
|
||||
dev_info(&pf->pdev->dev, "tx_timeout called\n");
|
||||
|
@ -2108,9 +2112,10 @@ static ssize_t i40e_dbg_netdev_ops_write(struct file *filp,
|
|||
if (!vsi) {
|
||||
dev_info(&pf->pdev->dev,
|
||||
"change_mtu: VSI %d not found\n", vsi_seid);
|
||||
goto netdev_ops_write_done;
|
||||
}
|
||||
if (rtnl_trylock()) {
|
||||
} else if (!vsi->netdev) {
|
||||
dev_info(&pf->pdev->dev, "change_mtu: no netdev for VSI %d\n",
|
||||
vsi_seid);
|
||||
} else if (rtnl_trylock()) {
|
||||
vsi->netdev->netdev_ops->ndo_change_mtu(vsi->netdev,
|
||||
mtu);
|
||||
rtnl_unlock();
|
||||
|
@ -2129,9 +2134,10 @@ static ssize_t i40e_dbg_netdev_ops_write(struct file *filp,
|
|||
if (!vsi) {
|
||||
dev_info(&pf->pdev->dev,
|
||||
"set_rx_mode: VSI %d not found\n", vsi_seid);
|
||||
goto netdev_ops_write_done;
|
||||
}
|
||||
if (rtnl_trylock()) {
|
||||
} else if (!vsi->netdev) {
|
||||
dev_info(&pf->pdev->dev, "set_rx_mode: no netdev for VSI %d\n",
|
||||
vsi_seid);
|
||||
} else if (rtnl_trylock()) {
|
||||
vsi->netdev->netdev_ops->ndo_set_rx_mode(vsi->netdev);
|
||||
rtnl_unlock();
|
||||
dev_info(&pf->pdev->dev, "set_rx_mode called\n");
|
||||
|
@ -2149,11 +2155,14 @@ static ssize_t i40e_dbg_netdev_ops_write(struct file *filp,
|
|||
if (!vsi) {
|
||||
dev_info(&pf->pdev->dev, "napi: VSI %d not found\n",
|
||||
vsi_seid);
|
||||
goto netdev_ops_write_done;
|
||||
} else if (!vsi->netdev) {
|
||||
dev_info(&pf->pdev->dev, "napi: no netdev for VSI %d\n",
|
||||
vsi_seid);
|
||||
} else {
|
||||
for (i = 0; i < vsi->num_q_vectors; i++)
|
||||
napi_schedule(&vsi->q_vectors[i]->napi);
|
||||
dev_info(&pf->pdev->dev, "napi called\n");
|
||||
}
|
||||
for (i = 0; i < vsi->num_q_vectors; i++)
|
||||
napi_schedule(&vsi->q_vectors[i]->napi);
|
||||
dev_info(&pf->pdev->dev, "napi called\n");
|
||||
} else {
|
||||
dev_info(&pf->pdev->dev, "unknown command '%s'\n",
|
||||
i40e_dbg_netdev_ops_buf);
|
||||
|
|
Loading…
Reference in New Issue