]> 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)
commit88108ea489e032f6e06c3cfb9ae2cc49fe582608
tree1aa2e850daa6cc86ba24b7330c319a387df873f9
parent02a93742ae3766be08e795bc2df7006a84fc60db
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: b4538ef06a75 ("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