Commit f922c7b1 authored by Jiri Pirko's avatar Jiri Pirko Committed by Paolo Abeni

sefltests: netdevsim: wait for devlink instance after netns removal

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: default avatarAmir Tzin <amirtz@nvidia.com>
Fixes: b74c37fd ("selftests: netdevsim: add tests for devlink reload with resources")
Signed-off-by: default avatarJiri Pirko <jiri@nvidia.com>
Reviewed-by: default avatarPavan Chebbi <pavan.chebbi@broadcom.com>
Link: https://lore.kernel.org/r/20230220132336.198597-1-jiri@resnulli.usSigned-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
parent b60417a9
...@@ -17,6 +17,18 @@ SYSFS_NET_DIR=/sys/bus/netdevsim/devices/$DEV_NAME/net/ ...@@ -17,6 +17,18 @@ SYSFS_NET_DIR=/sys/bus/netdevsim/devices/$DEV_NAME/net/
DEBUGFS_DIR=/sys/kernel/debug/netdevsim/$DEV_NAME/ DEBUGFS_DIR=/sys/kernel/debug/netdevsim/$DEV_NAME/
DL_HANDLE=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() fw_flash_test()
{ {
RET=0 RET=0
...@@ -256,6 +268,9 @@ netns_reload_test() ...@@ -256,6 +268,9 @@ netns_reload_test()
ip netns del testns2 ip netns del testns2
ip netns del testns1 ip netns del testns1
# Wait until netns async cleanup is done.
devlink_wait 2000
log_test "netns reload test" log_test "netns reload test"
} }
...@@ -348,6 +363,9 @@ resource_test() ...@@ -348,6 +363,9 @@ resource_test()
ip netns del testns2 ip netns del testns2
ip netns del testns1 ip netns del testns1
# Wait until netns async cleanup is done.
devlink_wait 2000
log_test "resource test" log_test "resource test"
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment