selftests/memory-hotplug: Restore memory before exit
authorZhao Gongyi <zhaogongyi@huawei.com>
Fri, 30 Sep 2022 06:35:25 +0000 (14:35 +0800)
committerShuah Khan <skhan@linuxfoundation.org>
Fri, 7 Oct 2022 16:32:04 +0000 (10:32 -0600)
Some momory will be left in offline state when calling
offline_memory_expect_fail() failed. Restore it before exit.

Signed-off-by: Zhao Gongyi <zhaogongyi@huawei.com>
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
tools/testing/selftests/memory-hotplug/mem-on-off-test.sh

index 1d87611..91a7457 100755 (executable)
@@ -134,6 +134,16 @@ offline_memory_expect_fail()
        return 0
 }
 
+online_all_offline_memory()
+{
+       for memory in `hotpluggable_offline_memory`; do
+               if ! online_memory_expect_success $memory; then
+                       echo "$FUNCNAME $memory: unexpected fail" >&2
+                       retval=1
+               fi
+       done
+}
+
 error=-12
 priority=0
 # Run with default of ratio=2 for Kselftest run
@@ -275,11 +285,7 @@ done
 # Online all hot-pluggable memory
 #
 echo 0 > $NOTIFIER_ERR_INJECT_DIR/actions/MEM_GOING_ONLINE/error
-for memory in `hotpluggable_offline_memory`; do
-       if ! online_memory_expect_success $memory; then
-               retval=1
-       fi
-done
+online_all_offline_memory
 
 #
 # Test memory hot-remove error handling (online => offline)
@@ -296,4 +302,9 @@ done
 echo 0 > $NOTIFIER_ERR_INJECT_DIR/actions/MEM_GOING_OFFLINE/error
 /sbin/modprobe -q -r memory-notifier-error-inject
 
+#
+# Restore memory before exit
+#
+online_all_offline_memory
+
 exit $retval