Skip to content

Commit

Permalink
staging: brcm80211: smac: fix for 64 bit systems
Browse files Browse the repository at this point in the history
A bug was introduced by the following commit (Sep 13):

    staging: brcm80211: use endian annotated structures in brcmsmac

Result was that 64 bits systems will not be able to acquire an IP address.
Also the rmmod crashed. This has been fixed and retested on a Sparc64.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Alwin Beukers <alwin@broadcom.com>
Reviewed-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Roland Vossen authored and Greg Kroah-Hartman committed Oct 5, 2011
1 parent 8be00d9 commit d0f5527
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 4 deletions.
4 changes: 2 additions & 2 deletions drivers/staging/brcm80211/brcmsmac/mac80211_if.c
Original file line number Diff line number Diff line change
Expand Up @@ -1606,7 +1606,7 @@ int brcms_ucode_init_buf(struct brcms_info *wl, void **pbuf, u32 idx)
* Precondition: Since this function is called in brcms_pci_probe() context,
* no locking is required.
*/
int brcms_ucode_init_uint(struct brcms_info *wl, u32 *data, u32 idx)
int brcms_ucode_init_uint(struct brcms_info *wl, size_t *n_bytes, u32 idx)
{
int i, entry;
const u8 *pdata;
Expand All @@ -1623,7 +1623,7 @@ int brcms_ucode_init_uint(struct brcms_info *wl, u32 *data, u32 idx)
"ERROR: fw hdr len\n");
return -ENOMSG;
}
*data = le32_to_cpu(*((__le32 *) pdata));
*n_bytes = le32_to_cpu(*((__le32 *) pdata));
return 0;
}
}
Expand Down
4 changes: 2 additions & 2 deletions drivers/staging/brcm80211/brcmsmac/ucode_loader.h
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,8 @@ extern void brcms_ucode_data_free(struct brcms_ucode *ucode);

extern int brcms_ucode_init_buf(struct brcms_info *wl, void **pbuf,
unsigned int idx);
extern int brcms_ucode_init_uint(struct brcms_info *wl, unsigned *data,
unsigned int idx);
extern int brcms_ucode_init_uint(struct brcms_info *wl, size_t *n_bytes,
unsigned int idx);
extern void brcms_ucode_free_buf(void *);
extern int brcms_check_firmwares(struct brcms_info *wl);

Expand Down

0 comments on commit d0f5527

Please sign in to comment.