• Ram Pai's avatar
    powerpc: Swizzle around 4K PTE bits to free up bit 5 and bit 6 · 273b4936
    Ram Pai authored
    We need PTE bits 3 ,4, 5, 6 and 57 to support protection-keys,
    because these are the bits we want to consolidate on across all
    configuration to support protection keys.
    
    Bit 3,4,5 and 6 are currently used on 4K-pte kernels. But bit 9
    and 10 are available. Hence we use the two available bits and
    free up bit 5 and 6. We will still not be able to free up bit 3
    and 4. In the absence of any other free bits, we will have to
    stay satisfied with what we have :-(. This means we will not
    be able to support 32 protection keys, but only 8. The bit
    numbers are big-endian as defined in the ISA3.0
    
    This patch does the following change to 4K PTE.
    
    H_PAGE_F_SECOND (S) which occupied bit 4 moves to bit 7.
    H_PAGE_F_GIX (G,I,X) which occupied bit 5, 6 and 7 also moves
    to bit 8,9, 10 respectively.
    H_PAGE_HASHPTE (H) which occupied bit 8 moves to bit 4.
    
    Before the patch, the 4k PTE format was as follows
    
     0 1 2 3 4  5  6  7  8 9 10....................57.....63
     : : : : :  :  :  :  : : :                      :     :
     v v v v v  v  v  v  v v v                      v     v
    ,-,-,-,-,--,--,--,--,-,-,-,-,-,------------------,-,-,-,
    |x|x|x|B|S |G |I |X |H| | |x|x|................| |x|x|x|
    '_'_'_'_'__'__'__'__'_'_'_'_'_'________________'_'_'_'_'
    
    After the patch, the 4k PTE format is as follows
    
     0 1 2 3 4  5  6  7  8 9 10....................57.....63
     : : : : :  :  :  :  : : :                      :     :
     v v v v v  v  v  v  v v v                      v     v
    ,-,-,-,-,--,--,--,--,-,-,-,-,-,------------------,-,-,-,
    |x|x|x|B|H |  |  |S |G|I|X|x|x|................| |.|.|.|
    '_'_'_'_'__'__'__'__'_'_'_'_'_'________________'_'_'_'_'
    
    The patch has no code changes; just swizzles around bits.
    Signed-off-by: default avatarRam Pai <linuxram@us.ibm.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    273b4936
hash-64k.h 8.28 KB