• Paul Mackerras's avatar
    powerpc: Fix denormalized exception handler · 630573c1
    Paul Mackerras authored
    The denormalized exception handler (denorm_exception_hv) has a couple
    of bugs.  If the CONFIG_PPC_DENORMALISATION option is not selected,
    or the HSRR1_DENORM bit is not set in HSRR1, we don't test whether the
    interrupt occurred within a KVM guest.  On the other hand, if the
    HSRR1_DENORM bit is set and CONFIG_PPC_DENORMALISATION is enabled,
    we corrupt the CFAR and PPR.
    
    To correct these problems, this replaces the open-coded version of
    EXCEPTION_PROLOG_1 that is there currently, and that is missing the
    saving of PPR and CFAR values to the PACA, with an instance of
    EXCEPTION_PROLOG_1.  This adds an explicit KVMTEST after testing
    whether the exception is one we can handle, and adds code to restore
    the CFAR on exit.
    Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
    Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    630573c1
exceptions-64s.S 39.4 KB