Some distros are now storing the Kconfig in /lib/modules/`uname -r`/config. Check there first before attempting to read it from /proc or extract it from the kernel image.
Fix "ignored null byte in input" warning.
Mimi Zohar (2): selftest/kexec: fix "ignored null byte in input" warning selftests/kexec: update searching for the Kconfig
tools/testing/selftests/kexec/kexec_common_lib.sh | 13 +++++++++---- .../testing/selftests/kexec/test_kexec_file_load.sh | 5 +++-- 2 files changed, 12 insertions(+), 6 deletions(-)
Instead of assigning the string to a variable, which might contain a null character, redirect the output and grep for the string directly.
Signed-off-by: Mimi Zohar zohar@linux.ibm.com --- Comment: this patch was previously posted as part of Nageswara's larger patch set.
tools/testing/selftests/kexec/test_kexec_file_load.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/tools/testing/selftests/kexec/test_kexec_file_load.sh b/tools/testing/selftests/kexec/test_kexec_file_load.sh index 2ff600388c30..99f6fc23ee31 100755 --- a/tools/testing/selftests/kexec/test_kexec_file_load.sh +++ b/tools/testing/selftests/kexec/test_kexec_file_load.sh @@ -97,10 +97,11 @@ check_for_imasig() check_for_modsig() { local module_sig_string="~Module signature appended~" - local sig="$(tail --bytes $((${#module_sig_string} + 1)) $KERNEL_IMAGE)" local ret=0
- if [ "$sig" == "$module_sig_string" ]; then + tail --bytes $((${#module_sig_string} + 1)) $KERNEL_IMAGE | \ + grep -q "$module_sig_string" + if [ $? -eq 0 ]; then ret=1 log_info "kexec kernel image modsig signed" else
Hi Mimi,
Instead of assigning the string to a variable, which might contain a null character, redirect the output and grep for the string directly.
Looks reasonable to me.
Reviewed-by: Petr Vorel pvorel@suse.cz
Kind regards, Petr
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*" + + if [ -f $module_dir/config ]; then + IKCONFIG=$module_dir/config + return 1 + fi
if [ ! -f $proc_config ]; then modprobe configs > /dev/null 2>&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
linux-kselftest-mirror@lists.linaro.org