Re: [PATCH] iavf: Fix hang during reboot/shutdown

From: Tony Nguyen
Date: Thu Mar 17 2022 - 13:03:21 EST



On 3/17/2022 9:11 AM, Jakub Kicinski wrote:
On Thu, 17 Mar 2022 11:45:24 +0100 Ivan Vecera wrote:
Recent commit 974578017fc1 ("iavf: Add waiting so the port is
initialized in remove") adds a wait-loop at the beginning of
iavf_remove() to ensure that port initialization is finished
prior unregistering net device. This causes a regression
in reboot/shutdown scenario because in this case callback
iavf_shutdown() is called and this callback detaches the device,
makes it down if it is running and sets its state to __IAVF_REMOVE.
Later shutdown callback of associated PF driver (e.g. ice_shutdown)
is called. That callback calls among other things sriov_disable()
that calls indirectly iavf_remove() (see stack trace below).
As the adapter state is already __IAVF_REMOVE then the mentioned
loop is end-less and shutdown process hangs.
Tony, Jesse, looks like the regression is from 5.17-rc6, should
I take this directly so it makes 5.17 final?

Hi Jakub,

There are some additional improvements that we think can be made but we need more time to analyze and test. This is probably good for you to take to make into this kernel though. We will send follow on patches if needed.

Thanks,

Tony