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 _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev