genirq/msi: Check for the presence of an irq domain when validating msi_ctrl
authorMarc Zyngier <maz@kernel.org>
Fri, 16 Dec 2022 11:03:02 +0000 (11:03 +0000)
committerMarc Zyngier <maz@kernel.org>
Fri, 16 Dec 2022 13:27:18 +0000 (13:27 +0000)
commitdb3568fd80a3999413c04ea0cf52596b7b0ad9aa
tree010a886cf91641f2031d3e01c389877b7aff3765
parent84e57d292203a45c96dbcb2e6be9dd80961d981a
genirq/msi: Check for the presence of an irq domain when validating msi_ctrl

For architectures such as s390 and powerpc that do not use
irq domains for MSIs, dev->msi.domain is always NULL, so
the per-device, per-bus MSI domain is also guaranteed to
be NULL.

So checking one without checking the other is bound to result
in a splat, followed by a memory leak as we don't free the MSI
descriptors.

Add the missing check.

Reported-by: Matthew Rosato <mjrosato@linux.ibm.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/e570e70d-19bc-101b-0481-ff9a3cab3504@linux.ibm.com
kernel/irq/msi.c