automated: linux: modules: add kmemleak scan

Add a final memory leak detection pass using kmemleak if it is enabled
in the running kernel. Trigger a kmemleak scan after all module
load/unload cycles and report any leaked memory objects.

This helps detect regressions involving memory leaks caused by module
insert/remove operations.

Signed-off-by: Anders Roxell <anders.roxell@linaro.org>
diff --git a/automated/linux/modules/modules.sh b/automated/linux/modules/modules.sh
index 919ff21..2e407fd 100755
--- a/automated/linux/modules/modules.sh
+++ b/automated/linux/modules/modules.sh
@@ -91,6 +91,23 @@
 	fi
 }
 
+kmemleak_scan() {
+	if [ -e /sys/kernel/debug/kmemleak ]; then
+		echo "Triggering kmemleak scan..."
+		echo scan > /sys/kernel/debug/kmemleak
+		sleep 5
+		if grep -q . /sys/kernel/debug/kmemleak; then
+			echo "Potential memory leaks detected:"
+			cat /sys/kernel/debug/kmemleak
+			report_fail "kmemleak_detected"
+		else
+			report_pass "kmemleak_no_leaks"
+		fi
+	else
+		echo "kmemleak not available, skipping scan."
+	fi
+}
+
 run () {
 	for module in ${MODULES_LIST}; do
 		# don't insert/remove modules that is already inserted.
@@ -119,3 +136,4 @@
 info_msg "About to run  load/unload kernel modules ..."
 get_modules_list
 run
+kmemleak_scan