Commit 56b4c993 authored by Anton Blanchard's avatar Anton Blanchard Committed by Benjamin Herrenschmidt

powerpc/powernv: Fix little endian issues with opal_do_notifier calls

The bitmap in opal_poll_events and opal_handle_interrupt is
big endian, so we need to byteswap it on little endian builds.
Signed-off-by: default avatarAnton Blanchard <anton@samba.org>
Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
parent e2c8b93e
...@@ -242,14 +242,14 @@ void opal_notifier_update_evt(uint64_t evt_mask, ...@@ -242,14 +242,14 @@ void opal_notifier_update_evt(uint64_t evt_mask,
void opal_notifier_enable(void) void opal_notifier_enable(void)
{ {
int64_t rc; int64_t rc;
uint64_t evt = 0; __be64 evt = 0;
atomic_set(&opal_notifier_hold, 0); atomic_set(&opal_notifier_hold, 0);
/* Process pending events */ /* Process pending events */
rc = opal_poll_events(&evt); rc = opal_poll_events(&evt);
if (rc == OPAL_SUCCESS && evt) if (rc == OPAL_SUCCESS && evt)
opal_do_notifier(evt); opal_do_notifier(be64_to_cpu(evt));
} }
void opal_notifier_disable(void) void opal_notifier_disable(void)
...@@ -529,7 +529,7 @@ static irqreturn_t opal_interrupt(int irq, void *data) ...@@ -529,7 +529,7 @@ static irqreturn_t opal_interrupt(int irq, void *data)
opal_handle_interrupt(virq_to_hw(irq), &events); opal_handle_interrupt(virq_to_hw(irq), &events);
opal_do_notifier(events); opal_do_notifier(be64_to_cpu(events));
return IRQ_HANDLED; return IRQ_HANDLED;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment