mirror of https://gitee.com/openkylin/linux.git
ice: Fix napi delete calls for remove
In the remove path, the vsi->netdev is being set to NULL before the call to free vectors. This is causing the netif_napi_del call to never be made. Add a call to ice_napi_del to the same location as the calls to unregister_netdev and just prior to them. This will use the reverse flow as the register and netif_napi_add calls. Signed-off-by: Dave Ertman <david.m.ertman@intel.com> Signed-off-by: Anirudh Venkataramanan <anirudh.venkataramanan@intel.com> Tested-by: Andrew Bowers <andrewx.bowers@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
31082519c1
commit
25525b69bb
|
@ -370,5 +370,6 @@ int ice_set_rss(struct ice_vsi *vsi, u8 *seed, u8 *lut, u16 lut_size);
|
||||||
int ice_get_rss(struct ice_vsi *vsi, u8 *seed, u8 *lut, u16 lut_size);
|
int ice_get_rss(struct ice_vsi *vsi, u8 *seed, u8 *lut, u16 lut_size);
|
||||||
void ice_fill_rss_lut(u8 *lut, u16 rss_table_size, u16 rss_size);
|
void ice_fill_rss_lut(u8 *lut, u16 rss_table_size, u16 rss_size);
|
||||||
void ice_print_link_msg(struct ice_vsi *vsi, bool isup);
|
void ice_print_link_msg(struct ice_vsi *vsi, bool isup);
|
||||||
|
void ice_napi_del(struct ice_vsi *vsi);
|
||||||
|
|
||||||
#endif /* _ICE_H_ */
|
#endif /* _ICE_H_ */
|
||||||
|
|
|
@ -2458,6 +2458,7 @@ int ice_vsi_release(struct ice_vsi *vsi)
|
||||||
* on this wq
|
* on this wq
|
||||||
*/
|
*/
|
||||||
if (vsi->netdev && !ice_is_reset_in_progress(pf->state)) {
|
if (vsi->netdev && !ice_is_reset_in_progress(pf->state)) {
|
||||||
|
ice_napi_del(vsi);
|
||||||
unregister_netdev(vsi->netdev);
|
unregister_netdev(vsi->netdev);
|
||||||
free_netdev(vsi->netdev);
|
free_netdev(vsi->netdev);
|
||||||
vsi->netdev = NULL;
|
vsi->netdev = NULL;
|
||||||
|
|
|
@ -1465,7 +1465,7 @@ static int ice_req_irq_msix_misc(struct ice_pf *pf)
|
||||||
* ice_napi_del - Remove NAPI handler for the VSI
|
* ice_napi_del - Remove NAPI handler for the VSI
|
||||||
* @vsi: VSI for which NAPI handler is to be removed
|
* @vsi: VSI for which NAPI handler is to be removed
|
||||||
*/
|
*/
|
||||||
static void ice_napi_del(struct ice_vsi *vsi)
|
void ice_napi_del(struct ice_vsi *vsi)
|
||||||
{
|
{
|
||||||
int v_idx;
|
int v_idx;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue