• Greg Kurz's avatar
    powerpc/vphn: parsing code rewrite · 3338a65b
    Greg Kurz authored
    The current VPHN parsing logic has some flaws that this patch aims to fix:
    
    1) when the value 0xffff is read, the value 0xffffffff gets added to the
       the output list and its element count isn't incremented. This is wrong.
       According to PAPR+ the domain identifiers are packed into a sequence
       terminated by the "reserved value of all ones". This means that 0xffff
       is a stream terminator.
    
    2) the combination of byteswaps and casts make the code hardly readable.
       Let's parse the stream one 16-bit field at a time instead.
    
    3) it is assumed that the hypercall returns 12 32-bit values packed into
       6 64-bit registers. According to PAPR+, the domain identifiers may be
       streamed as 16-bit values. Let's increase the number of expected numbers
       to 24.
    Signed-off-by: default avatarGreg Kurz <gkurz@linux.vnet.ibm.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    3338a65b
vphn.c 1.99 KB