powerpc/powernv: Bump opal_init initcall priority

Michael Ellerman mpe at ellerman.id.au
Fri Jun 12 19:47:35 AEST 2015


On Thu, 2015-11-06 at 09:25:29 UTC, Alistair Popple wrote:
> opal_init() is called via a machine_subsys_initcall(). Due to a hack
> in the eeh code the eeh driver is initialised with at the same
> initcall level. This means depending on link ordering the following
> error can occur because the opal irchip has not been initialised:
> 
> irq: XICS didn't like hwirq-0x9 to VIRQ17 mapping (rc=-22)
> pnv_eeh_post_init: Can't request OPAL event interrupt (0)
> 
> This patch solves the issue by making sure opal_init is called prior
> to the subsystems that may need it.

What is the hack in the eeh code?

I'm seeing eeh_ops->post_init() called from eeh_init() which is
core_initcall_sync(), is that what you're talking about?

Then pnv_eeh_post_init() is the powernv version of eeh_ops->post_init, and it
calls opal_event_request().

So you'd need the irq_chip setup by then I think?

So I guess I'm missing the hack you're talking about.

Regardless of which level it needs to be at, the only thing that needs to run
early is opal_event_init() am I right? Not all of opal_init().

cheers


More information about the Linuxppc-dev mailing list