Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Step:FrontRunner
s390-tools.19914
s390-tools-sles15sp2-02-zipl-fix-Waddress-of-pa...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File s390-tools-sles15sp2-02-zipl-fix-Waddress-of-packed-member.patch of Package s390-tools.19914
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 */
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor