On Mon, Feb 20, 2023 at 6:54 PM Jiri Pirko <jiri@xxxxxxxxxxx> wrote: > > From: Jiri Pirko <jiri@xxxxxxxxxx> > > When devlink instance is put into network namespace and that network > namespace gets deleted, devlink instance is moved back into init_ns. > This is done as a part of cleanup_net() routine. Since cleanup_net() > is called asynchronously from workqueue, there is no guarantee that > the devlink instance move is done after "ip netns del" returns. > > So fix this race by making sure that the devlink instance is present > before any other operation. > > Reported-by: Amir Tzin <amirtz@xxxxxxxxxx> > Fixes: b74c37fd35a2 ("selftests: netdevsim: add tests for devlink reload with resources") > Signed-off-by: Jiri Pirko <jiri@xxxxxxxxxx> > --- > .../selftests/drivers/net/netdevsim/devlink.sh | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/tools/testing/selftests/drivers/net/netdevsim/devlink.sh b/tools/testing/selftests/drivers/net/netdevsim/devlink.sh > index a08c02abde12..7f7d20f22207 100755 > --- a/tools/testing/selftests/drivers/net/netdevsim/devlink.sh > +++ b/tools/testing/selftests/drivers/net/netdevsim/devlink.sh > @@ -17,6 +17,18 @@ SYSFS_NET_DIR=/sys/bus/netdevsim/devices/$DEV_NAME/net/ > DEBUGFS_DIR=/sys/kernel/debug/netdevsim/$DEV_NAME/ > DL_HANDLE=netdevsim/$DEV_NAME > > +wait_for_devlink() > +{ > + "$@" | grep -q $DL_HANDLE > +} > + > +devlink_wait() > +{ > + local timeout=$1 > + > + busywait "$timeout" wait_for_devlink devlink dev > +} > + > fw_flash_test() > { > RET=0 > @@ -256,6 +268,9 @@ netns_reload_test() > ip netns del testns2 > ip netns del testns1 > > + # Wait until netns async cleanup is done. > + devlink_wait 2000 > + > log_test "netns reload test" > } > > @@ -348,6 +363,9 @@ resource_test() > ip netns del testns2 > ip netns del testns1 > > + # Wait until netns async cleanup is done. > + devlink_wait 2000 > + > log_test "resource test" > } > > -- > 2.39.0 > Looks good to me. Reviewed-by: Pavan Chebbi <pavan.chebbi@xxxxxxxxxxxx>
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature