• Simon Guo's avatar
    powerpc: Set used_(vsr|vr|spe) in sigreturn path when MSR bits are active · e1c0d66f
    Simon Guo authored
    Normally, when MSR[VSX/VR/SPE] bits == 1, the used_vsr/used_vr/used_spe
    bit have already been set. However when loading a signal frame from user
    space we need to explicitly set used_vsr/used_vr/used_spe to make them
    consistent with the MSR bits from the signal frame.
    
    For example, CRIU application, who utilizes sigreturn to restore
    checkpointed process, will lead to the case where MSR[VSX] bit is active
    in signal frame, but used_vsr bit is not set in the kernel. (the same
    applies to VR/SPE).
    
    This patch fixes this by always setting used_* bit when MSR related bits
    are active in signal frame and we are doing sigreturn.
    
    Based on a proposal by Benh.
    Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: default avatarSimon Guo <wei.guo.simon@gmail.com>
    [mpe: Massage change log]
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    e1c0d66f
signal_64.c 25.9 KB