Commit add923b7 authored by Janosch Frank's avatar Janosch Frank Committed by Thomas Huth
Browse files

pc-bios: s390x: Move panic() into header and add infinite loop



panic() was defined for the ccw and net bios, i.e. twice, so it's
cleaner to rather put it into the header.

Also let's add an infinite loop into the assembly of disabled_wait() so
the caller doesn't need to take care of it.

Signed-off-by: default avatarJanosch Frank <frankja@linux.ibm.com>
Reviewed-by: default avatarPierre Morel <pmorel@linux.ibm.com>
Reviewed-by: default avatarDavid Hildenbrand <david@redhat.com>
Reviewed-by: default avatarThomas Huth <thuth@redhat.com>
Message-Id: <20200624075226.92728-9-frankja@linux.ibm.com>
Signed-off-by: default avatarThomas Huth <thuth@redhat.com>
parent fe75c657
Loading
Loading
Loading
Loading
+0 −7
Original line number Diff line number Diff line
@@ -46,13 +46,6 @@ void write_iplb_location(void)
    lowcore->ptr_iplb = ptr2u32(&iplb);
}

void panic(const char *string)
{
    sclp_print(string);
    disabled_wait();
    while (1) { }
}

unsigned int get_loadparm_index(void)
{
    return atoui(loadparm_str);
+0 −8
Original line number Diff line number Diff line
@@ -439,14 +439,6 @@ static int net_try_direct_tftp_load(filename_ip_t *fn_ip)
    return rc;
}

void panic(const char *string)
{
    sclp_print(string);
    for (;;) {
        disabled_wait();
    }
}

void write_subsystem_identification(void)
{
    SubChannelId *schid = (SubChannelId *) 184;
+7 −2
Original line number Diff line number Diff line
@@ -50,12 +50,11 @@ typedef unsigned long long __u64;
#include "iplb.h"

/* start.s */
void disabled_wait(void);
void disabled_wait(void) __attribute__ ((__noreturn__));
void consume_sclp_int(void);
void consume_io_int(void);

/* main.c */
void panic(const char *string);
void write_subsystem_identification(void);
void write_iplb_location(void);
extern char stack[PAGE_SIZE * 8] __attribute__((__aligned__(PAGE_SIZE)));
@@ -91,6 +90,12 @@ bool menu_is_enabled_enum(void);

#define MAX_BOOT_ENTRIES  31

static inline void panic(const char *string)
{
    sclp_print(string);
    disabled_wait();
}

static inline void fill_hex(char *out, unsigned char val)
{
    const char hex[] = "0123456789abcdef";
+3 −2
Original line number Diff line number Diff line
@@ -49,6 +49,7 @@ memsetxc:
disabled_wait:
	larl	%r1,disabled_wait_psw
	lpswe	0(%r1)
1:	j	1b


/*