• Alistair Popple's avatar
    powerpc/opal-irqchip: Fix double endian conversion · 25642e14
    Alistair Popple authored
    The OPAL event calls return a mask of events that are active in big
    endian format. This is checked when unmasking the events in the
    irqchip by comparison with a cached value. The cached value was stored
    in big endian format but should've been converted to CPU endian
    first.
    
    This bug leads to OPAL event delivery being delayed or dropped on some
    systems. Symptoms may include a non-functional console.
    
    The bug is fixed by calling opal_handle_events(...) instead of
    duplicating code in opal_event_unmask(...).
    
    Fixes: 9f0fd049 ("powerpc/powernv: Add a virtual irqchip for opal events")
    Cc: stable@vger.kernel.org # v4.2+
    Reported-by: default avatarDouglas L Lehr <dllehr@us.ibm.com>
    Signed-off-by: default avatarAlistair Popple <alistair@popple.id.au>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    25642e14
opal-irqchip.c 6.48 KB