Skip to content
Snippets Groups Projects
Commit f922c7b1 authored by Jiri Pirko's avatar Jiri Pirko Committed by Paolo Abeni
Browse files

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.us


Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
parent b60417a9
No related branches found
No related tags found
No related merge requests found
...@@ -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"
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment