Re: [PATCH v4 1/6] irqdomain: rename variables in irq_domain_{push,pop}_irq()

From: Marc Zyngier
Date: Thu Sep 07 2017 - 08:47:30 EST


On 07/09/17 12:41, Masahiro Yamada wrote:
> The meaning of "root" in irq_domain_{push,pop} is opposite to the
> documentation. Documentation/IRQ-domain.txt depicts the hierarchy
> IRQ domain as follows:
>
> CPU Vector irq_domain (root irq_domain to manage CPU vectors)
> ^
> |
> Interrupt Remapping irq_domain (manage irq_remapping entries)
> ^
> |
> IOAPIC irq_domain (manage IOAPIC delivery entries/pins)
>
> From above, the inner-most domain (nearest to the CPU) is "root".
>
> The document also says, "When building irq_domain hierarchy, the
> irq_domain near to the device is child and the irq_domain near to
> CPU is parent." This is how irq_data->parent_data works. In
> contrast, these function use a variable "child_irq_data" for that.
The exact opposite argument could be used for the data structure. The
irq_desc is the root of the list ordered with parent_data.

Yes, this is confusing, but because we're using the same English words
to describe two different things, we're bound to make one thing more
difficult. I'm unconvinced that this change helps anything (it certainly
confuses me more than anything else).

Thanks,

M.
--
Jazz is not dead. It just smells funny...