Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
commit
2d2d05c384
@ -25,6 +25,7 @@ endef
|
||||
# <https://wireless.wiki.kernel.org/en/users/drivers/ath10k/boardfiles>
|
||||
|
||||
ALLWIFIBOARDS:= \
|
||||
aruba_ap-365 \
|
||||
devolo_magic-2-wifi-next \
|
||||
edgecore_ecw5410 \
|
||||
edgecore_oap100 \
|
||||
@ -96,6 +97,7 @@ endef
|
||||
# Place files in this directory as board-<devicename>.<qca4019|qca9888|qca9984>
|
||||
# Add $(eval $(call generate-ipq-wifi-package,<devicename>,<display name>))
|
||||
|
||||
$(eval $(call generate-ipq-wifi-package,aruba_ap-365,Aruba AP-365))
|
||||
$(eval $(call generate-ipq-wifi-package,devolo_magic-2-wifi-next,devolo Magic 2 WiFi next))
|
||||
$(eval $(call generate-ipq-wifi-package,edgecore_ecw5410,Edgecore ECW5410))
|
||||
$(eval $(call generate-ipq-wifi-package,edgecore_oap100,Edgecore OAP100))
|
||||
|
||||
BIN
package/firmware/ipq-wifi/board-aruba_ap-365.qca4019
Normal file
BIN
package/firmware/ipq-wifi/board-aruba_ap-365.qca4019
Normal file
Binary file not shown.
@ -101,6 +101,18 @@ endef
|
||||
$(eval $(call KernelPackage,crypto-ccm))
|
||||
|
||||
|
||||
define KernelPackage/crypto-chacha20poly1305
|
||||
TITLE:=ChaCha20-Poly1305 AEAD support, RFC7539 (used by strongSwan IPsec VPN)
|
||||
DEPENDS:=+kmod-crypto-aead +kmod-crypto-manager
|
||||
KCONFIG:=CONFIG_CRYPTO_CHACHA20POLY1305
|
||||
FILES:=$(LINUX_DIR)/crypto/chacha20poly1305.ko
|
||||
AUTOLOAD:=$(call AutoLoad,09,chacha20poly1305)
|
||||
$(call AddDepends/crypto)
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,crypto-chacha20poly1305))
|
||||
|
||||
|
||||
define KernelPackage/crypto-cmac
|
||||
TITLE:=Support for Cipher-based Message Authentication Code (CMAC)
|
||||
DEPENDS:=+kmod-crypto-hash
|
||||
|
||||
@ -0,0 +1,38 @@
|
||||
From: Felix Fietkau <nbd@nbd.name>
|
||||
Date: Sat, 26 Mar 2022 23:58:35 +0100
|
||||
Subject: [PATCH] mac80211: do not wake queues on a vif that is being stopped
|
||||
|
||||
When a vif is being removed and sdata->bss is cleared, __ieee80211_wake_txqs
|
||||
can still be called on it, which crashes as soon as sdata->bss is being
|
||||
dereferenced.
|
||||
To fix this properly, check for SDATA_STATE_RUNNING before waking queues,
|
||||
and take the fq lock when setting it (to ensure that __ieee80211_wake_txqs
|
||||
observes the change when running on a different CPU
|
||||
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
|
||||
--- a/net/mac80211/iface.c
|
||||
+++ b/net/mac80211/iface.c
|
||||
@@ -377,7 +377,9 @@ static void ieee80211_do_stop(struct iee
|
||||
bool cancel_scan;
|
||||
struct cfg80211_nan_func *func;
|
||||
|
||||
+ spin_lock_bh(&local->fq.lock);
|
||||
clear_bit(SDATA_STATE_RUNNING, &sdata->state);
|
||||
+ spin_unlock_bh(&local->fq.lock);
|
||||
|
||||
cancel_scan = rcu_access_pointer(local->scan_sdata) == sdata;
|
||||
if (cancel_scan)
|
||||
--- a/net/mac80211/util.c
|
||||
+++ b/net/mac80211/util.c
|
||||
@@ -301,6 +301,9 @@ static void __ieee80211_wake_txqs(struct
|
||||
local_bh_disable();
|
||||
spin_lock(&fq->lock);
|
||||
|
||||
+ if (!test_bit(SDATA_STATE_RUNNING, &sdata->state))
|
||||
+ goto out;
|
||||
+
|
||||
if (sdata->vif.type == NL80211_IFTYPE_AP)
|
||||
ps = &sdata->bss->ps;
|
||||
|
||||
@ -8,9 +8,9 @@ PKG_LICENSE_FILES:=
|
||||
|
||||
PKG_SOURCE_URL:=https://github.com/openwrt/mt76
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_DATE:=2022-04-23
|
||||
PKG_SOURCE_VERSION:=a666d5637bc3afd3e310be09fac048906560097b
|
||||
PKG_MIRROR_HASH:=1a7f7a36e5e376d1b18da98c7939f980855f1981be0c3ad7024360dee702c9f8
|
||||
PKG_SOURCE_DATE:=2022-06-02
|
||||
PKG_SOURCE_VERSION:=1d8af168e86fa4087351b7d10572accd5dee4d36
|
||||
PKG_MIRROR_HASH:=5ffd53150c57f378a3ff90e5acc15b9c3321916c4cf5a5698cff03469e6fdab4
|
||||
|
||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||
PKG_USE_NINJA:=0
|
||||
|
||||
@ -434,13 +434,13 @@
|
||||
+ vg = nbp_vlan_group_rcu(inp);
|
||||
+ vlan = cb->input_vlan_present ? cb->input_vlan_tag : br_get_pvid(vg);
|
||||
+ fdb_in = br_fdb_find_rcu(p->br, eth_hdr(skb)->h_source, vlan);
|
||||
+ if (!fdb_in)
|
||||
+ if (!fdb_in || !fdb_in->dst)
|
||||
+ goto out;
|
||||
+
|
||||
+ vg = nbp_vlan_group_rcu(p);
|
||||
+ vlan = skb_vlan_tag_present(skb) ? skb_vlan_tag_get_id(skb) : br_get_pvid(vg);
|
||||
+ fdb_out = br_fdb_find_rcu(p->br, eth_hdr(skb)->h_dest, vlan);
|
||||
+ if (!fdb_out)
|
||||
+ if (!fdb_out || !fdb_out->dst)
|
||||
+ goto out;
|
||||
+
|
||||
+ br_offload_prepare_key(p, &key, skb);
|
||||
@ -450,7 +450,7 @@
|
||||
+#endif
|
||||
+
|
||||
+ flow = kmem_cache_alloc(offload_cache, GFP_ATOMIC);
|
||||
+ flow->port = fdb_in->dst;
|
||||
+ flow->port = inp;
|
||||
+ memcpy(&flow->key, &key, sizeof(key));
|
||||
+
|
||||
+#ifdef CONFIG_BRIDGE_VLAN_FILTERING
|
||||
@ -465,7 +465,7 @@
|
||||
+ spin_lock_bh(&offload_lock);
|
||||
+ if (!o->enabled ||
|
||||
+ atomic_read(&p->offload.rht.nelems) >= p->br->offload_cache_size ||
|
||||
+ rhashtable_insert_fast(&flow->port->offload.rht, &flow->node, flow_params)) {
|
||||
+ rhashtable_insert_fast(&inp->offload.rht, &flow->node, flow_params)) {
|
||||
+ kmem_cache_free(offload_cache, flow);
|
||||
+ goto out_unlock;
|
||||
+ }
|
||||
@ -511,8 +511,8 @@
|
||||
+#ifdef CONFIG_BRIDGE_VLAN_FILTERING
|
||||
+ cb->input_vlan_present = key.vlan_present != 0;
|
||||
+ cb->input_vlan_tag = key.vlan_tag;
|
||||
+ cb->input_ifindex = p->dev->ifindex;
|
||||
+#endif
|
||||
+ cb->input_ifindex = p->dev->ifindex;
|
||||
+ goto out;
|
||||
+ }
|
||||
+
|
||||
|
||||
@ -434,13 +434,13 @@
|
||||
+ vg = nbp_vlan_group_rcu(inp);
|
||||
+ vlan = cb->input_vlan_present ? cb->input_vlan_tag : br_get_pvid(vg);
|
||||
+ fdb_in = br_fdb_find_rcu(p->br, eth_hdr(skb)->h_source, vlan);
|
||||
+ if (!fdb_in)
|
||||
+ if (!fdb_in || !fdb_in->dst)
|
||||
+ goto out;
|
||||
+
|
||||
+ vg = nbp_vlan_group_rcu(p);
|
||||
+ vlan = skb_vlan_tag_present(skb) ? skb_vlan_tag_get_id(skb) : br_get_pvid(vg);
|
||||
+ fdb_out = br_fdb_find_rcu(p->br, eth_hdr(skb)->h_dest, vlan);
|
||||
+ if (!fdb_out)
|
||||
+ if (!fdb_out || !fdb_out->dst)
|
||||
+ goto out;
|
||||
+
|
||||
+ br_offload_prepare_key(p, &key, skb);
|
||||
@ -450,7 +450,7 @@
|
||||
+#endif
|
||||
+
|
||||
+ flow = kmem_cache_alloc(offload_cache, GFP_ATOMIC);
|
||||
+ flow->port = fdb_in->dst;
|
||||
+ flow->port = inp;
|
||||
+ memcpy(&flow->key, &key, sizeof(key));
|
||||
+
|
||||
+#ifdef CONFIG_BRIDGE_VLAN_FILTERING
|
||||
@ -465,7 +465,7 @@
|
||||
+ spin_lock_bh(&offload_lock);
|
||||
+ if (!o->enabled ||
|
||||
+ atomic_read(&p->offload.rht.nelems) >= p->br->offload_cache_size ||
|
||||
+ rhashtable_insert_fast(&flow->port->offload.rht, &flow->node, flow_params)) {
|
||||
+ rhashtable_insert_fast(&inp->offload.rht, &flow->node, flow_params)) {
|
||||
+ kmem_cache_free(offload_cache, flow);
|
||||
+ goto out_unlock;
|
||||
+ }
|
||||
@ -511,8 +511,8 @@
|
||||
+#ifdef CONFIG_BRIDGE_VLAN_FILTERING
|
||||
+ cb->input_vlan_present = key.vlan_present != 0;
|
||||
+ cb->input_vlan_tag = key.vlan_tag;
|
||||
+ cb->input_ifindex = p->dev->ifindex;
|
||||
+#endif
|
||||
+ cb->input_ifindex = p->dev->ifindex;
|
||||
+ goto out;
|
||||
+ }
|
||||
+
|
||||
|
||||
@ -208,3 +208,12 @@
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&wifi0 {
|
||||
qcom,ath10k-calibration-variant = "Aruba-AP-365";
|
||||
};
|
||||
|
||||
&wifi1 {
|
||||
qcom,ath10k-calibration-variant = "Aruba-AP-365";
|
||||
};
|
||||
|
||||
|
||||
@ -185,7 +185,7 @@ TARGET_DEVICES += aruba_ap-303h
|
||||
define Device/aruba_ap-365
|
||||
$(call Device/aruba_glenmorangie)
|
||||
DEVICE_MODEL := AP-365
|
||||
DEVICE_PACKAGES += kmod-hwmon-ad7418
|
||||
DEVICE_PACKAGES := kmod-hwmon-ad7418 ipq-wifi-aruba_ap-365
|
||||
endef
|
||||
TARGET_DEVICES += aruba_ap-365
|
||||
|
||||
|
||||
@ -144,8 +144,6 @@
|
||||
compatible = "mediatek,mt76";
|
||||
reg = <0x0000 0 0 0 0>;
|
||||
mediatek,mtd-eeprom = <&radio 0x0>;
|
||||
nvmem-cells = <&macaddr_info_8>;
|
||||
nvmem-cell-names = "mac-address";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@ -90,6 +90,10 @@ case "$board" in
|
||||
hw_mac_addr="$(mtd_get_mac_binary factory 0x4)"
|
||||
[ "$PHYNBR" = "1" ] && macaddr_add $hw_mac_addr "0x100000" > /sys${DEVPATH}/macaddress
|
||||
;;
|
||||
tplink,eap615-wall-v1)
|
||||
hw_mac_addr="$(mtd_get_mac_binary product-info 0x8)"
|
||||
macaddr_add "$hw_mac_addr" "$PHYNBR" > "/sys${DEVPATH}/macaddress"
|
||||
;;
|
||||
yuncore,ax820)
|
||||
[ "$PHYNBR" = "1" ] && \
|
||||
macaddr_setbit_la "$(mtd_get_mac_binary Factory 0xe000)" > /sys${DEVPATH}/macaddress
|
||||
|
||||
Loading…
Reference in New Issue
Block a user