Skip to content

Commit

Permalink
staging: brcm80211: fixed sparse endianness warnings on fullmac ratespec
Browse files Browse the repository at this point in the history
Structure that is sent to the dongle has been annotated.

Reported-by: Johannes Berg <johannes@sipsolutions.net>
Reviewed-by: Arend van Spriel <arend@broadcom.com>
Reviewed-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Roland Vossen authored and Greg Kroah-Hartman committed Sep 16, 2011
1 parent 7d852d1 commit c17f70d
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 14 deletions.
7 changes: 7 additions & 0 deletions drivers/staging/brcm80211/brcmfmac/dhd.h
Original file line number Diff line number Diff line change
Expand Up @@ -400,6 +400,13 @@ struct brcmf_bss_info {
/* variable length Information Elements */
};

struct brcm_rateset_le {
/* # rates in this set */
__le32 count;
/* rates in 500kbps units w/hi bit set if basic */
u8 rates[WL_NUMRATES];
};

struct brcmf_ssid {
u32 SSID_len;
unsigned char SSID[32];
Expand Down
12 changes: 5 additions & 7 deletions drivers/staging/brcm80211/brcmfmac/wl_cfg80211.c
Original file line number Diff line number Diff line change
Expand Up @@ -1864,7 +1864,7 @@ brcmf_cfg80211_set_bitrate_mask(struct wiphy *wiphy, struct net_device *dev,
const u8 *addr,
const struct cfg80211_bitrate_mask *mask)
{
struct brcm_rateset rateset;
struct brcm_rateset_le rateset_le;
s32 rate;
s32 val;
s32 err_bg;
Expand All @@ -1878,25 +1878,23 @@ brcmf_cfg80211_set_bitrate_mask(struct wiphy *wiphy, struct net_device *dev,

/* addr param is always NULL. ignore it */
/* Get current rateset */
err = brcmf_dev_ioctl(dev, BRCM_GET_CURR_RATESET, &rateset,
sizeof(rateset));
err = brcmf_dev_ioctl(dev, BRCM_GET_CURR_RATESET, &rateset_le,
sizeof(rateset_le));
if (unlikely(err)) {
WL_ERR("could not get current rateset (%d)\n", err);
goto done;
}

rateset.count = le32_to_cpu(rateset.count);

legacy = ffs(mask->control[IEEE80211_BAND_2GHZ].legacy & 0xFFFF);
if (!legacy)
legacy = ffs(mask->control[IEEE80211_BAND_5GHZ].legacy &
0xFFFF);

val = wl_g_rates[legacy - 1].bitrate * 100000;

if (val < rateset.count)
if (val < le32_to_cpu(rateset_le.count))
/* Select rate by rateset index */
rate = rateset.rates[val] & 0x7f;
rate = rateset_le.rates[val] & 0x7f;
else
/* Specified rate in bps */
rate = val / 500000;
Expand Down
7 changes: 7 additions & 0 deletions drivers/staging/brcm80211/brcmsmac/pub.h
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,13 @@

#define MAX_STREAMS_SUPPORTED 4 /* max number of streams supported */

struct brcm_rateset {
/* # rates in this set */
u32 count;
/* rates in 500kbps units w/hi bit set if basic */
u8 rates[WL_NUMRATES];
};

struct brcms_c_rateset {
uint count; /* number of rates in rates[] */
/* rates in 500kbps units w/hi bit set if basic */
Expand Down
7 changes: 0 additions & 7 deletions drivers/staging/brcm80211/include/defs.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,13 +48,6 @@

#define WL_NUMRATES 16 /* max # of rates in a rateset */

struct brcm_rateset {
/* # rates in this set */
u32 count;
/* rates in 500kbps units w/hi bit set if basic */
u8 rates[WL_NUMRATES];
};

#define BRCM_CNTRY_BUF_SZ 4 /* Country string is 3 bytes + NUL */

#define BRCM_SET_CHANNEL 30
Expand Down

0 comments on commit c17f70d

Please sign in to comment.