On 07/09/17 12:41, Masahiro Yamada wrote:
The meaning of "root" in irq_domain_{push,pop} is opposite to theThe exact opposite argument could be used for the data structure. 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.
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.