irqdomain: Report irq number for NOMAP domains
authorXu Qiang <xuqiang36@huawei.com>
Tue, 19 Jul 2022 06:36:40 +0000 (06:36 +0000)
committerMarc Zyngier <maz@kernel.org>
Tue, 19 Jul 2022 13:51:13 +0000 (14:51 +0100)
When using a NOMAP domain, __irq_resolve_mapping() doesn't store
the Linux IRQ number at the address optionally provided by the caller.
While this isn't a huge deal (the returned value is guaranteed
to the hwirq that was passed as a parameter), let's honour the letter
of the API by writing the expected value.

Fixes: d22558dd0a6c (“irqdomain: Introduce irq_resolve_mapping()”)
Signed-off-by: Xu Qiang <xuqiang36@huawei.com>
[maz: commit message]
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20220719063641.56541-2-xuqiang36@huawei.com
kernel/irq/irqdomain.c

index d5ce965105493df4fcb098d1fd6f86af52ae5073..481abb885d61f731c7d7105e3d68286c08bb5a0e 100644 (file)
@@ -910,6 +910,8 @@ struct irq_desc *__irq_resolve_mapping(struct irq_domain *domain,
                        data = irq_domain_get_irq_data(domain, hwirq);
                        if (data && data->hwirq == hwirq)
                                desc = irq_data_to_desc(data);
+                       if (irq && desc)
+                               *irq = hwirq;
                }
 
                return desc;