Revert "iavf: Detach device during reset task"
authorMarcin Szycik <marcin.szycik@linux.intel.com>
Mon, 5 Jun 2023 14:52:23 +0000 (10:52 -0400)
committerTony Nguyen <anthony.l.nguyen@intel.com>
Mon, 17 Jul 2023 17:08:22 +0000 (10:08 -0700)
commitd2806d960e8387945b53edf7ed9d71ab3ab5f073
tree017d01703cb604061d622762411013d2c7b3b615
parentc2ed2403f12c74a74a0091ed5d830e72c58406e8
Revert "iavf: Detach device during reset task"

This reverts commit aa626da947e9cd30c4cf727493903e1adbb2c0a0.

Detaching device during reset was not fully fixing the rtnl locking issue,
as there could be a situation where callback was already in progress before
detaching netdev.

Furthermore, detaching netdevice causes TX timeouts if traffic is running.
To reproduce:

ip netns exec ns1 iperf3 -c $PEER_IP -t 600 --logfile /dev/null &
while :; do
        for i in 200 7000 400 5000 300 3000 ; do
ip netns exec ns1 ip link set $VF1 mtu $i
                sleep 2
        done
        sleep 10
done

Currently, callbacks such as iavf_change_mtu() wait for the reset.
If the reset fails to acquire the rtnl_lock, they schedule the netdev
update for later while continuing the reset flow. Operations like MTU
changes are performed under the rtnl_lock. Therefore, when the operation
finishes, another callback that uses rtnl_lock can start.

Signed-off-by: Dawid Wesierski <dawidx.wesierski@intel.com>
Signed-off-by: Marcin Szycik <marcin.szycik@linux.intel.com>
Signed-off-by: Mateusz Palczewski <mateusz.palczewski@intel.com>
Tested-by: Rafal Romanowski <rafal.romanowski@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
drivers/net/ethernet/intel/iavf/iavf_main.c