The esp4_offload module, loaded during IPsec offload tests, should
be reset to its default settings after testing.
Otherwise, leaving it enabled could unintentionally affect subsequence
test cases by keeping offload active.

Without this fix:
$ lsmod | grep offload; ./rtnetlink.sh -t kci_test_ipsec_offload ; lsmod | grep 
offload;
PASS: ipsec_offload
esp4_offload           12288  0
esp4                   32768  1 esp4_offload

With this fix:
$ lsmod | grep offload; ./rtnetlink.sh -t kci_test_ipsec_offload ; lsmod | grep 
offload;
PASS: ipsec_offload

Fixes: 2766a11161cc ("selftests: rtnetlink: add ipsec offload API test")
Signed-off-by: Xiumei Mu <[email protected]>
Reviewed-by: Shannon Nelson <[email protected]>
---
Changes in v2:
- add test results in description
- Enhanced logic for rmmod esp4_offload
- fix shellcheck warning: SC2086 (The quoting issue)
---
---
 tools/testing/selftests/net/rtnetlink.sh | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/tools/testing/selftests/net/rtnetlink.sh 
b/tools/testing/selftests/net/rtnetlink.sh
index 2e8243a65b50..d2298da320a6 100755
--- a/tools/testing/selftests/net/rtnetlink.sh
+++ b/tools/testing/selftests/net/rtnetlink.sh
@@ -673,6 +673,11 @@ kci_test_ipsec_offload()
        sysfsf=$sysfsd/ipsec
        sysfsnet=/sys/bus/netdevsim/devices/netdevsim0/net/
        probed=false
+       esp4_offload_probed_default=false
+
+       if lsmod | grep -q esp4_offload; then
+               esp4_offload_probed_default=true
+       fi
 
        if ! mount | grep -q debugfs; then
                mount -t debugfs none /sys/kernel/debug/ &> /dev/null
@@ -766,6 +771,7 @@ EOF
        fi
 
        # clean up any leftovers
+       ! "$esp4_offload_probed_default" && lsmod | grep -q esp4_offload && 
rmmod esp4_offload
        echo 0 > /sys/bus/netdevsim/del_device
        $probed && rmmod netdevsim
 
-- 
2.50.1


Reply via email to