diff options
Diffstat (limited to 'drivers/staging/rtl8192e/rtllib_wx.c')
-rw-r--r-- | drivers/staging/rtl8192e/rtllib_wx.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/staging/rtl8192e/rtllib_wx.c b/drivers/staging/rtl8192e/rtllib_wx.c index 13af43b90fc0..9e0f975c152f 100644 --- a/drivers/staging/rtl8192e/rtllib_wx.c +++ b/drivers/staging/rtl8192e/rtllib_wx.c @@ -158,6 +158,7 @@ static inline char *rtl819x_translate_scan(struct rtllib_device *ieee, struct ht_capab_ele *ht_cap = NULL; bool is40M = false, isShortGI = false; u8 max_mcs = 0; + if (!memcmp(network->bssht.bdHTCapBuf, EWC11NHTCap, 4)) ht_cap = (struct ht_capab_ele *) &network->bssht.bdHTCapBuf[4]; @@ -212,6 +213,7 @@ static inline char *rtl819x_translate_scan(struct rtllib_device *ieee, memset(&iwe, 0, sizeof(iwe)); if (network->wpa_ie_len) { char buf[MAX_WPA_IE_LEN]; + memcpy(buf, network->wpa_ie, network->wpa_ie_len); iwe.cmd = IWEVGENIE; iwe.u.data.length = network->wpa_ie_len; @@ -220,6 +222,7 @@ static inline char *rtl819x_translate_scan(struct rtllib_device *ieee, memset(&iwe, 0, sizeof(iwe)); if (network->rsn_ie_len) { char buf[MAX_WPA_IE_LEN]; + memcpy(buf, network->rsn_ie, network->rsn_ie_len); iwe.cmd = IWEVGENIE; iwe.u.data.length = network->rsn_ie_len; @@ -230,6 +233,7 @@ static inline char *rtl819x_translate_scan(struct rtllib_device *ieee, memset(&iwe, 0, sizeof(iwe)); if (network->wzc_ie_len) { char buf[MAX_WZC_IE_LEN]; + memcpy(buf, network->wzc_ie, network->wzc_ie_len); iwe.cmd = IWEVGENIE; iwe.u.data.length = network->wzc_ie_len; @@ -262,6 +266,7 @@ int rtllib_wx_get_scan(struct rtllib_device *ieee, char *stop = ev + wrqu->data.length; int i = 0; int err = 0; + RTLLIB_DEBUG_WX("Getting scan\n"); down(&ieee->wx_sem); spin_lock_irqsave(&ieee->lock, flags); |