2014-04-23 12:59:55

by Anders Darander

[permalink] [raw]
Subject: [PATCH linux-next v2] staging/rtl8821ae: fix sparse address space warning

Change the definition of pci_mem_start|end from correct from pci_io(un)map's
point of view.

Signed-off-by: Anders Darander <[email protected]>
---

Changes v1 -> v2:
* Change the struct definition instead of casting all
pci_iomap and pci_iounmap calls.

drivers/staging/rtl8821ae/pci.c | 14 +++++++-------
drivers/staging/rtl8821ae/wifi.h | 4 ++--
2 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/staging/rtl8821ae/pci.c b/drivers/staging/rtl8821ae/pci.c
index a562aa6..5306e66 100644
--- a/drivers/staging/rtl8821ae/pci.c
+++ b/drivers/staging/rtl8821ae/pci.c
@@ -2313,16 +2313,16 @@ int __devinit rtl_pci_probe(struct pci_dev *pdev,

/*shared mem start */
rtlpriv->io.pci_mem_start =
- (unsigned long)pci_iomap(pdev,
+ pci_iomap(pdev,
rtlpriv->cfg->bar_id, pmem_len);
- if (rtlpriv->io.pci_mem_start == 0) {
+ if (rtlpriv->io.pci_mem_start == NULL) {
RT_ASSERT(false, ("Can't map PCI mem\n"));
goto fail2;
}

RT_TRACE(COMP_INIT, DBG_DMESG,
("mem mapped space: start: 0x%08lx len:%08lx "
- "flags:%08lx, after map:0x%08lx\n",
+ "flags:%08lx, after map:0x%p\n",
pmem_start, pmem_len, pmem_flags,
rtlpriv->io.pci_mem_start));

@@ -2415,8 +2415,8 @@ fail3:
rtl_deinit_core(hw);
ieee80211_free_hw(hw);

- if (rtlpriv->io.pci_mem_start != 0)
- pci_iounmap(pdev, (void *)rtlpriv->io.pci_mem_start);
+ if (rtlpriv->io.pci_mem_start != NULL )
+ pci_iounmap(pdev, rtlpriv->io.pci_mem_start);

fail2:
pci_release_regions(pdev);
@@ -2478,8 +2478,8 @@ void rtl_pci_disconnect(struct pci_dev *pdev)
pci_disable_msi(rtlpci->pdev);

list_del(&rtlpriv->list);
- if (rtlpriv->io.pci_mem_start != 0) {
- pci_iounmap(pdev, (void *)rtlpriv->io.pci_mem_start);
+ if (rtlpriv->io.pci_mem_start != NULL) {
+ pci_iounmap(pdev, rtlpriv->io.pci_mem_start);
pci_release_regions(pdev);
}

diff --git a/drivers/staging/rtl8821ae/wifi.h b/drivers/staging/rtl8821ae/wifi.h
index 17a9d9f..e8250da 100644
--- a/drivers/staging/rtl8821ae/wifi.h
+++ b/drivers/staging/rtl8821ae/wifi.h
@@ -1086,8 +1086,8 @@ struct rtl_io {
struct device *dev;

/*PCI MEM map */
- unsigned long pci_mem_end; /*shared mem end */
- unsigned long pci_mem_start; /*shared mem start */
+ void __iomem *pci_mem_end; /*shared mem end */
+ void __iomem *pci_mem_start; /*shared mem start */

/*PCI IO map */
unsigned long pci_base_addr; /*device I/O address */
--
2.0.0.rc0


2014-04-23 13:12:54

by Dan Carpenter

[permalink] [raw]
Subject: Re: [PATCH linux-next v2] staging/rtl8821ae: fix sparse address space warning

On Wed, Apr 23, 2014 at 02:59:46PM +0200, Anders Darander wrote:
> Change the definition of pci_mem_start|end from correct from pci_io(un)map's
> point of view.
>

Terrific. Thanks!

If you really wanted to then you could just delete pci_mem_end and also
you could remove all the casting of pci_mem_start in
drivers/staging/rtl8821ae/pci.h but this patch is an improvement on its
own so someone can do that later if they want.

Reviewed-by: Dan Carpenter <[email protected]>

regards,
dan carpenter