PCI: iproc-msi: Fix __iomem annotation in decode_msi_hwirq()
authorBen Dooks (Codethink) <ben.dooks@codethink.co.uk>
Tue, 15 Oct 2019 16:07:02 +0000 (17:07 +0100)
committerLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Thu, 17 Oct 2019 10:01:24 +0000 (11:01 +0100)
Fix __iomem attribute on msg variable passed to readl() in
the decode_msi_hwirq() function. Fixes the following sparse
warning:

drivers/pci/controller/pcie-iproc-msi.c:301:17: warning: incorrect type in argument 1 (different address spaces)
drivers/pci/controller/pcie-iproc-msi.c:301:17:    expected void const volatile [noderef] <asn:2> *addr
drivers/pci/controller/pcie-iproc-msi.c:301:17:    got unsigned int [usertype] *[assigned] msg

Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: Andrew Murray <andrew.murray@arm.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Ray Jui <rjui@broadcom.com>
Cc: Scott Branden <sbranden@broadcom.com>
Cc: bcm-kernel-feedback-list@broadcom.com
Cc: linux-pci@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
drivers/pci/controller/pcie-iproc-msi.c

index 0a3f61b..3176ad3 100644 (file)
@@ -293,11 +293,12 @@ static const struct irq_domain_ops msi_domain_ops = {
 
 static inline u32 decode_msi_hwirq(struct iproc_msi *msi, u32 eq, u32 head)
 {
-       u32 *msg, hwirq;
+       u32 __iomem *msg;
+       u32 hwirq;
        unsigned int offs;
 
        offs = iproc_msi_eq_offset(msi, eq) + head * sizeof(u32);
-       msg = (u32 *)(msi->eq_cpu + offs);
+       msg = (u32 __iomem *)(msi->eq_cpu + offs);
        hwirq = readl(msg);
        hwirq = (hwirq >> 5) + (hwirq & 0x1f);