• Martin Schwidefsky's avatar
    s390/setup: fix early warning messages · b52bdf53
    Martin Schwidefsky authored
    commit 87276384 upstream.
    
    The setup_lowcore() function creates a new prefix page for the boot CPU.
    The PSW mask for the system_call, external interrupt, i/o interrupt and
    the program check handler have the DAT bit set in this new prefix page.
    
    At the time setup_lowcore is called the system still runs without virtual
    address translation, the paging_init() function creates the kernel page
    table and loads the CR13 with the kernel ASCE.
    
    Any code between setup_lowcore() and the end of paging_init() that has
    a BUG or WARN statement will create a program check that can not be
    handled correctly as there is no kernel page table yet.
    
    To allow early WARN statements initially setup the lowcore with DAT off
    and set the DAT bit only after paging_init() has completed.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    b52bdf53
setup.c 26.2 KB