• Christian Borntraeger's avatar
    s390/lowcore: reserve 96 bytes for IRB in lowcore · e4a0cc26
    Christian Borntraeger authored
    commit 993072ee upstream.
    
    The IRB might be 96 bytes if the extended-I/O-measurement facility is
    used. This feature is currently not used by Linux, but struct irb
    already has the emw defined. So let's make the irb in lowcore match the
    size of the internal data structure to be future proof.
    We also have to add a pad, to correctly align the paste.
    
    The bigger irb field also circumvents a bug in some QEMU versions that
    always write the emw field on test subchannel and therefore destroy the
    paste definitions of this CPU. Running under these QEMU version broke
    some timing functions in the VDSO and all users of these functions,
    e.g. some JREs.
    Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
    Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
    Cc: Sebastian Ott <sebott@linux.vnet.ibm.com>
    Cc: Cornelia Huck <cornelia.huck@de.ibm.com>
    [bwh: Backported to 3.2: offsets of the affected fields in the 64-bit version
     of struct _lowcore are 128 bytes smaller]
    Signed-off-by: default avatarBen Hutchings <ben@decadent.org.uk>
    e4a0cc26
lowcore.h 9.96 KB