diff options
Diffstat (limited to 'recipes-kernel/wilc1000/files/wilcp1000_3.18_to_3.12_kernel.patch')
-rw-r--r-- | recipes-kernel/wilc1000/files/wilcp1000_3.18_to_3.12_kernel.patch | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/recipes-kernel/wilc1000/files/wilcp1000_3.18_to_3.12_kernel.patch b/recipes-kernel/wilc1000/files/wilcp1000_3.18_to_3.12_kernel.patch new file mode 100644 index 0000000..00d1710 --- /dev/null +++ b/recipes-kernel/wilc1000/files/wilcp1000_3.18_to_3.12_kernel.patch @@ -0,0 +1,82 @@ +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; |