Re: [Qemu-devel] [PATCH] s390/boot: block uncompressed vmlinux booting attempts

2018-06-26 Thread Cornelia Huck
On Tue, 26 Jun 2018 09:30:19 +0200
Christian Borntraeger  wrote:

> On 06/25/2018 05:09 PM, Vasily Gorbik wrote:
> > Since uncompressed kernel image "vmlinux" elf file is not bootable under
> > qemu anymore, add a check which would report that.
> > 
> > Qemu users are encouraged to use bzImage or
> > arch/s390/boot/compressed/vmlinux instead.
> > 
> > The check relies on s390 linux entry point ABI definition, which is only
> > present in bzImage and arch/s390/boot/compressed/vmlinux.
> > 
> > Signed-off-by: Vasily Gorbik   
> Acked-by: Christian Borntraeger 
> 
> some proposals regarding the wording below..
> 
> [...]
> > +
> > +   sclp_early_printk("The linux kernel boot failure: the image is 
> > corrupted or not bootable.\n");
> > +   sclp_early_printk("Please check that you are using bootable kernel 
> > image \"bzImage\".\n");
> > +   sclp_early_printk("(or alternatively 
> > \"arch/s390/boot/compressed/vmlinux\" image for qemu)\n");  
> 
> What about making this explain things a bit more, e.g. something like
> 
> Linux kernel boot failure: The boot image does not contain all necessary
> components (like the entry point and decompressor). The plain vmlinux ELF
> file no longer carries all necessary parts for starting up. Please use
> bzImage or arch/s390/boot/compressed/vmlinux.

Yes, that sounds good. With the changed message,

Acked-by: Cornelia Huck 



Re: [Qemu-devel] [PATCH] s390/boot: block uncompressed vmlinux booting attempts

2018-06-26 Thread Christian Borntraeger



On 06/25/2018 05:09 PM, Vasily Gorbik wrote:
> Since uncompressed kernel image "vmlinux" elf file is not bootable under
> qemu anymore, add a check which would report that.
> 
> Qemu users are encouraged to use bzImage or
> arch/s390/boot/compressed/vmlinux instead.
> 
> The check relies on s390 linux entry point ABI definition, which is only
> present in bzImage and arch/s390/boot/compressed/vmlinux.
> 
> Signed-off-by: Vasily Gorbik 
Acked-by: Christian Borntraeger 

some proposals regarding the wording below..

[...]
> +
> + sclp_early_printk("The linux kernel boot failure: the image is 
> corrupted or not bootable.\n");
> + sclp_early_printk("Please check that you are using bootable kernel 
> image \"bzImage\".\n");
> + sclp_early_printk("(or alternatively 
> \"arch/s390/boot/compressed/vmlinux\" image for qemu)\n");

What about making this explain things a bit more, e.g. something like

Linux kernel boot failure: The boot image does not contain all necessary
components (like the entry point and decompressor). The plain vmlinux ELF
file no longer carries all necessary parts for starting up. Please use
bzImage or arch/s390/boot/compressed/vmlinux.




Re: [Qemu-devel] [PATCH] s390/boot: block uncompressed vmlinux booting attempts

2018-06-25 Thread Guenter Roeck
On Mon, Jun 25, 2018 at 05:09:19PM +0200, Vasily Gorbik wrote:
> Since uncompressed kernel image "vmlinux" elf file is not bootable under
> qemu anymore, add a check which would report that.
> 
> Qemu users are encouraged to use bzImage or
> arch/s390/boot/compressed/vmlinux instead.
> 
> The check relies on s390 linux entry point ABI definition, which is only
> present in bzImage and arch/s390/boot/compressed/vmlinux.
> 
> Signed-off-by: Vasily Gorbik 

With qemu:

Tested-by: Guenter Roeck 

> ---
>  arch/s390/boot/head.S |  4 ++--
>  arch/s390/include/asm/setup.h |  3 ++-
>  arch/s390/kernel/early.c  | 12 
>  3 files changed, 16 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/s390/boot/head.S b/arch/s390/boot/head.S
> index f09e792df495..f721913b73f1 100644
> --- a/arch/s390/boot/head.S
> +++ b/arch/s390/boot/head.S
> @@ -272,14 +272,14 @@ iplstart:
>   .org0x1
>  ENTRY(startup)
>   j   .Lep_startup_normal
> - .org0x10008
> + .orgEP_OFFSET
>  #
>  # This is a list of s390 kernel entry points. At address 0x1000f the number 
> of
>  # valid entry points is stored.
>  #
>  # IMPORTANT: Do not change this table, it is s390 kernel ABI!
>  #
> - .ascii  "S390EP"
> + .ascii  EP_STRING
>   .byte   0x00,0x01
>  #
>  # kdump startup-code at 0x10010, running in 64 bit absolute addressing mode
> diff --git a/arch/s390/include/asm/setup.h b/arch/s390/include/asm/setup.h
> index be02f0558048..1d66016f4170 100644
> --- a/arch/s390/include/asm/setup.h
> +++ b/arch/s390/include/asm/setup.h
> @@ -9,7 +9,8 @@
>  #include 
>  #include 
>  
> -
> +#define EP_OFFSET0x10008
> +#define EP_STRING"S390EP"
>  #define PARMAREA 0x10400
>  #define PARMAREA_END 0x11000
>  
> diff --git a/arch/s390/kernel/early.c b/arch/s390/kernel/early.c
> index 827699eb48fa..45c5be3d8777 100644
> --- a/arch/s390/kernel/early.c
> +++ b/arch/s390/kernel/early.c
> @@ -331,8 +331,20 @@ static void __init setup_boot_command_line(void)
>   append_to_cmdline(append_ipl_scpdata);
>  }
>  
> +static void __init check_image_bootable(void)
> +{
> + if (!memcmp(EP_STRING, (void *)EP_OFFSET, strlen(EP_STRING)))
> + return;
> +
> + sclp_early_printk("The linux kernel boot failure: the image is 
> corrupted or not bootable.\n");
> + sclp_early_printk("Please check that you are using bootable kernel 
> image \"bzImage\".\n");
> + sclp_early_printk("(or alternatively 
> \"arch/s390/boot/compressed/vmlinux\" image for qemu)\n");
> + disabled_wait(0xbadb007);
> +}
> +
>  void __init startup_init(void)
>  {
> + check_image_bootable();
>   time_early_init();
>   init_kernel_storage_key();
>   lockdep_off();
> -- 
> ⣔⢻⣟⢢ 2.18.0.rc2.13.g4da9a5d
> ⣿⢿⡿⣿ pacman edition
> 



[Qemu-devel] [PATCH] s390/boot: block uncompressed vmlinux booting attempts

2018-06-25 Thread Vasily Gorbik
Since uncompressed kernel image "vmlinux" elf file is not bootable under
qemu anymore, add a check which would report that.

Qemu users are encouraged to use bzImage or
arch/s390/boot/compressed/vmlinux instead.

The check relies on s390 linux entry point ABI definition, which is only
present in bzImage and arch/s390/boot/compressed/vmlinux.

Signed-off-by: Vasily Gorbik 
---
 arch/s390/boot/head.S |  4 ++--
 arch/s390/include/asm/setup.h |  3 ++-
 arch/s390/kernel/early.c  | 12 
 3 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/arch/s390/boot/head.S b/arch/s390/boot/head.S
index f09e792df495..f721913b73f1 100644
--- a/arch/s390/boot/head.S
+++ b/arch/s390/boot/head.S
@@ -272,14 +272,14 @@ iplstart:
.org0x1
 ENTRY(startup)
j   .Lep_startup_normal
-   .org0x10008
+   .orgEP_OFFSET
 #
 # This is a list of s390 kernel entry points. At address 0x1000f the number of
 # valid entry points is stored.
 #
 # IMPORTANT: Do not change this table, it is s390 kernel ABI!
 #
-   .ascii  "S390EP"
+   .ascii  EP_STRING
.byte   0x00,0x01
 #
 # kdump startup-code at 0x10010, running in 64 bit absolute addressing mode
diff --git a/arch/s390/include/asm/setup.h b/arch/s390/include/asm/setup.h
index be02f0558048..1d66016f4170 100644
--- a/arch/s390/include/asm/setup.h
+++ b/arch/s390/include/asm/setup.h
@@ -9,7 +9,8 @@
 #include 
 #include 
 
-
+#define EP_OFFSET  0x10008
+#define EP_STRING  "S390EP"
 #define PARMAREA   0x10400
 #define PARMAREA_END   0x11000
 
diff --git a/arch/s390/kernel/early.c b/arch/s390/kernel/early.c
index 827699eb48fa..45c5be3d8777 100644
--- a/arch/s390/kernel/early.c
+++ b/arch/s390/kernel/early.c
@@ -331,8 +331,20 @@ static void __init setup_boot_command_line(void)
append_to_cmdline(append_ipl_scpdata);
 }
 
+static void __init check_image_bootable(void)
+{
+   if (!memcmp(EP_STRING, (void *)EP_OFFSET, strlen(EP_STRING)))
+   return;
+
+   sclp_early_printk("The linux kernel boot failure: the image is 
corrupted or not bootable.\n");
+   sclp_early_printk("Please check that you are using bootable kernel 
image \"bzImage\".\n");
+   sclp_early_printk("(or alternatively 
\"arch/s390/boot/compressed/vmlinux\" image for qemu)\n");
+   disabled_wait(0xbadb007);
+}
+
 void __init startup_init(void)
 {
+   check_image_bootable();
time_early_init();
init_kernel_storage_key();
lockdep_off();
-- 
⣔⢻⣟⢢ 2.18.0.rc2.13.g4da9a5d
⣿⢿⡿⣿ pacman edition