diff mbox series

[v1,2/2] selftests/kexec: update searching for the Kconfig

Message ID 20211222213052.6771-3-zohar@linux.ibm.com (mailing list archive)
State Accepted
Commit 9be6dc8059bb235ffb0666690a26c0df15cc6d9e
Headers show
Series selftest/kexec: minor update to the existing test | expand

Commit Message

Mimi Zohar Dec. 22, 2021, 9:30 p.m. UTC
First check /lib/modules/`uname -r`/config, before using the IKCONFIG.
In addition, the configs.ko might be compressed.  Fix the configs.ko
name.

Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
---
Distros: is storing the Kconfig in /lib/modules/`uname -r`/config common?

 tools/testing/selftests/kexec/kexec_common_lib.sh | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

Comments

Petr Vorel Dec. 23, 2021, 8:35 a.m. UTC | #1
> First check /lib/modules/`uname -r`/config, before using the IKCONFIG.
> In addition, the configs.ko might be compressed.  Fix the configs.ko
> name.

> Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
> ---
> Distros: is storing the Kconfig in /lib/modules/`uname -r`/config common?

>  tools/testing/selftests/kexec/kexec_common_lib.sh | 13 +++++++++----
>  1 file changed, 9 insertions(+), 4 deletions(-)

> diff --git a/tools/testing/selftests/kexec/kexec_common_lib.sh b/tools/testing/selftests/kexec/kexec_common_lib.sh
> index 43017cfe88f7..5a1b8ae04c64 100755
> --- a/tools/testing/selftests/kexec/kexec_common_lib.sh
> +++ b/tools/testing/selftests/kexec/kexec_common_lib.sh
> @@ -138,15 +138,20 @@ kconfig_enabled()
>  	return 0
>  }

> -# Attempt to get the kernel config first via proc, and then by
> -# extracting it from the kernel image or the configs.ko using
> -# scripts/extract-ikconfig.
> +# Attempt to get the kernel config first by checking the modules directory
> +# then via proc, and finally by extracting it from the kernel image or the
> +# configs.ko using scripts/extract-ikconfig.
>  # Return 1 for found.
>  get_kconfig()
>  {
>  	local proc_config="/proc/config.gz"
>  	local module_dir="/lib/modules/`uname -r`"
> -	local configs_module="$module_dir/kernel/kernel/configs.ko"
> +	local configs_module="$module_dir/kernel/kernel/configs.ko*"
I wonder if * will later work:

if [ ! -f $configs_module ]; then

But there should be just one variant: either configs.ko or configs.ko.xz
(or something other), so it should work, right?

Thus
Reviewed-by: Petr Vorel <pvorel@suse.cz>

Kind regards,
Petr

> +
> +	if [ -f $module_dir/config ]; then
> +		IKCONFIG=$module_dir/config
> +		return 1
> +	fi

>  	if [ ! -f $proc_config ]; then
>  		modprobe configs > /dev/null 2>&1
diff mbox series

Patch

diff --git a/tools/testing/selftests/kexec/kexec_common_lib.sh b/tools/testing/selftests/kexec/kexec_common_lib.sh
index 43017cfe88f7..5a1b8ae04c64 100755
--- a/tools/testing/selftests/kexec/kexec_common_lib.sh
+++ b/tools/testing/selftests/kexec/kexec_common_lib.sh
@@ -138,15 +138,20 @@  kconfig_enabled()
 	return 0
 }
 
-# Attempt to get the kernel config first via proc, and then by
-# extracting it from the kernel image or the configs.ko using
-# scripts/extract-ikconfig.
+# Attempt to get the kernel config first by checking the modules directory
+# then via proc, and finally by extracting it from the kernel image or the
+# configs.ko using scripts/extract-ikconfig.
 # Return 1 for found.
 get_kconfig()
 {
 	local proc_config="/proc/config.gz"
 	local module_dir="/lib/modules/`uname -r`"
-	local configs_module="$module_dir/kernel/kernel/configs.ko"
+	local configs_module="$module_dir/kernel/kernel/configs.ko*"
+
+	if [ -f $module_dir/config ]; then
+		IKCONFIG=$module_dir/config
+		return 1
+	fi
 
 	if [ ! -f $proc_config ]; then
 		modprobe configs > /dev/null 2>&1