• Vasily Gorbik's avatar
    s390: avoid using global register for current_stack_pointer · e3c11025
    Vasily Gorbik authored
    Commit 30de14b1 ("s390: current_stack_pointer shouldn't be a
    function") made current_stack_pointer a global register variable like
    on many other architectures. Unfortunately on s390 it uncovers old
    gcc bug which is fixed only since gcc-9.1 [gcc commit 3ad7fed1cc87
    ("S/390: Fix PR89775. Stackpointer save/restore instructions removed")]
    and backported to gcc-8.4 and later. Due to this bug gcc versions prior
    to 8.4 generate broken code which leads to stack corruptions.
    
    Current minimal gcc version required to build the kernel is declared
    as 5.1. It is not possible to fix all old gcc versions, so work
    around this problem by avoiding using global register variable for
    current_stack_pointer.
    
    Fixes: 30de14b1 ("s390: current_stack_pointer shouldn't be a function")
    Reviewed-by: default avatarHeiko Carstens <hca@linux.ibm.com>
    Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
    Signed-off-by: default avatarAlexander Gordeev <agordeev@linux.ibm.com>
    e3c11025
processor.h 8.73 KB