forked from pool/s390-tools
58e312617d
- The location of the udevadm binary was changed from /sbin/ to /usr/bin a while back. A symbolic link was added for compatibility. In the latest versions, that symbolic link has been removed, requiring changes to scripts that were depending on that. Added the following patches for bsc#1171587 * s390-tools-sles15sp2-lsluns-try-harder-to-find-udevadm.patch * s390-tools-sles15sp2-znetconf-introduce-better-ways-to-locate-udevadm.patch *s390-tools-sles15sp2-mon_tools-update-udevadm-location.patch - Added s390-tools-sles15sp2-zipl-prevent-endless-loop-during-IPL.patch (bsc#1174309) zipl: prevent endless loop during secure IPL - Added s390-tools-sles15sp2-zipl-check-for-valid-ipl-parmblock-lowcore-pointer.patch (bsc#1174310) zipl: check for valid ipl parmblock lowcore pointer - Added s390-tools-sles15sp2-01-zipl-libc-libc_stop-move-noreturn-to-declaration.patch s390-tools-sles15sp2-02-zipl-stage3-correctly-handle-diag308-response-code.patch (bsc1174311) zipl: Fix KVM IPL without bootindex - Updated cputype and read_values to recognize the new z15 models. - Added s390-tools-sles15sp2-zipl-prevent-endless-loop-during-IPL.patch (bsc#1174309) zipl: prevent endless loop during secure IPL - Added s390-tools-sles15sp2-zipl-check-for-valid-ipl-parmblock-lowcore-pointer.patch (bsc#1174310) zipl: check for valid ipl parmblock lowcore pointer - Added s390-tools-sles15sp2-01-zipl-libc-libc_stop-move-noreturn-to-declaration.patch s390-tools-sles15sp2-02-zipl-stage3-correctly-handle-diag308-response-code.patch (bsc1174311) zipl: Fix KVM IPL without bootindex - Updated cputype and read_values to recognize the new z15 models. - Added s390-tools-sles15sp2-vmcp-exit-code.patch (bsc#1173481) Change the vmcp exit code and return 'CP command failed' when both "CP command failed" and "response buffer is too small" error conditions are true. OBS-URL: https://build.opensuse.org/request/show/823200 OBS-URL: https://build.opensuse.org/package/show/Base:System/s390-tools?expand=0&rev=97
73 lines
2.3 KiB
Diff
73 lines
2.3 KiB
Diff
Subject: [PATCH] [BZ 186940] zipl/libc: libc_stop move 'noreturn' to declaration
|
|
From: Stefan Haberland <sth@linux.ibm.com>
|
|
|
|
Description: zipl: Fix KVM IPL without bootindex
|
|
Symptom: Failed IPL on KVM when no bootindex is specified.
|
|
Problem: Without bootindex specified there is no IPL parmblock
|
|
on KVM which can be read by the stage3 loader.
|
|
Solution: In case diag308 gives a response code 0x102 the stage3
|
|
loader can safely assume that no secure IPL is required
|
|
since no IPL report block exists.
|
|
Reproduction: IPL on KVM without 'bootindex=' attached.
|
|
Upstream-ID: c9066bf5497300db5e0ba11bf111683ea225d8c8
|
|
Problem-ID: 186940
|
|
|
|
Upstream-Description:
|
|
|
|
zipl/libc: libc_stop move 'noreturn' to declaration
|
|
|
|
Commit 86856f98dbe3 ("zipl: Make use of __noreturn macro") moved the
|
|
'noreturn' attribute from declaration to definition. With this the
|
|
compiler can no longer optimize when the function is called in a
|
|
separate source file. Move the attribute back to the declaration
|
|
|
|
Reviewed-by: Stefan Haberland <sth@linux.ibm.com>
|
|
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
|
|
|
|
|
|
Signed-off-by: Stefan Haberland <sth@linux.ibm.com>
|
|
---
|
|
zipl/boot/libc.c | 3 +--
|
|
zipl/boot/libc.h | 4 +++-
|
|
2 files changed, 4 insertions(+), 3 deletions(-)
|
|
|
|
--- a/zipl/boot/libc.c
|
|
+++ b/zipl/boot/libc.c
|
|
@@ -13,7 +13,6 @@
|
|
|
|
#include <stdarg.h>
|
|
|
|
-#include "lib/zt_common.h"
|
|
#include "boot/s390.h"
|
|
|
|
#include "error.h"
|
|
@@ -501,7 +500,7 @@ void initialize(void)
|
|
/*
|
|
* Load disabled wait PSW with reason code in address field
|
|
*/
|
|
-void __noreturn libc_stop(unsigned long reason)
|
|
+void libc_stop(unsigned long reason)
|
|
{
|
|
struct psw_t psw;
|
|
|
|
--- a/zipl/boot/libc.h
|
|
+++ b/zipl/boot/libc.h
|
|
@@ -15,6 +15,8 @@
|
|
|
|
#define NULL ((void *) 0)
|
|
|
|
+#include "lib/zt_common.h"
|
|
+
|
|
#define EPERM 1 /* Operation not permitted */
|
|
#define ENOENT 2 /* No such file or directory */
|
|
#define ESRCH 3 /* No such process */
|
|
@@ -56,7 +58,7 @@ char *strcpy(char *, const char *);
|
|
unsigned long get_zeroed_page(void);
|
|
void free_page(unsigned long);
|
|
void initialize(void);
|
|
-void libc_stop(unsigned long);
|
|
+void libc_stop(unsigned long) __noreturn;
|
|
void start(void);
|
|
void pgm_check_handler(void);
|
|
void pgm_check_handler_fn(void);
|