Commit 029591f3 authored by Arend van Spriel's avatar Arend van Spriel Committed by John W. Linville

brcmfmac: fix sparse warnings in e-scan related code

With the introduction of e-scan mechanism in brcmfmac
(e756af5b brcmfmac: add e-scan support.) a couple of sparse
warnings were introduced. This patch resolves those.
Reported-by: default avatarFengguang Wu <fengguang.wu@intel.com>
Reviewed-by: default avatarFranky (Zhenhui) Lin <frankyl@broadcom.com>
Reviewed-by: default avatarHante Meuleman <meuleman@broadcom.com>
Signed-off-by: default avatarArend van Spriel <arend@broadcom.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 9a17bad1
...@@ -698,11 +698,11 @@ static void brcmf_escan_prep(struct brcmf_scan_params_le *params_le, ...@@ -698,11 +698,11 @@ static void brcmf_escan_prep(struct brcmf_scan_params_le *params_le,
u32 n_channels; u32 n_channels;
s32 i; s32 i;
s32 offset; s32 offset;
__le16 chanspec; u16 chanspec;
u16 channel; u16 channel;
struct ieee80211_channel *req_channel; struct ieee80211_channel *req_channel;
char *ptr; char *ptr;
struct brcmf_ssid ssid; struct brcmf_ssid_le ssid_le;
memcpy(params_le->bssid, ether_bcast, ETH_ALEN); memcpy(params_le->bssid, ether_bcast, ETH_ALEN);
params_le->bss_type = DOT11_BSSTYPE_ANY; params_le->bss_type = DOT11_BSSTYPE_ANY;
...@@ -745,13 +745,10 @@ static void brcmf_escan_prep(struct brcmf_scan_params_le *params_le, ...@@ -745,13 +745,10 @@ static void brcmf_escan_prep(struct brcmf_scan_params_le *params_le,
chanspec |= WL_CHANSPEC_CTL_SB_UPPER; chanspec |= WL_CHANSPEC_CTL_SB_UPPER;
} }
params_le->channel_list[i] = chanspec |= (channel & WL_CHANSPEC_CHAN_MASK);
(channel & WL_CHANSPEC_CHAN_MASK) |
chanspec;
WL_SCAN("Chan : %d, Channel spec: %x\n", WL_SCAN("Chan : %d, Channel spec: %x\n",
channel, params_le->channel_list[i]); channel, chanspec);
params_le->channel_list[i] = params_le->channel_list[i] = cpu_to_le16(chanspec);
cpu_to_le16(params_le->channel_list[i]);
} }
} else { } else {
WL_SCAN("Scanning all channels\n"); WL_SCAN("Scanning all channels\n");
...@@ -764,17 +761,18 @@ static void brcmf_escan_prep(struct brcmf_scan_params_le *params_le, ...@@ -764,17 +761,18 @@ static void brcmf_escan_prep(struct brcmf_scan_params_le *params_le,
offset = roundup(offset, sizeof(u32)); offset = roundup(offset, sizeof(u32));
ptr = (char *)params_le + offset; ptr = (char *)params_le + offset;
for (i = 0; i < n_ssids; i++) { for (i = 0; i < n_ssids; i++) {
memset(&ssid, 0, sizeof(ssid)); memset(&ssid_le, 0, sizeof(ssid_le));
ssid.SSID_len = cpu_to_le32(request->ssids[i].ssid_len); ssid_le.SSID_len =
memcpy(ssid.SSID, request->ssids[i].ssid, cpu_to_le32(request->ssids[i].ssid_len);
request->ssids[i].ssid_len); memcpy(ssid_le.SSID, request->ssids[i].ssid,
if (!ssid.SSID_len) request->ssids[i].ssid_len);
if (!ssid_le.SSID_len)
WL_SCAN("%d: Broadcast scan\n", i); WL_SCAN("%d: Broadcast scan\n", i);
else else
WL_SCAN("%d: scan for %s size =%d\n", i, WL_SCAN("%d: scan for %s size =%d\n", i,
ssid.SSID, ssid.SSID_len); ssid_le.SSID, ssid_le.SSID_len);
memcpy(ptr, &ssid, sizeof(ssid)); memcpy(ptr, &ssid_le, sizeof(ssid_le));
ptr += sizeof(ssid); ptr += sizeof(ssid_le);
} }
} else { } else {
WL_SCAN("Broadcast scan %p\n", request->ssids); WL_SCAN("Broadcast scan %p\n", request->ssids);
...@@ -2840,10 +2838,13 @@ brcmf_compare_update_same_bss(struct brcmf_bss_info_le *bss, ...@@ -2840,10 +2838,13 @@ brcmf_compare_update_same_bss(struct brcmf_bss_info_le *bss,
!memcmp(bss_info_le->SSID, bss->SSID, bss_info_le->SSID_len)) { !memcmp(bss_info_le->SSID, bss->SSID, bss_info_le->SSID_len)) {
if ((bss->flags & WLC_BSS_RSSI_ON_CHANNEL) == if ((bss->flags & WLC_BSS_RSSI_ON_CHANNEL) ==
(bss_info_le->flags & WLC_BSS_RSSI_ON_CHANNEL)) { (bss_info_le->flags & WLC_BSS_RSSI_ON_CHANNEL)) {
s16 bss_rssi = le16_to_cpu(bss->RSSI);
s16 bss_info_rssi = le16_to_cpu(bss_info_le->RSSI);
/* preserve max RSSI if the measurements are /* preserve max RSSI if the measurements are
* both on-channel or both off-channel * both on-channel or both off-channel
*/ */
if (bss_info_le->RSSI > bss->RSSI) if (bss_info_rssi > bss_rssi)
bss->RSSI = bss_info_le->RSSI; bss->RSSI = bss_info_le->RSSI;
} else if ((bss->flags & WLC_BSS_RSSI_ON_CHANNEL) && } else if ((bss->flags & WLC_BSS_RSSI_ON_CHANNEL) &&
(bss_info_le->flags & WLC_BSS_RSSI_ON_CHANNEL) == 0) { (bss_info_le->flags & WLC_BSS_RSSI_ON_CHANNEL) == 0) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment