I recently noticed that all irq_domain_alloc_fwnode were passing a VA to it, which is unfortunate as this is designed to appear in debugfs (and we don't like to leak VAs). Disaster was avoided thanks to our ____ptrval____ friend, but it remains that the whole thing is pretty useless if you have more than a single domain (they all have the same name and creation fails).
In order to sort it out, change all users of irq_domain_alloc_fwnode to pass the PA of the irqchip the domain will be associated with. One notable exception is the HyperV PCI controller driver which has no PA to associate with. This is solved by using a named fwnode instead, using the device GUID. Finally, irq_domain_alloc_fwnode() is changed to pa a pionter to a PA, which can be safely advertised in debugfs. Marc Zyngier (8): irqchip/gic-v3: Register the distributor's PA instead of its VA in fwnode irqchip/gic-v3-its: Register the ITS' PA instead of its VA in fwnode irqchip/gic: Register the distributor's PA instead of its VA in fwnode irqchip/gic-v2m: Register the frame's PA instead of its VA in fwnode irqchip/ixp4xx: Register the base PA instead of its VA in fwnode gpio/ixp4xx: Register the base PA instead of its VA in fwnode PCI: hv: Allocate a named fwnode instead of an address-based one irqdomain/debugfs: Use PAs to generate fwnode names drivers/gpio/gpio-ixp4xx.c | 2 +- drivers/irqchip/irq-gic-v2m.c | 2 +- drivers/irqchip/irq-gic-v3-its.c | 2 +- drivers/irqchip/irq-gic-v3.c | 2 +- drivers/irqchip/irq-gic.c | 2 +- drivers/irqchip/irq-ixp4xx.c | 2 +- drivers/pci/controller/pci-hyperv.c | 10 +++++++++- include/linux/irqdomain.h | 6 +++--- kernel/irq/irqdomain.c | 9 +++++---- 9 files changed, 23 insertions(+), 14 deletions(-) -- 2.20.1