On 03.04.20 21:55, David Hildenbrand wrote: > > >> Am 03.04.2020 um 19:56 schrieb Christian Borntraeger <borntraeger@xxxxxxxxxx>: >> >> >> >>> On 03.04.20 17:30, David Hildenbrand wrote: >>> In case we have a region 1 ASCE, our shadow/g3 address can have any value. >>> Unfortunately, (-1UL << 64) is undefined and triggers sometimes, >>> rejecting valid shadow addresses when trying to walk our shadow table >>> hierarchy. >> >> I thin the range of the addresses do not matter. >> Took me a while to understand maybe rephrase that: >> >> In case we have a region 1 the following calculation >> (31 + ((gmap->asce & _ASCE_TYPE_MASK) >> 2)*11) >> results in 64. As shifts beyond the size are undefined the compiler is free to use >> instructions like sllg. sllg will only use 6 bits of the shift value (here 64) >> resulting in no shift at all. That means that ALL addresses will be rejected. > > Interestingly, it would not fail when shadowing the r2t, but only when trying to shadow the r3t. > >> >> With that this makes sense. >> >> Reviewed-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> >> > > In case there are no other comments, can you fixup when applying, or do you want me to resend? I can fixup.