summaryrefslogtreecommitdiff
path: root/recipes-kernel/wilc1000/files/wilcp1000_3.18_to_3.12_kernel.patch
diff options
context:
space:
mode:
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.patch82
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;