forked from pool/s390-tools
103 lines
3.9 KiB
Diff
103 lines
3.9 KiB
Diff
|
Subject: [PATCH] [FEAT VS1804] zipl: fix -Waddress-of-packed-member
|
||
|
From: Marc Hartmayer <mhartmay@linux.ibm.com>
|
||
|
|
||
|
Summary: genprotimg: Introduce new tool for the creation of PV images
|
||
|
Description: genprotimg takes a kernel, host-key documents, optionally an
|
||
|
initrd, optionally a file with the kernel command line, and it
|
||
|
generates a single, loadable image file. The image consists of a
|
||
|
concatenation of a plain text boot loader, the encrypted
|
||
|
components for kernel, initrd, and cmdline, and the
|
||
|
integrity-protected PV header, containing metadata necessary for
|
||
|
running the guest in PV mode. It's possible to use this image file
|
||
|
as a kernel for zIPL or for a direct kernel boot using QEMU.
|
||
|
Upstream-ID: aa09b292483eb2d79247260fccc2b456dee01e8d
|
||
|
Problem-ID: VS1804
|
||
|
|
||
|
Upstream-Description:
|
||
|
|
||
|
zipl: fix -Waddress-of-packed-member
|
||
|
|
||
|
Reported by GCC 9.2.1 when building with '-Waddress-of-packed-member'.
|
||
|
|
||
|
menu.c: In function 'menu_read':
|
||
|
menu.c:30:22: warning: taking address of packed member of 'struct boot_stage2_params' may result in an unaligned pointer value [-Waddress-of-packed-member]
|
||
|
30 | uint16_t *configs = __stage2_params.config;
|
||
|
| ^~~~~~~~~~~~~~~
|
||
|
menu.c: In function 'menu_list':
|
||
|
menu.c:83:22: warning: taking address of packed member of 'struct boot_stage2_params' may result in an unaligned pointer value [-Waddress-of-packed-member]
|
||
|
83 | uint16_t *configs = __stage2_params.config;
|
||
|
| ^~~~~~~~~~~~~~~
|
||
|
menu.c: In function 'menu':
|
||
|
menu.c:139:22: warning: taking address of packed member of 'struct boot_stage2_params' may result in an unaligned pointer value [-Waddress-of-packed-member]
|
||
|
139 | uint16_t *configs = __stage2_params.config;
|
||
|
| ^~~~~~~~~~~~~~~
|
||
|
|
||
|
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
|
||
|
Reviewed-by: Stefan Haberland <sth@linux.ibm.com>
|
||
|
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
|
||
|
|
||
|
|
||
|
Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
|
||
|
---
|
||
|
zipl/boot/menu.c | 13 +++++--------
|
||
|
1 file changed, 5 insertions(+), 8 deletions(-)
|
||
|
|
||
|
--- a/zipl/boot/menu.c
|
||
|
+++ b/zipl/boot/menu.c
|
||
|
@@ -27,7 +27,6 @@ static void menu_prompt(int timeout)
|
||
|
static int menu_read(void)
|
||
|
{
|
||
|
char *temp_area = (char *)get_zeroed_page();
|
||
|
- uint16_t *configs = __stage2_params.config;
|
||
|
int timeout, rc, i, count = 0;
|
||
|
char *endptr;
|
||
|
int value;
|
||
|
@@ -60,7 +59,7 @@ static int menu_read(void)
|
||
|
value = ebcstrtoul((char *)temp_area, &endptr, 10);
|
||
|
|
||
|
if ((endptr != temp_area) && (value < BOOT_MENU_ENTRIES - 1) &&
|
||
|
- (configs[value] != 0)) {
|
||
|
+ (__stage2_params.config[value] != 0)) {
|
||
|
/* valid config found - finish */
|
||
|
break;
|
||
|
} else {
|
||
|
@@ -80,14 +79,13 @@ out_free_page:
|
||
|
|
||
|
static int menu_list(void)
|
||
|
{
|
||
|
- uint16_t *configs = __stage2_params.config;
|
||
|
char *name;
|
||
|
int i;
|
||
|
|
||
|
for (i = 0; i < BOOT_MENU_ENTRIES; i++) {
|
||
|
- if (configs[i] == 0)
|
||
|
+ if (__stage2_params.config[i] == 0)
|
||
|
continue;
|
||
|
- name = configs[i] + ((void *)&__stage2_params);
|
||
|
+ name = __stage2_params.config[i] + ((void *)&__stage2_params);
|
||
|
printf("%s\n", name);
|
||
|
if (i == 0)
|
||
|
printf("\n");
|
||
|
@@ -136,7 +134,6 @@ static int menu_param(unsigned long *val
|
||
|
|
||
|
int menu(void)
|
||
|
{
|
||
|
- uint16_t *configs = __stage2_params.config;
|
||
|
unsigned long value = 0;
|
||
|
char *cmd_line_extra;
|
||
|
char endstring[15];
|
||
|
@@ -181,11 +178,11 @@ int menu(void)
|
||
|
|
||
|
boot:
|
||
|
/* sanity - config entry not valid */
|
||
|
- if (configs[value] == 0)
|
||
|
+ if (__stage2_params.config[value] == 0)
|
||
|
panic(EINTERNAL, "%s", msg_econfig);
|
||
|
|
||
|
printf("Booting %s\n",
|
||
|
- (char *)(configs[value] +
|
||
|
+ (char *)(__stage2_params.config[value] +
|
||
|
(void *)&__stage2_params + TEXT_OFFSET));
|
||
|
|
||
|
/* append 'BOOT_IMAGE=<num>' to parmline */
|