]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
irqchip/loongson-pch-msi: Adjust irqchip driver for 32BIT/64BIT
authorHuacai Chen <chenhuacai@loongson.cn>
Tue, 13 Jan 2026 08:59:38 +0000 (16:59 +0800)
committerThomas Gleixner <tglx@kernel.org>
Sun, 18 Jan 2026 13:39:17 +0000 (14:39 +0100)
irq_domain_alloc_fwnode() takes a parameter with the phys_addr_t type.
Currently the code passe acpi_pchmsi->msg_address to it.

This can only work on 64BIT platform because its type is u64, so cast it to
phys_addr_t and then the driver works on both 32BIT and 64BIT platform.

[ tglx: Make the cast explicit and fixup coding style. ]

Co-developed-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
Link: https://patch.msgid.link/20260113085940.3344837-6-chenhuacai@loongson.cn
drivers/irqchip/irq-loongson-pch-msi.c

index 4aedc9b90ff77a86c95318f7d777d0e431b5fabd..91c856c65d9d74d6e902aac1df9ed6bb0c7dbb77 100644 (file)
@@ -263,12 +263,13 @@ struct fwnode_handle *get_pch_msi_handle(int pci_segment)
 
 int __init pch_msi_acpi_init(struct irq_domain *parent, struct acpi_madt_msi_pic *acpi_pchmsi)
 {
-       int ret;
+       phys_addr_t msg_address = (phys_addr_t)acpi_pchmsi->msg_address;
        struct fwnode_handle *domain_handle;
+       int ret;
 
-       domain_handle = irq_domain_alloc_fwnode(&acpi_pchmsi->msg_address);
-       ret = pch_msi_init(acpi_pchmsi->msg_address, acpi_pchmsi->start,
-                               acpi_pchmsi->count, parent, domain_handle);
+       domain_handle = irq_domain_alloc_fwnode(&msg_address);
+       ret = pch_msi_init(msg_address, acpi_pchmsi->start, acpi_pchmsi->count,
+                          parent, domain_handle);
        if (ret < 0)
                irq_domain_free_fwnode(domain_handle);