[PATCH] cxl: sparse: add __iomem annotations in vphb.c
Andrew Donnellan
andrew.donnellan at au1.ibm.com
Wed Oct 28 14:29:39 AEDT 2015
sparse identifies the following issues:
drivers/misc/cxl/vphb.c:131:17: warning: incorrect type in assignment
(different address spaces)
drivers/misc/cxl/vphb.c:131:17: expected void volatile [noderef]
<asn:2>*<noident>
drivers/misc/cxl/vphb.c:131:17: got void *<noident>
drivers/misc/cxl/vphb.c:252:23: warning: incorrect type in assignment
(different address spaces)
drivers/misc/cxl/vphb.c:252:23: expected void [noderef]
<asn:2>*cfg_data
drivers/misc/cxl/vphb.c:252:23: got void *<noident>
Add __iomem annotations and remove unnecessary casts to clear up these
warnings.
Reported-by: Daniel Axtens <dja at axtens.net>
Signed-off-by: Andrew Donnellan <andrew.donnellan at au1.ibm.com>
---
This patch is a respin of https://patchwork.ozlabs.org/patch/504976/,
incorporating comments from mpe.
As with the old patch, this patch doesn't make any changes to the return
type of cxl_pcie_cfg_addr() and casts to an __iomem type when we use it in
cxl_pcie_config_info(). cxl_pcie_cfg_addr() returns an unsigned long,
rather than a pointer type, as we use its return value in bitwise
operations. If there's a better way to handle this I'd like to know.
---
drivers/misc/cxl/vphb.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/misc/cxl/vphb.c b/drivers/misc/cxl/vphb.c
index c241e15..588bfc0 100644
--- a/drivers/misc/cxl/vphb.c
+++ b/drivers/misc/cxl/vphb.c
@@ -128,7 +128,7 @@ static int cxl_pcie_config_info(struct pci_bus *bus, unsigned int devfn,
return PCIBIOS_BAD_REGISTER_NUMBER;
addr = cxl_pcie_cfg_addr(phb, bus->number, devfn, offset);
- *ioaddr = (void *)(addr & ~0x3ULL);
+ *ioaddr = (void __iomem *)(addr & ~0x3ULL);
*shift = ((addr & 0x3) * 8);
switch (len) {
case 1:
@@ -249,7 +249,7 @@ int cxl_pci_vphb_add(struct cxl_afu *afu)
/* Setup the PHB using arch provided callback */
phb->ops = &cxl_pcie_pci_ops;
phb->cfg_addr = afu->afu_desc_mmio + afu->crs_offset;
- phb->cfg_data = (void *)(u64)afu->crs_len;
+ phb->cfg_data = (void __iomem *)afu->crs_len;
phb->private_data = afu;
phb->controller_ops = cxl_pci_controller_ops;
--
Andrew Donnellan Software Engineer, OzLabs
andrew.donnellan at au1.ibm.com Australia Development Lab, Canberra
+61 2 6201 8874 (work) IBM Australia Limited
More information about the Linuxppc-dev
mailing list