• Victor Kamensky's avatar
    ARM: KVM: one_reg coproc set and get BE fixes · 73891f72
    Victor Kamensky authored
    Fix code that handles KVM_SET_ONE_REG, KVM_GET_ONE_REG ioctls to work in BE
    image. Before this fix get/set_one_reg functions worked correctly only in
    LE case - reg_from_user was taking 'void *' kernel address that actually could
    be target/source memory of either 4 bytes size or 8 bytes size, and code copied
    from/to user memory that could hold either 4 bytes register, 8 byte register
    or pair of 4 bytes registers.
    
    In order to work in endian agnostic way reg_from_user to reg_to_user functions
    should copy register value only to kernel variable with size that matches
    register size. In few place where size mismatch existed fix issue on macro
    caller side.
    Signed-off-by: default avatarVictor Kamensky <victor.kamensky@linaro.org>
    Reviewed-by: default avatarChristoffer Dall <christoffer.dall@linaro.org>
    Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
    73891f72
coproc.c 35.4 KB