• S
    s390/head: fix error message on unsupported hardware · c6eafbf9
    Sascha Silbe 提交于
    startup calls the C function _sclp_print_early() if the machine we're
    running on is not supported by the kernel. sclp.c is getting built
    with -m64, so _sclp_print_early() expects the zSeries ELF ABI to be
    used.
    
    We previously called _sclp_print_early() using the S/390 ELF ABI, with
    a stack frame size of 96 bytes and while being in 31-bit address
    mode. This caused _sclp_wait_int() (called indirectly from
    _sclp_print_early()) to jump to an undefined address. While
    _sclp_wait_int() contained some code to deal with being called in
    31-bit addressing mode, it didn't quite work. While fixing this is
    possible, the code would still only work by chance and could break any
    time.
    
    Ensure compliance with the zSeries ELF ABI by switching to 64-bit
    addressing mode early and using a minimum stack frame size of 160
    bytes.
    Signed-off-by: NSascha Silbe <silbe@linux.vnet.ibm.com>
    Acked-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
    c6eafbf9
head.S 12.2 KB