irqchip/gicv2m: Miscellaneous fixes for v2m resources and SPI ranges
authorSuravee Suthikulpanit <Suravee.Suthikulpanit@amd.com>
Wed, 23 Dec 2015 00:24:23 +0000 (16:24 -0800)
committerThomas Gleixner <tglx@linutronix.de>
Tue, 29 Dec 2015 10:58:53 +0000 (11:58 +0100)
This patch contain fixes for v2m resources and SPI ranges:

  * Fix off-by-one error when set up v2m resource end range in
    gicv2m_acpi_init().

  * Fix the off-by-one print error for SPI range.

  * Use %pR to properly print resource range information.

Both ACPI and DT should now print:

  GICv2m: range[mem 0xe1180000-0xe1180fff], SPI[64:319]

Suggested-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com>
Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Catalin Marinas <Catalin.Marinas@arm.com>
Cc: <hanjun.guo@linaro.org>
Cc: <tomasz.nowicki@linaro.org>
Cc: <graeme.gregory@linaro.org>
Cc: <dhdang@apm.com>
Cc: <linux-arm-kernel@lists.infradead.org>
Cc: <marc.zyngier@arm.com>
Cc: <jason@lakedaemon.net>
Cc: <rjw@rjwysocki.net>
Link: http://lkml.kernel.org/r/1450830263-28914-1-git-send-email-Suravee.Suthikulpanit@amd.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
drivers/irqchip/irq-gic-v2m.c

index e2d2d027637da98db6ba770fbd70901a790aa3c7..c779f83e511d4f6c889a88aa38ffa8086228738e 100644 (file)
@@ -365,9 +365,8 @@ static int __init gicv2m_init_one(struct fwnode_handle *fwnode,
 
        list_add_tail(&v2m->entry, &v2m_nodes);
 
-       pr_info("range[%#lx:%#lx], SPI[%d:%d]\n",
-               (unsigned long)res->start, (unsigned long)res->end,
-               v2m->spi_start, (v2m->spi_start + v2m->nr_spis));
+       pr_info("range%pR, SPI[%d:%d]\n", res,
+               v2m->spi_start, (v2m->spi_start + v2m->nr_spis - 1));
        return 0;
 
 err_iounmap:
@@ -456,7 +455,8 @@ acpi_parse_madt_msi(struct acpi_subtable_header *header,
                return -EINVAL;
 
        res.start = m->base_address;
-       res.end = m->base_address + SZ_4K;
+       res.end = m->base_address + SZ_4K - 1;
+       res.flags = IORESOURCE_MEM;
 
        if (m->flags & ACPI_MADT_OVERRIDE_SPI_VALUES) {
                spi_start = m->spi_base;