Re: [PATCH 1/1] ktest.pl: Fix incorrect reboot for grub2bls

From: Steven Rostedt
Date: Fri Nov 20 2020 - 23:12:29 EST


On Fri, 20 Nov 2020 18:12:43 -0800
Libo Chen <libo.chen@xxxxxxxxxx> wrote:

> This issue was first noticed when I was testing different kernels on
> Oracle Linux 8 which as Fedora 30+ adopts BLS as default. Even though a
> kernel entry was added successfully and the index of that kernel entry was
> retrieved correctly, ktest still wouldn't reboot the system into
> user-specified kernel.
>
> The bug was spotted in subroutine reboot_to where the if-statement never
> checks for REBOOT_TYPE "grub2bls", therefore the desired entry will not be
> set for the next boot.
>
> Add a check for "grub2bls" so that $grub_reboot $grub_number can
> be run before a reboot if REBOOT_TYPE is "grub2bls" then we can boot to
> the correct kernel.
>
> Fixes: ac2466456eaa ("ktest: introduce grub2bls REBOOT_TYPE option")

I was just thinking a couple of hours ago if anyone uses ktest.pl, and
if so, how come I haven't received any patches for it ;-)

Anyway, I'll take a look at this next week, and it may be a while
before it gets into the kernel, as I like to run updates for a few
weeks on my systems (as I use it to build all my kernels), before I
push it upstream.

Thanks!

-- Steve


>
> Signed-off-by: Libo Chen <libo.chen@xxxxxxxxxx>
> ---
> tools/testing/ktest/ktest.pl | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/testing/ktest/ktest.pl b/tools/testing/ktest/ktest.pl
> index cb16d2aac51c..54188ee16c48 100755
> --- a/tools/testing/ktest/ktest.pl
> +++ b/tools/testing/ktest/ktest.pl
> @@ -2040,7 +2040,7 @@ sub reboot_to {
>
> if ($reboot_type eq "grub") {
> run_ssh "'(echo \"savedefault --default=$grub_number --once\" | grub --batch)'";
> - } elsif ($reboot_type eq "grub2") {
> + } elsif (($reboot_type eq "grub2") or ($reboot_type eq "grub2bls")) {
> run_ssh "$grub_reboot $grub_number";
> } elsif ($reboot_type eq "syslinux") {
> run_ssh "$syslinux --once \\\"$syslinux_label\\\" $syslinux_path";