• Bjorn Helgaas's avatar
    PCI: spear13xx: Avoid invalid address space conversions · 73a0c2be
    Bjorn Helgaas authored
    The sparse checker complains about converting pointers between address
    spaces.  We correctly stored an __iomem pointer in struct spear13xx_pcie,
    but discarded the __iomem when extracting app_base, causing one warning.
    Then we passed the non-__iomem pointer to writel(), which expects an
    __iomem pointer, causing another warning.
    
    Add the appropriate annotations.
    
    The sparse warnings look like this:
    
      $ make C=2 drivers/pci/controller/
      drivers/pci/controller/dwc/pcie-spear13xx.c:72:54: warning: incorrect type in initializer (different address spaces)
      drivers/pci/controller/dwc/pcie-spear13xx.c:72:54:    expected struct pcie_app_reg *app_reg
      drivers/pci/controller/dwc/pcie-spear13xx.c:72:54:    got void [noderef] __iomem *app_base
      drivers/pci/controller/dwc/pcie-spear13xx.c:78:26: warning: incorrect type in argument 2 (different address spaces)
      drivers/pci/controller/dwc/pcie-spear13xx.c:78:26:    expected void volatile [noderef] __iomem *addr
      drivers/pci/controller/dwc/pcie-spear13xx.c:78:26:    got unsigned int *
    
    Link: https://lore.kernel.org/r/20211223213749.1314142-3-helgaas@kernel.orgSigned-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    Cc: Pratyush Anand <pratyush.anand@gmail.com>
    73a0c2be
pcie-spear13xx.c 6.38 KB