diff options
author | Roland Vossen <rvossen@broadcom.com> | 2011-08-26 15:19:36 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-08-26 10:53:12 -0700 |
commit | b6f29edecd95f2eb4715e9d1778688eb1a44c83c (patch) | |
tree | 41c2b2b23012a1bca6edbd7bd7d79b802728e362 | |
parent | b5a44c8ad3378e88a5a14e1f74495c292a755527 (diff) |
staging: brcm80211: bugfix for 32 bit power pc platform
On some platforms resource_size_t == 64 but but unsigned long is only 32-bits.
In this particular problem, reported and fixed by Tony Breeds, a physical
address was truncated as a result.
Reported-by: Tony Breeds <tony@bakeyournoodle.com>
Reviewed-by: Arend van Spriel <arend@broadcom.com>
Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Signed-off-by: Roland Vossen <rvossen@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r-- | drivers/staging/brcm80211/brcmsmac/mac80211_if.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/drivers/staging/brcm80211/brcmsmac/mac80211_if.c b/drivers/staging/brcm80211/brcmsmac/mac80211_if.c index 237017186131..9b787e6c0880 100644 --- a/drivers/staging/brcm80211/brcmsmac/mac80211_if.c +++ b/drivers/staging/brcm80211/brcmsmac/mac80211_if.c @@ -752,12 +752,11 @@ static int brcms_set_hint(struct brcms_info *wl, char *abbrev) * is called in brcms_pci_probe() context, therefore no locking required. */ static struct brcms_info *brcms_attach(u16 vendor, u16 device, - unsigned long regs, + resource_size_t regs, struct pci_dev *btparam, uint irq) { struct brcms_info *wl = NULL; int unit, err; - unsigned long base_addr; struct ieee80211_hw *hw; u8 perm[ETH_ALEN]; @@ -780,11 +779,7 @@ static struct brcms_info *brcms_attach(u16 vendor, u16 device, /* setup the bottom half handler */ tasklet_init(&wl->tasklet, brcms_dpc, (unsigned long) wl); - - - base_addr = regs; - - wl->regsva = ioremap_nocache(base_addr, PCI_BAR0_WINSZ); + wl->regsva = ioremap_nocache(regs, PCI_BAR0_WINSZ); if (wl->regsva == NULL) { wiphy_err(wl->wiphy, "wl%d: ioremap() failed\n", unit); goto fail; |