mirror of
https://github.com/ibm-s390-linux/s390-tools.git
synced 2026-08-05 02:14:52 +00:00
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>
This commit is contained in:
committed by
Jan Höppner
parent
2790d4faaa
commit
aa09b29248
@@ -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 *value)
|
||||
|
||||
int menu(void)
|
||||
{
|
||||
uint16_t *configs = __stage2_params.config;
|
||||
unsigned long value = 0;
|
||||
char *cmd_line_extra;
|
||||
char endstring[15];
|
||||
@@ -178,11 +175,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 */
|
||||
|
||||
Reference in New Issue
Block a user