]> git.baikalelectronics.ru Git - kernel.git/commit
powerpc/opal-irqchip: Fix double endian conversion
authorAlistair Popple <alistair@popple.id.au>
Mon, 7 Dec 2015 00:28:28 +0000 (11:28 +1100)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 8 Dec 2015 05:53:31 +0000 (16:53 +1100)
commitc1f1fa135d3fc9ebcdf67e180cfea81106bcbb75
tree1aa2e850daa6cc86ba24b7330c319a387df873f9
parent89033b9e7287d0d0e3ed6bb5899cac0ab8ccdd9d
powerpc/opal-irqchip: Fix double endian conversion

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: 57f74fe79b4c ("powerpc/powernv: Add a virtual irqchip for opal events")
Cc: stable@vger.kernel.org # v4.2+
Reported-by: Douglas L Lehr <dllehr@us.ibm.com>
Signed-off-by: Alistair Popple <alistair@popple.id.au>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/platforms/powernv/opal-irqchip.c