diff -Naur old/linux_wlan.c new/linux_wlan.c --- old/linux_wlan.c 2017-02-21 15:13:21.389041425 -0600 +++ new/linux_wlan.c 2017-02-21 15:37:12.987788018 -0600 @@ -262,12 +262,14 @@ for (i = 0; i < wilc->vif_num; i++) { if (wilc->vif[i]->mode == STATION_MODE) - if (ether_addr_equal_unaligned(bssid, - wilc->vif[i]->bssid)) + if (memcmp(bssid, + wilc->vif[i]->bssid, + ETH_ALEN)) return wilc->vif[i]->ndev; if (wilc->vif[i]->mode == AP_MODE) - if (ether_addr_equal_unaligned(bssid1, - wilc->vif[i]->bssid)) + if (memcmp(bssid1, + wilc->vif[i]->bssid, + ETH_ALEN)) return wilc->vif[i]->ndev; } diff -Naur old/wilc_wfi_cfgoperations.c new/wilc_wfi_cfgoperations.c --- old/wilc_wfi_cfgoperations.c 2017-02-21 13:27:59.211945789 -0600 +++ new/wilc_wfi_cfgoperations.c 2017-02-21 14:19:01.230605864 -0600 @@ -249,7 +249,6 @@ direct_scan) { bss = cfg80211_inform_bss(wiphy, channel, - CFG80211_BSS_FTYPE_UNKNOWN, network_info->bssid, network_info->tsf_hi, network_info->cap_info, @@ -424,7 +423,6 @@ if (!(memcmp("DIRECT-", network_info->ssid, 7))) { bss = cfg80211_inform_bss(wiphy, channel, - CFG80211_BSS_FTYPE_UNKNOWN, network_info->bssid, network_info->tsf_hi, network_info->cap_info, @@ -1510,7 +1508,7 @@ if ((buff[P2P_PUB_ACTION_SUBTYPE] == GO_NEG_REQ || buff[P2P_PUB_ACTION_SUBTYPE] == GO_NEG_RSP) && (wilc_ie)) { - cfg80211_rx_mgmt(priv->wdev, s32Freq, 0, buff, size - 7, 0); + cfg80211_rx_mgmt(priv->wdev, s32Freq, 0, buff, size - 7, 0, GFP_ATOMIC); return; } break; @@ -1522,7 +1520,7 @@ } } - cfg80211_rx_mgmt(priv->wdev, s32Freq, 0, buff, size, 0); + cfg80211_rx_mgmt(priv->wdev, s32Freq, 0, buff, size, 0, GFP_ATOMIC); } } @@ -1616,14 +1614,16 @@ static int mgmt_tx(struct wiphy *wiphy, struct wireless_dev *wdev, - struct cfg80211_mgmt_tx_params *params, + struct ieee80211_channel *chan, + bool offchan, + unsigned int wait, + const u8 *buf, + size_t len, + bool no_cck, + bool dont_wait_for_ack, u64 *cookie) { - struct ieee80211_channel *chan = params->chan; - unsigned int wait = params->wait; - const u8 *buf = params->buf; - size_t len = params->len; - const struct ieee80211_mgmt *mgmt; + const struct ieee80211_mgmt *mgmt; struct p2p_mgmt_data *mgmt_tx; struct wilc_priv *priv; struct host_if_drv *pstrWFIDrv;