> -----Original Message-----
> From: Michal Schmidt <[email protected]>
> Sent: Tuesday, October 10, 2023 2:22 PM
> To: Drewek, Wojciech <[email protected]>; intel-wired-
> [email protected]
> Cc: Nguyen, Anthony L <[email protected]>; Radoslaw Tyl
> <[email protected]>; Brandeburg, Jesse <[email protected]>
> Subject: Re: [Intel-wired-lan] [PATCH net-next 4/5] iavf: in iavf_down,
> disable
> queues when removing the driver
>
> Dne 10. 10. 23 v 13:39 Drewek, Wojciech napsal:
> >
> >
> >> -----Original Message-----
> >> From: Intel-wired-lan <[email protected]> On Behalf Of
> >> Michal Schmidt
> >> Sent: Tuesday, October 10, 2023 2:25 AM
> >> To: [email protected]
> >> Cc: Nguyen, Anthony L <[email protected]>; Radoslaw Tyl
> >> <[email protected]>; Brandeburg, Jesse
> <[email protected]>
> >> Subject: [Intel-wired-lan] [PATCH net-next 4/5] iavf: in iavf_down, disable
> >> queues when removing the driver
> >>
> >> In iavf_down, we're skipping the scheduling of certain operations if
> >> the driver is being removed. However, the
> IAVF_FLAG_AQ_DISABLE_QUEUES
> >> request must not be skipped in this case, because iavf_close waits
> >> for the transition to the __IAVF_DOWN state, which happens in
> >> iavf_virtchnl_completion after the queues are released.
> >>
> >> Without this fix, "rmmod iavf" takes half a second per interface that's
> >> up and prints the "Device resources not yet released" warning.
> >>
> >> Fixes: c8de44b577eb ("iavf: do not process adminq tasks when
> >> __IAVF_IN_REMOVE_TASK is set")
> >> Signed-off-by: Michal Schmidt <[email protected]>
> >
> > Looks like a fix, could be a separate patch with net as a target.
>
> I did not want to separate it from patch 3/5, because it changes the
> logic when IAVF_FLAG_PF_COMMS_FAILED is set. But on second thought, it
> should still work fine in that case too. aq_required would just get
> reset to zero in iavf_watchdog_task in the __IAVF_COMM_FAILED state.
I see, so it's up to you :)
>
> Michal
>
> > Reviewed-by: Wojciech Drewek <[email protected]>
> >
> >> ---
> >> drivers/net/ethernet/intel/iavf/iavf_main.c | 2 +-
> >> 1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git a/drivers/net/ethernet/intel/iavf/iavf_main.c
> >> b/drivers/net/ethernet/intel/iavf/iavf_main.c
> >> index 0b808fa34801..2ab08b015b85 100644
> >> --- a/drivers/net/ethernet/intel/iavf/iavf_main.c
> >> +++ b/drivers/net/ethernet/intel/iavf/iavf_main.c
> >> @@ -1440,9 +1440,9 @@ void iavf_down(struct iavf_adapter *adapter)
> >> adapter->aq_required |=
> >> IAVF_FLAG_AQ_DEL_FDIR_FILTER;
> >> if (!list_empty(&adapter->adv_rss_list_head))
> >> adapter->aq_required |=
> >> IAVF_FLAG_AQ_DEL_ADV_RSS_CFG;
> >> - adapter->aq_required |= IAVF_FLAG_AQ_DISABLE_QUEUES;
> >> }
> >>
> >> + adapter->aq_required |= IAVF_FLAG_AQ_DISABLE_QUEUES;
> >> mod_delayed_work(adapter->wq, &adapter->watchdog_task, 0);
> >> }
> >>
> >> --
> >> 2.41.0
> >>
> >> _______________________________________________
> >> Intel-wired-lan mailing list
> >> [email protected]
> >> https://lists.osuosl.org/mailman/listinfo/intel-wired-lan
> >
_______________________________________________
Intel-wired-lan mailing list
[email protected]
https://lists.osuosl.org/mailman/listinfo/intel-wired-lan