On Tue, Jan 26, 2016 at 7:52 AM, Marc Zyngier <[email protected]> wrote:
> So far, when trying to associate a device with its MSI domain,
> we first lookup the domain using a MSI token, and if this
> doesn't return anything useful, we pick up any domain matching
> the same node.
>
> This logic is broken for two reasons:
> 1) Only the generic MSI code (PCI or platform) sets this token
>    to PCI/MSI or platform MSI. So we're guaranteed that if there
>    is something to be found, we will find it with the first call.
> 2) If we have a convoluted situation where:
>    - a single node implements both wired and MSI interrupts
>    - MSI support for that HW hasn't been compiled in
>    we'll end up using the wired domain for MSIs anyway, and things
>    break badly.
>
> So let's just remove __of_get_msi_domain, and replace it by a direct
> call to irq_find_matching_host, because that's what we really want.
>
> Signed-off-by: Marc Zyngier <[email protected]>
> ---
>  drivers/of/irq.c | 18 +++---------------
>  1 file changed, 3 insertions(+), 15 deletions(-)

Acked-by: Rob Herring <[email protected]>

Reply via email to