summaryrefslogtreecommitdiffstats
path: root/drivers/staging/brcm80211
diff options
context:
space:
mode:
authorRoland Vossen2011-08-26 15:19:36 +0200
committerGreg Kroah-Hartman2011-08-26 19:53:12 +0200
commitb6f29edecd95f2eb4715e9d1778688eb1a44c83c (patch)
tree41c2b2b23012a1bca6edbd7bd7d79b802728e362 /drivers/staging/brcm80211
parentstaging: brcm80211: assigned physical addresses in dma.c correct type (diff)
downloadkernel-qcow2-linux-b6f29edecd95f2eb4715e9d1778688eb1a44c83c.tar.gz
kernel-qcow2-linux-b6f29edecd95f2eb4715e9d1778688eb1a44c83c.tar.xz
kernel-qcow2-linux-b6f29edecd95f2eb4715e9d1778688eb1a44c83c.zip
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>
Diffstat (limited to 'drivers/staging/brcm80211')
-rw-r--r--drivers/staging/brcm80211/brcmsmac/mac80211_if.c9
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;