Browse Source

Merge branch 'v1.5' into LTS : v1.5.1-20200401

RISCi_ATOM 4 years ago
parent
commit
d000193e37
62 changed files with 631 additions and 270 deletions
  1. 2 2
      include/kernel-version.mk
  2. 4 18
      include/prereq-build.mk
  3. 3 3
      package/kernel/mac80211/Makefile
  4. 2 2
      package/kernel/mac80211/patches/ath/404-regd_no_assoc_hints.patch
  5. 1 1
      package/kernel/mac80211/patches/ath/561-ath9k-dynack-set-ackto-to-max-timeout-in-ath_dynack_.patch
  6. 2 2
      package/kernel/mac80211/patches/build/015-ipw200-mtu.patch
  7. 2 2
      package/kernel/mac80211/patches/build/060-no_local_ssb_bcma.patch
  8. 1 1
      package/kernel/mac80211/patches/rt2x00/020-cfg80211-add-ratelimited-variants-of-err-and-warn.patch
  9. 0 22
      package/kernel/mac80211/patches/subsys/313-mac80211-minstrel_ht-fix-per-group-max-throughput-ra.patch
  10. 4 4
      package/kernel/mac80211/patches/subsys/321-cfg80211-Add-airtime-statistics-and-settings.patch
  11. 2 2
      package/kernel/mac80211/patches/subsys/350-mac80211-add-hdrlen-to-ieee80211_tx_data.patch
  12. 5 5
      package/kernel/mac80211/patches/subsys/353-mac80211-mesh-drop-redundant-rcu_read_lock-unlock-ca.patch
  13. 2 2
      package/kernel/mac80211/patches/subsys/365-mac80211-IBSS-send-deauth-when-expiring-inactive-STA.patch
  14. 0 39
      package/kernel/mac80211/patches/subsys/366-mac80211-accept-deauth-frames-in-IBSS-mode.patch
  15. 1 1
      package/kernel/mac80211/patches/subsys/368-cfg80211-add-local-BSS-receive-time-to-survey-inform.patch
  16. 4 4
      package/kernel/mac80211/patches/subsys/522-mac80211_configure_antenna_gain.patch
  17. 1 1
      package/libs/libpcap/Makefile
  18. 151 43
      package/libs/libpcap/patches/100-debian_shared_lib.patch
  19. 3 3
      package/libs/libpcap/patches/102-makefile_disable_manpages.patch
  20. 1 1
      package/libs/libpcap/patches/103-makefile_flex_workaround.patch
  21. 2 2
      package/libs/openssl/Makefile
  22. 80 0
      package/libs/openssl/patches/200-Partially-revert-Detect-EOF-while-reading-in-libssl.patch
  23. 12 31
      package/libs/openssl/patches/430-e_devcrypto-make-the-dev-crypto-engine-dynamic.patch
  24. 4 4
      package/libs/openssl/patches/500-e_devcrypto-default-to-not-use-digests-in-engine.patch
  25. 3 3
      package/libs/openssl/patches/510-e_devcrypto-ignore-error-when-closing-session.patch
  26. 2 0
      package/libs/readline/Makefile
  27. 1 1
      package/network/services/dnsmasq/Makefile
  28. 2 0
      package/network/services/dnsmasq/files/dnsmasq.init
  29. 0 3
      package/network/services/hostapd/Makefile
  30. 1 1
      package/network/services/ppp/Makefile
  31. 30 0
      package/network/services/ppp/patches/700-radius-Prevent-buffer-overflow-in-rc_mksid.patch
  32. 37 0
      package/network/services/ppp/patches/701-pppd-Fix-bounds-check-in-EAP-code.patch
  33. 61 0
      package/network/services/ppp/patches/702-pppd-Ignore-received-EAP-messages-when-not-doing-EAP.patch
  34. 3 3
      package/network/services/uhttpd/Makefile
  35. 1 1
      package/network/services/vpnc-scripts/Makefile
  36. 3 0
      package/network/services/vpnc-scripts/files/vpnc-script
  37. 2 2
      package/network/services/wireguard/Makefile
  38. 2 2
      package/network/utils/wireguard-tools/Makefile
  39. 3 3
      package/system/procd/Makefile
  40. 8 4
      target/linux/ath79/dts/ar9341_tplink_tl-wr841-v8.dts
  41. 8 4
      target/linux/ath79/dts/ar9341_tplink_tl-wr842n-v2.dts
  42. 2 2
      target/linux/ath79/dts/ar934x.dtsi
  43. 18 6
      target/linux/ath79/patches-4.14/0004-phy-add-ath79-usb-phys.patch
  44. 1 1
      target/linux/ath79/patches-4.14/910-unaligned_access_hacks.patch
  45. 3 3
      target/linux/generic/backport-4.14/320-v4.16-netfilter-nf_conntrack-add-IPS_OFFLOAD-status-bit.patch
  46. 2 2
      target/linux/generic/backport-4.14/370-netfilter-nf_flow_table-fix-offloaded-connection-tim.patch
  47. 71 0
      target/linux/generic/backport-4.14/600-ipv6-addrconf-call-ipv6_mc_up-for-non-Ethernet-inter.patch
  48. 2 2
      target/linux/generic/backport-4.14/950-tty-serial-exar-generalize-rs485-setup.patch
  49. 2 2
      target/linux/generic/hack-4.14/204-module_strip.patch
  50. 3 3
      target/linux/generic/hack-4.14/902-debloat_proc.patch
  51. 7 7
      target/linux/generic/pending-4.14/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch
  52. 7 7
      target/linux/generic/pending-4.14/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch
  53. 1 1
      target/linux/generic/pending-4.14/680-NET-skip-GRO-for-foreign-MAC-addresses.patch
  54. 5 5
      target/linux/sunxi/patches-4.14/002-net-stmmac-dwmac-sun8i-Handle-integrated-external-MD.patch
  55. 1 1
      target/linux/sunxi/patches-4.14/003-net-stmmac-sun8i-Restore-the-compatibles.patch
  56. 1 1
      target/linux/sunxi/patches-4.14/025-arm64-dts-allwinner-A64-Restore-EMAC-changes.patch
  57. 1 1
      target/linux/sunxi/patches-4.14/026-arm64-dts-allwinner-add-snps-dwmac-mdio-compatible-t.patch
  58. 1 1
      target/linux/sunxi/patches-4.14/040-arm64-dts-allwinner-a64-Add-watchdog.patch
  59. 2 2
      target/linux/sunxi/patches-4.14/080-arm64-allwinner-a64-add-SPI-nodes.patch
  60. 1 0
      target/linux/x86/config-4.14
  61. 1 1
      tools/squashfskit4/Makefile
  62. 43 0
      tools/squashfskit4/patches/0002-fix-build-failure-against-gcc-10.patch

+ 2 - 2
include/kernel-version.mk

@@ -6,9 +6,9 @@ ifdef CONFIG_TESTING_KERNEL
   KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER)
 endif
 
-LINUX_VERSION-4.14 = .168
+LINUX_VERSION-4.14 = .173
 
-LINUX_KERNEL_HASH-4.14.168 = eb09704731aea2111fc738585691f42295a35f107bd5bc9bb46d35f317a98261
+LINUX_KERNEL_HASH-4.14.173 = 615f3a798d99b2e986627f0c5618bee8dfd61e7f645bcc3bb90cfaf953d9cb26
 
 remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
 sanitize_uri=$(call qstrip,$(subst @,_,$(subst :,_,$(subst .,_,$(subst -,_,$(subst /,_,$(1)))))))

+ 4 - 18
include/prereq-build.mk

@@ -28,15 +28,8 @@ $(eval $(call TestHostCommand,proper-umask, \
 
 $(eval $(call SetupHostCommand,gcc, \
 	Please install the GNU C Compiler (gcc) 4.8 or later, \
-	$(CC) -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?)', \
-	gcc -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?)', \
-	gcc48 --version | grep gcc, \
-	gcc49 --version | grep gcc, \
-	gcc5 --version | grep gcc, \
-	gcc6 --version | grep gcc, \
-	gcc7 --version | grep gcc, \
-	gcc8 --version | grep gcc, \
-	gcc9 --version | grep gcc, \
+	$(CC) -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?|10\.?)', \
+	gcc -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?|10\.?)', \
 	gcc --version | grep -E 'Apple.(LLVM|clang)' ))
 
 $(eval $(call TestHostCommand,working-gcc, \
@@ -47,15 +40,8 @@ $(eval $(call TestHostCommand,working-gcc, \
 
 $(eval $(call SetupHostCommand,g++, \
 	Please install the GNU C++ Compiler (g++) 4.8 or later, \
-	$(CXX) -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?)', \
-	g++ -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?)', \
-	g++48 --version | grep g++, \
-	g++49 --version | grep g++, \
-	g++5 --version | grep g++, \
-	g++6 --version | grep g++, \
-	g++7 --version | grep g++, \
-	g++8 --version | grep g++, \
-	g++9 --version | grep g++, \
+	$(CXX) -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?|10\.?)', \
+	g++ -dumpversion | grep -E '^(4\.[8-9]|[5-9]\.?|10\.?)', \
 	g++ --version | grep -E 'Apple.(LLVM|clang)' ))
 
 $(eval $(call TestHostCommand,working-g++, \

+ 3 - 3
package/kernel/mac80211/Makefile

@@ -10,10 +10,10 @@ include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=mac80211
 
-PKG_VERSION:=4.19.98-1
+PKG_VERSION:=4.19.112-1
 PKG_RELEASE:=1
-PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v4.19.98/
-PKG_HASH:=256d77e9cd3918d6a361e029850aba4568e8a00167ab3ed55495a359511c5bd2
+PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v4.19.112/
+PKG_HASH:=e60a7aec902638c538b150d0d6165d866eb804845b97d7770acd653fd6a6b718
 
 PKG_SOURCE:=backports-$(PKG_VERSION).tar.xz
 PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/backports-$(PKG_VERSION)

+ 2 - 2
package/kernel/mac80211/patches/ath/404-regd_no_assoc_hints.patch

@@ -1,6 +1,6 @@
 --- a/net/wireless/reg.c
 +++ b/net/wireless/reg.c
-@@ -3027,6 +3027,8 @@ void regulatory_hint_country_ie(struct w
+@@ -3034,6 +3034,8 @@ void regulatory_hint_country_ie(struct w
  	enum environment_cap env = ENVIRON_ANY;
  	struct regulatory_request *request = NULL, *lr;
  
@@ -9,7 +9,7 @@
  	/* IE len must be evenly divisible by 2 */
  	if (country_ie_len & 0x01)
  		return;
-@@ -3252,6 +3254,7 @@ static bool is_wiphy_all_set_reg_flag(en
+@@ -3259,6 +3261,7 @@ static bool is_wiphy_all_set_reg_flag(en
  
  void regulatory_hint_disconnect(void)
  {

+ 1 - 1
package/kernel/mac80211/patches/ath/561-ath9k-dynack-set-ackto-to-max-timeout-in-ath_dynack_.patch

@@ -29,7 +29,7 @@ Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
 -	an->ackto = ackto;
 +	an->ackto = da->ackto;
  
- 	spin_lock(&da->qlock);
+ 	spin_lock_bh(&da->qlock);
  	list_add_tail(&an->list, &da->nodes);
 @@ -356,20 +354,26 @@ EXPORT_SYMBOL(ath_dynack_node_deinit);
   */

+ 2 - 2
package/kernel/mac80211/patches/build/015-ipw200-mtu.patch

@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/intel/ipw2x00/ipw2200.c
 +++ b/drivers/net/wireless/intel/ipw2x00/ipw2200.c
-@@ -11498,6 +11498,15 @@ static const struct attribute_group ipw_
+@@ -11499,6 +11499,15 @@ static const struct attribute_group ipw_
  	.attrs = ipw_sysfs_entries,
  };
  
@@ -16,7 +16,7 @@
  #ifdef CPTCFG_IPW2200_PROMISCUOUS
  static int ipw_prom_open(struct net_device *dev)
  {
-@@ -11546,15 +11555,6 @@ static netdev_tx_t ipw_prom_hard_start_x
+@@ -11547,15 +11556,6 @@ static netdev_tx_t ipw_prom_hard_start_x
  	return NETDEV_TX_OK;
  }
  

+ 2 - 2
package/kernel/mac80211/patches/build/060-no_local_ssb_bcma.patch

@@ -140,7 +140,7 @@
  # LED support
 --- a/drivers/net/wireless/broadcom/b43legacy/main.c
 +++ b/drivers/net/wireless/broadcom/b43legacy/main.c
-@@ -1937,7 +1937,7 @@ static int b43legacy_gpio_init(struct b4
+@@ -1938,7 +1938,7 @@ static int b43legacy_gpio_init(struct b4
  	if (dev->dev->id.revision >= 2)
  		mask  |= 0x0010; /* FIXME: This is redundant. */
  
@@ -149,7 +149,7 @@
  	pcidev = bus->pcicore.dev;
  #endif
  	gpiodev = bus->chipco.dev ? : pcidev;
-@@ -1956,7 +1956,7 @@ static void b43legacy_gpio_cleanup(struc
+@@ -1957,7 +1957,7 @@ static void b43legacy_gpio_cleanup(struc
  	struct ssb_bus *bus = dev->dev->bus;
  	struct ssb_device *gpiodev, *pcidev = NULL;
  

+ 1 - 1
package/kernel/mac80211/patches/rt2x00/020-cfg80211-add-ratelimited-variants-of-err-and-warn.patch

@@ -25,7 +25,7 @@ Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
 
 --- a/include/net/cfg80211.h
 +++ b/include/net/cfg80211.h
-@@ -6627,6 +6627,11 @@ bool cfg80211_iftype_allowed(struct wiph
+@@ -6632,6 +6632,11 @@ bool cfg80211_iftype_allowed(struct wiph
  #define wiphy_info(wiphy, format, args...)			\
  	dev_info(&(wiphy)->dev, format, ##args)
  

+ 0 - 22
package/kernel/mac80211/patches/subsys/313-mac80211-minstrel_ht-fix-per-group-max-throughput-ra.patch

@@ -1,22 +0,0 @@
-From: Felix Fietkau <nbd@nbd.name>
-Date: Fri, 14 Jun 2019 21:12:04 +0200
-Subject: [PATCH] mac80211: minstrel_ht: fix per-group max throughput rate
- initialization
-
-The group number needs to be multiplied by the number of rates per group
-to get the full rate index
-
-Signed-off-by: Felix Fietkau <nbd@nbd.name>
----
-
---- a/net/mac80211/rc80211_minstrel_ht.c
-+++ b/net/mac80211/rc80211_minstrel_ht.c
-@@ -542,7 +542,7 @@ minstrel_ht_update_stats(struct minstrel
- 
- 		/* (re)Initialize group rate indexes */
- 		for(j = 0; j < MAX_THR_RATES; j++)
--			tmp_group_tp_rate[j] = group;
-+			tmp_group_tp_rate[j] = MCS_GROUP_RATES * group;
- 
- 		for (i = 0; i < MCS_GROUP_RATES; i++) {
- 			if (!(mi->supported[group] & BIT(i)))

+ 4 - 4
package/kernel/mac80211/patches/subsys/321-cfg80211-Add-airtime-statistics-and-settings.patch

@@ -148,7 +148,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  	MAX_NL80211_EXT_FEATURES = NUM_NL80211_EXT_FEATURES - 1
 --- a/net/wireless/nl80211.c
 +++ b/net/wireless/nl80211.c
-@@ -463,6 +463,7 @@ static const struct nla_policy nl80211_p
+@@ -469,6 +469,7 @@ static const struct nla_policy nl80211_p
  	[NL80211_ATTR_TXQ_QUANTUM] = { .type = NLA_U32 },
  	[NL80211_ATTR_HE_CAPABILITY] = { .type = NLA_BINARY,
  					 .len = NL80211_HE_MAX_CAPABILITY_LEN },
@@ -156,7 +156,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  };
  
  /* policy for the key attributes */
-@@ -4703,6 +4704,11 @@ static int nl80211_send_station(struct s
+@@ -4709,6 +4710,11 @@ static int nl80211_send_station(struct s
  	PUT_SINFO(PLID, plid, u16);
  	PUT_SINFO(PLINK_STATE, plink_state, u8);
  	PUT_SINFO_U64(RX_DURATION, rx_duration);
@@ -168,7 +168,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  
  	switch (rdev->wiphy.signal_type) {
  	case CFG80211_SIGNAL_TYPE_MBM:
-@@ -5339,6 +5345,15 @@ static int nl80211_set_station(struct sk
+@@ -5345,6 +5351,15 @@ static int nl80211_set_station(struct sk
  			nla_get_u8(info->attrs[NL80211_ATTR_OPMODE_NOTIF]);
  	}
  
@@ -184,7 +184,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  	/* Include parameters for TDLS peer (will check later) */
  	err = nl80211_set_station_tdls(info, &params);
  	if (err)
-@@ -5477,6 +5492,15 @@ static int nl80211_new_station(struct sk
+@@ -5483,6 +5498,15 @@ static int nl80211_new_station(struct sk
  			return -EINVAL;
  	}
  

+ 2 - 2
package/kernel/mac80211/patches/subsys/350-mac80211-add-hdrlen-to-ieee80211_tx_data.patch

@@ -75,7 +75,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  		rcu_read_unlock();
 --- a/net/mac80211/util.c
 +++ b/net/mac80211/util.c
-@@ -1390,6 +1390,7 @@ void ieee80211_send_auth(struct ieee8021
+@@ -1396,6 +1396,7 @@ void ieee80211_send_auth(struct ieee8021
  	struct ieee80211_local *local = sdata->local;
  	struct sk_buff *skb;
  	struct ieee80211_mgmt *mgmt;
@@ -83,7 +83,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  	int err;
  
  	/* 24 + 6 = header + auth_algo + auth_transaction + status_code */
-@@ -1413,8 +1414,10 @@ void ieee80211_send_auth(struct ieee8021
+@@ -1419,8 +1420,10 @@ void ieee80211_send_auth(struct ieee8021
  		skb_put_data(skb, extra, extra_len);
  
  	if (auth_alg == WLAN_AUTH_SHARED_KEY && transaction == 3) {

+ 5 - 5
package/kernel/mac80211/patches/subsys/353-mac80211-mesh-drop-redundant-rcu_read_lock-unlock-ca.patch

@@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/net/mac80211/mesh_hwmp.c
 +++ b/net/mac80211/mesh_hwmp.c
-@@ -1112,16 +1112,13 @@ int mesh_nexthop_resolve(struct ieee8021
+@@ -1115,16 +1115,13 @@ int mesh_nexthop_resolve(struct ieee8021
  	struct mesh_path *mpath;
  	struct sk_buff *skb_to_free = NULL;
  	u8 *target_addr = hdr->addr3;
@@ -28,7 +28,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
  	/* no nexthop found, start resolving */
  	mpath = mesh_path_lookup(sdata, target_addr);
-@@ -1129,8 +1126,7 @@ int mesh_nexthop_resolve(struct ieee8021
+@@ -1132,8 +1129,7 @@ int mesh_nexthop_resolve(struct ieee8021
  		mpath = mesh_path_add(sdata, target_addr);
  		if (IS_ERR(mpath)) {
  			mesh_path_discard_frame(sdata, skb);
@@ -38,7 +38,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  		}
  	}
  
-@@ -1143,13 +1139,10 @@ int mesh_nexthop_resolve(struct ieee8021
+@@ -1146,13 +1142,10 @@ int mesh_nexthop_resolve(struct ieee8021
  	info->flags |= IEEE80211_TX_INTFL_NEED_TXPROCESSING;
  	ieee80211_set_qos_hdr(sdata, skb);
  	skb_queue_tail(&mpath->frame_queue, skb);
@@ -53,7 +53,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  }
  
  /**
-@@ -1169,13 +1162,10 @@ int mesh_nexthop_lookup(struct ieee80211
+@@ -1172,13 +1165,10 @@ int mesh_nexthop_lookup(struct ieee80211
  	struct sta_info *next_hop;
  	struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data;
  	u8 *target_addr = hdr->addr3;
@@ -68,7 +68,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
  	if (time_after(jiffies,
  		       mpath->exp_time -
-@@ -1190,12 +1180,10 @@ int mesh_nexthop_lookup(struct ieee80211
+@@ -1193,12 +1183,10 @@ int mesh_nexthop_lookup(struct ieee80211
  		memcpy(hdr->addr1, next_hop->sta.addr, ETH_ALEN);
  		memcpy(hdr->addr2, sdata->vif.addr, ETH_ALEN);
  		ieee80211_mps_set_frame_flags(sdata, next_hop, hdr);

+ 2 - 2
package/kernel/mac80211/patches/subsys/365-mac80211-IBSS-send-deauth-when-expiring-inactive-STA.patch

@@ -107,7 +107,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  					       frame_buf);
 --- a/net/mac80211/util.c
 +++ b/net/mac80211/util.c
-@@ -1427,7 +1427,8 @@ void ieee80211_send_auth(struct ieee8021
+@@ -1433,7 +1433,8 @@ void ieee80211_send_auth(struct ieee8021
  }
  
  void ieee80211_send_deauth_disassoc(struct ieee80211_sub_if_data *sdata,
@@ -117,7 +117,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
  				    bool send_frame, u8 *frame_buf)
  {
  	struct ieee80211_local *local = sdata->local;
-@@ -1438,7 +1439,7 @@ void ieee80211_send_deauth_disassoc(stru
+@@ -1444,7 +1445,7 @@ void ieee80211_send_deauth_disassoc(stru
  	mgmt->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT | stype);
  	mgmt->duration = 0; /* initialize only */
  	mgmt->seq_ctrl = 0; /* initialize only */

+ 0 - 39
package/kernel/mac80211/patches/subsys/366-mac80211-accept-deauth-frames-in-IBSS-mode.patch

@@ -1,39 +0,0 @@
-From 95697f9907bfe3eab0ef20265a766b22e27dde64 Mon Sep 17 00:00:00 2001
-From: Johannes Berg <johannes.berg@intel.com>
-Date: Fri, 4 Oct 2019 15:37:05 +0300
-Subject: [PATCH] mac80211: accept deauth frames in IBSS mode
-
-We can process deauth frames and all, but we drop them very
-early in the RX path today - this could never have worked.
-
-Fixes: 2cc59e784b54 ("mac80211: reply to AUTH with DEAUTH if sta allocation fails in IBSS")
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
-Link: https://lore.kernel.org/r/20191004123706.15768-2-luca@coelho.fi
-Signed-off-by: Johannes Berg <johannes.berg@intel.com>
----
- net/mac80211/rx.c | 11 ++++++++++-
- 1 file changed, 10 insertions(+), 1 deletion(-)
-
---- a/net/mac80211/rx.c
-+++ b/net/mac80211/rx.c
-@@ -3407,9 +3407,18 @@ ieee80211_rx_h_mgmt(struct ieee80211_rx_
- 	case cpu_to_le16(IEEE80211_STYPE_PROBE_RESP):
- 		/* process for all: mesh, mlme, ibss */
- 		break;
-+	case cpu_to_le16(IEEE80211_STYPE_DEAUTH):
-+		if (is_multicast_ether_addr(mgmt->da) &&
-+		    !is_broadcast_ether_addr(mgmt->da))
-+			return RX_DROP_MONITOR;
-+
-+		/* process only for station/IBSS */
-+		if (sdata->vif.type != NL80211_IFTYPE_STATION &&
-+		    sdata->vif.type != NL80211_IFTYPE_ADHOC)
-+			return RX_DROP_MONITOR;
-+		break;
- 	case cpu_to_le16(IEEE80211_STYPE_ASSOC_RESP):
- 	case cpu_to_le16(IEEE80211_STYPE_REASSOC_RESP):
--	case cpu_to_le16(IEEE80211_STYPE_DEAUTH):
- 	case cpu_to_le16(IEEE80211_STYPE_DISASSOC):
- 		if (is_multicast_ether_addr(mgmt->da) &&
- 		    !is_broadcast_ether_addr(mgmt->da))

+ 1 - 1
package/kernel/mac80211/patches/subsys/368-cfg80211-add-local-BSS-receive-time-to-survey-inform.patch

@@ -64,7 +64,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  	__NL80211_SURVEY_INFO_AFTER_LAST,
 --- a/net/wireless/nl80211.c
 +++ b/net/wireless/nl80211.c
-@@ -8367,6 +8367,10 @@ static int nl80211_send_survey(struct sk
+@@ -8373,6 +8373,10 @@ static int nl80211_send_survey(struct sk
  	    nla_put_u64_64bit(msg, NL80211_SURVEY_INFO_TIME_SCAN,
  			      survey->time_scan, NL80211_SURVEY_INFO_PAD))
  		goto nla_put_failure;

+ 4 - 4
package/kernel/mac80211/patches/subsys/522-mac80211_configure_antenna_gain.patch

@@ -8,7 +8,7 @@
   *
   * @set_wds_peer: set the WDS peer for a WDS interface
   *
-@@ -3272,6 +3273,7 @@ struct cfg80211_ops {
+@@ -3275,6 +3276,7 @@ struct cfg80211_ops {
  				enum nl80211_tx_power_setting type, int mbm);
  	int	(*get_tx_power)(struct wiphy *wiphy, struct wireless_dev *wdev,
  				int *dbm);
@@ -77,7 +77,7 @@
  static int ieee80211_set_wds_peer(struct wiphy *wiphy, struct net_device *dev,
  				  const u8 *addr)
  {
-@@ -3823,6 +3836,7 @@ const struct cfg80211_ops mac80211_confi
+@@ -3845,6 +3858,7 @@ const struct cfg80211_ops mac80211_confi
  	.set_wiphy_params = ieee80211_set_wiphy_params,
  	.set_tx_power = ieee80211_set_tx_power,
  	.get_tx_power = ieee80211_get_tx_power,
@@ -129,7 +129,7 @@
  	local->user_power_level = IEEE80211_UNSET_POWER_LEVEL;
 --- a/net/wireless/nl80211.c
 +++ b/net/wireless/nl80211.c
-@@ -464,6 +464,7 @@ static const struct nla_policy nl80211_p
+@@ -470,6 +470,7 @@ static const struct nla_policy nl80211_p
  	[NL80211_ATTR_HE_CAPABILITY] = { .type = NLA_BINARY,
  					 .len = NL80211_HE_MAX_CAPABILITY_LEN },
  	[NL80211_ATTR_AIRTIME_WEIGHT] = NLA_POLICY_MIN(NLA_U16, 1),
@@ -137,7 +137,7 @@
  };
  
  /* policy for the key attributes */
-@@ -2623,6 +2624,20 @@ static int nl80211_set_wiphy(struct sk_b
+@@ -2629,6 +2630,20 @@ static int nl80211_set_wiphy(struct sk_b
  		if (result)
  			return result;
  	}

+ 1 - 1
package/libs/libpcap/Makefile

@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libpcap
 PKG_VERSION:=1.9.1
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.us.tcpdump.org/release/ \

+ 151 - 43
package/libs/libpcap/patches/100-debian_shared_lib.patch

@@ -3,12 +3,13 @@ build a shared library.
 
 --- a/Makefile.in
 +++ b/Makefile.in
-@@ -40,6 +40,13 @@ mandir = @mandir@
+@@ -40,6 +40,14 @@ mandir = @mandir@
  srcdir = @srcdir@
  VPATH = @srcdir@
  
 +# some defines for shared library compilation
-+LIBVERSION=1
++MAJ=0.8
++LIBVERSION=$(shell head -1 debian/changelog | perl -nle 'm/\S+\s+\((\S+)-\S+\)/ and print $$1')
 +LIBNAME=pcap
 +LIBRARY=lib$(LIBNAME).a
 +SOLIBRARY=lib$(LIBNAME).so
@@ -17,38 +18,38 @@ build a shared library.
  #
  # You shouldn't need to edit anything below.
  #
-@@ -69,7 +76,8 @@ INSTALL_RPCAPD=@INSTALL_RPCAPD@
+@@ -69,7 +77,8 @@ INSTALL_RPCAPD=@INSTALL_RPCAPD@
  EXTRA_NETWORK_LIBS=@EXTRA_NETWORK_LIBS@
  
  # Standard CFLAGS for building members of a shared library
 -FULL_CFLAGS = $(CCOPT) @V_LIB_CCOPT_FAT@ $(SHLIB_CCOPT) $(INCLS) $(DEFS) $(CFLAGS)
 +FULL_CFLAGS = $(CCOPT) @V_LIB_CCOPT_FAT@ $(SHLIB_CCOPT) $(INCLS) $(DEFS) $(CFLAGS) $(CPPFLAGS)
-+CFLAGS_SHARED = -shared -Wl,-soname,$(SHAREDLIB)
++CFLAGS_SHARED = -shared -Wl,-soname,$(SOLIBRARY).$(MAJ) -Wl,--version-script=libpcap-symbols.lds
  
  INSTALL = @INSTALL@
  INSTALL_PROGRAM = @INSTALL_PROGRAM@
-@@ -84,7 +92,11 @@ YACC = @YACC@
+@@ -84,7 +93,11 @@ YACC = @YACC@
  # problem if you don't own the file but can write to the directory.
  .c.o:
  	@rm -f $@
 -	$(CC) $(FULL_CFLAGS) -c $(srcdir)/$*.c
 +	$(CC) $(FULL_CFLAGS) -c -o $@ $(srcdir)/$*.c
 +
-+%_pic.o: %.c %.o
++%_pic.o: %.c
 +	@rm -f $@
 +	$(CC) -fPIC $(FULL_CFLAGS) -c -o $@ $(srcdir)/$*.c
  
  PSRC =	pcap-@V_PCAP@.c @USB_SRC@ @BT_SRC@ @BT_MONITOR_SRC@ @NETFILTER_SRC@ @DBUS_SRC@ @NETMAP_SRC@ @RDMA_SRC@
  FSRC =  @V_FINDALLDEVS@
-@@ -101,6 +113,7 @@ SRC =	$(PSRC) $(FSRC) $(CSRC) $(SSRC) $(
+@@ -101,6 +114,7 @@ SRC =	$(PSRC) $(FSRC) $(CSRC) $(SSRC) $(
  # We would like to say "OBJ = $(SRC:.c=.o)" but Ultrix's make cannot
  # hack the extra indirection
  OBJ =	$(PSRC:.c=.o) $(FSRC:.c=.o) $(CSRC:.c=.o) $(SSRC:.c=.o) $(GENSRC:.c=.o) $(LIBOBJS)
-+OBJ_PIC = $(PSRC:.c=_pic.o) $(FSRC:.c=_pic.o) $(CSRC:.c=_pic.o) $(SSRC:.c=_pic.o) $(GENSRC:.c=_pic.o)
++OBJ_PIC = $(PSRC:.c=_pic.o) $(FSRC:.c=_pic.o) $(CSRC:.c=_pic.o) $(SSRC:.c=_pic.o) $(GENSRC:.c=_pic.o) $(LIBOBJS:.o=_pic.o)
  PUBHDR = \
  	pcap.h \
  	pcap-bpf.h \
-@@ -155,7 +168,7 @@ TAGFILES = \
+@@ -155,7 +169,7 @@ TAGFILES = \
  
  CLEANFILES = $(OBJ) libpcap.a libpcap.so.`cat $(srcdir)/VERSION` \
  	$(PROG)-`cat $(srcdir)/VERSION`.tar.gz $(GENSRC) $(GENHDR) \
@@ -57,7 +58,7 @@ build a shared library.
  
  MAN1 = pcap-config.1
  
-@@ -392,7 +405,7 @@ libpcap.a: $(OBJ)
+@@ -392,7 +406,7 @@ libpcap.a: $(OBJ)
  	$(AR) rc $@ $(OBJ) $(ADDLARCHIVEOBJS)
  	$(RANLIB) $@
  
@@ -66,20 +67,21 @@ build a shared library.
  
  libpcap.so: $(OBJ)
  	@rm -f $@
-@@ -468,6 +481,12 @@ libpcap.shareda: $(OBJ)
+@@ -468,6 +482,13 @@ libpcap.shareda: $(OBJ)
  #
  libpcap.none:
  
 +$(SHAREDLIB): $(OBJ_PIC)
 +	-@rm -f $@
-+	-@rm -f $(SOLIBRARY)
++	-@rm -f $(SOLIBRARY) $(SOLIBRARY).$(MAJ)
 +	$(CC) $(CFLAGS_SHARED) $(LDFLAGS) -o $(SHAREDLIB) $(OBJ_PIC) -lc $(LIBS)
-+	ln -s $(SHAREDLIB) $(SOLIBRARY)
++	ln -s $(SHAREDLIB) $(SOLIBRARY).$(MAJ)
++	ln -s $(SOLIBRARY).$(MAJ) $(SOLIBRARY)
 +
  scanner.c: $(srcdir)/scanner.l
  	$(LEX) -P pcap_ --header-file=scanner.h --nounput -o scanner.c $<
  scanner.h: scanner.c
-@@ -480,6 +499,9 @@ scanner.h: scanner.c
+@@ -480,6 +501,9 @@ scanner.h: scanner.c
  scanner.o: scanner.c grammar.h
  	$(CC) $(FULL_CFLAGS) -c scanner.c
  
@@ -89,17 +91,36 @@ build a shared library.
  grammar.c: $(srcdir)/grammar.y
  	$(YACC) -p pcap_ -o grammar.c -d $<
  grammar.h: grammar.c
-@@ -492,6 +514,9 @@ grammar.h: grammar.c
+@@ -492,6 +516,10 @@ grammar.h: grammar.c
  grammar.o: grammar.c scanner.h
  	$(CC) $(FULL_CFLAGS) -c grammar.c
  
-+grammar_pic.o: grammar.c scanner.h
++grammar_pic.o: grammar.c
++	@rm -f $@
 +	$(CC) -fPIC $(FULL_CFLAGS) -o $@ -c grammar.c
 +
  gencode.o: $(srcdir)/gencode.c grammar.h scanner.h
  	$(CC) $(FULL_CFLAGS) -c $(srcdir)/gencode.c
  
-@@ -539,6 +564,9 @@ pcap-config: $(srcdir)/pcap-config.in ./
+@@ -504,9 +532,17 @@ snprintf.o: $(srcdir)/missing/snprintf.c
+ strlcat.o: $(srcdir)/missing/strlcat.c
+ 	$(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/strlcat.c
+ 
++strlcat_pic.o: $(srcdir)/missing/strlcat.c
++	@rm -f $@
++	$(CC) -fPIC $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/strlcat.c
++
+ strlcpy.o: $(srcdir)/missing/strlcpy.c
+ 	$(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/strlcpy.c
+ 
++strlcpy_pic.o: $(srcdir)/missing/strlcpy.c
++	@rm -f $@
++	$(CC) -fPIC $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/strlcpy.c
++
+ strtok_r.o: $(srcdir)/missing/strtok_r.c
+ 	$(CC) $(FULL_CFLAGS) -o $@ -c $(srcdir)/missing/strtok_r.c
+ 
+@@ -539,6 +575,9 @@ pcap-config: $(srcdir)/pcap-config.in ./
  	mv $@.tmp $@
  	chmod a+x $@
  
@@ -109,12 +130,8 @@ build a shared library.
  #
  # Remote pcap daemon.
  #
-@@ -632,14 +660,11 @@ install: install-shared install-archive
- 		    $(DESTDIR)$(mandir)/man@MAN_MISC_INFO@/`echo $$i | sed 's/.manmisc.in/.@MAN_MISC_INFO@/'`; done
- 
- install-shared: install-shared-$(DYEXT)
--install-shared-so: libpcap.so
-+install-shared-so: $(SHAREDLIB)
+@@ -635,11 +674,9 @@ install-shared: install-shared-$(DYEXT)
+ install-shared-so: libpcap.so
  	[ -d $(DESTDIR)$(libdir) ] || \
  	    (mkdir -p $(DESTDIR)$(libdir); chmod 755 $(DESTDIR)$(libdir))
 -	VER=`cat $(srcdir)/VERSION`; \
@@ -123,7 +140,8 @@ build a shared library.
 -	ln -sf libpcap.so.$$VER $(DESTDIR)$(libdir)/libpcap.so.$$MAJOR_VER; \
 -	ln -sf libpcap.so.$$MAJOR_VER $(DESTDIR)$(libdir)/libpcap.so
 +	$(INSTALL_DATA) $(SHAREDLIB) $(DESTDIR)$(libdir)/
-+	ln -sf $(SHAREDLIB) $(DESTDIR)$(libdir)/$(SOLIBRARY)
++	ln -sf $(SHAREDLIB) $(DESTDIR)$(libdir)/$(SOLIBRARY).$(MAJ)
++	ln -sf $(SOLIBRARY).$(MAJ) $(DESTDIR)$(libdir)/$(SOLIBRARY)
  install-shared-dylib: libpcap.dylib
  	[ -d $(DESTDIR)$(libdir) ] || \
  	    (mkdir -p $(DESTDIR)$(libdir); chmod 755 $(DESTDIR)$(libdir))
@@ -147,22 +165,112 @@ build a shared library.
  		    V_SHLIB_CMD="\$(CC)"
  		    V_SHLIB_OPT="-shared"
  		    V_SONAME_OPT="-Wl,-soname,"
---- a/pcap-config.in
-+++ b/pcap-config.in
-@@ -41,16 +41,6 @@ do
- 	esac
- 	shift
- done
--if [ "$V_RPATH_OPT" != "" ]
--then
--	#
--	# If libdir isn't /usr/lib, add it to the run-time linker path.
--	#
--	if [ "$libdir" != "/usr/lib" ]
--	then
--		RPATH=$V_RPATH_OPT$libdir
--	fi
--fi
- if [ "$static" = 1 ]
- then
- 	#
+--- /dev/null
++++ b/libpcap-symbols.lds
+@@ -0,0 +1,106 @@
++{
++  global:
++    bpf_dump;
++    bpf_filter;
++    bpf_image;
++    bpf_validate;
++    eproto_db;
++    pcap_breakloop;
++    pcap_can_set_rfmon;
++    pcap_close;
++    pcap_compile;
++    pcap_compile_nopcap;
++    pcap_datalink;
++    pcap_datalink_name_to_val;
++    pcap_datalink_val_to_description;
++    pcap_datalink_val_to_name;
++    pcap_dispatch;
++    pcap_dump;
++    pcap_dump_close;
++    pcap_dump_file;
++    pcap_dump_flush;
++    pcap_dump_fopen;
++    pcap_dump_ftell;
++    pcap_dump_open;
++    pcap_ether_aton;
++    pcap_ether_hostton;
++    pcap_file;
++    pcap_fileno;
++    pcap_findalldevs;
++    pcap_fopen_offline;
++    pcap_freealldevs;
++    pcap_freecode;
++    pcap_get_selectable_fd;
++    pcap_geterr;
++    pcap_getnonblock;
++    pcap_inject;
++    pcap_is_swapped;
++    pcap_lib_version;
++    pcap_list_datalinks;
++    pcap_lookupdev;
++    pcap_lookupnet;
++    pcap_loop;
++    pcap_major_version;
++    pcap_minor_version;
++    pcap_nametoaddr;
++    pcap_nametoaddrinfo;
++    pcap_nametoeproto;
++    pcap_nametollc;
++    pcap_nametonetaddr;
++    pcap_nametoport;
++    pcap_nametoportrange;
++    pcap_nametoproto;
++    pcap_next;
++    pcap_next_etherent;
++    pcap_next_ex;
++    pcap_open_dead;
++    pcap_open_live;
++    pcap_open_offline;
++    pcap_perror;
++    pcap_sendpacket;
++    pcap_set_datalink;
++    pcap_setdirection;
++    pcap_setfilter;
++    pcap_setnonblock;
++    pcap_snapshot;
++    pcap_stats;
++    pcap_statustostr;
++    pcap_strerror;
++    pcap_version;
++    /* introduced in pcap 1.0 */
++    pcap_activate;
++    pcap_create;
++    pcap_datalink_ext;
++    pcap_free_datalinks;
++    pcap_offline_filter;
++    pcap_set_buffer_size;
++    pcap_set_promisc;
++    pcap_set_rfmon;
++    pcap_set_snaplen;
++    pcap_set_timeout;
++    /* introduced in pcap 1.2 */
++    pcap_set_tstamp_type;
++    pcap_list_tstamp_types;
++    pcap_free_tstamp_types;
++    pcap_tstamp_type_name_to_val;
++    pcap_tstamp_type_val_to_name;
++    pcap_tstamp_type_val_to_description;
++    /* introduced in pcap 1.5 */
++    pcap_set_immediate_mode;
++    pcap_set_tstamp_precision;
++    pcap_get_tstamp_precision;
++    pcap_open_dead_with_tstamp_precision;
++    pcap_open_offline_with_tstamp_precision;
++    pcap_fopen_offline_with_tstamp_precision;
++    /* introduced in pcap 1.7 */
++    pcap_dump_open_append;
++    /* introduced in pcap 1.9.0 */
++    pcap_bufsize;
++    pcap_dump_ftell64;
++    pcap_get_required_select_timeout;
++    pcap_set_protocol_linux;	/* linux-only */
++    /* introduced in pcap 1.9.1 */
++    pcap_datalink_val_to_description_or_dlt;
++  local:
++    *;
++};

+ 3 - 3
package/libs/libpcap/patches/102-makefile_disable_manpages.patch

@@ -1,6 +1,6 @@
 --- a/Makefile.in
 +++ b/Makefile.in
-@@ -588,14 +588,6 @@ install: install-shared install-archive
+@@ -599,14 +599,6 @@ install: install-shared install-archive
  	    (mkdir -p $(DESTDIR)$(includedir); chmod 755 $(DESTDIR)$(includedir))
  	[ -d $(DESTDIR)$(includedir)/pcap ] || \
  	    (mkdir -p $(DESTDIR)$(includedir)/pcap; chmod 755 $(DESTDIR)$(includedir)/pcap)
@@ -15,7 +15,7 @@
  	for i in $(PUBHDR); do \
  		$(INSTALL_DATA) $(srcdir)/$$i \
  		    $(DESTDIR)$(includedir)/$$i; done
-@@ -605,59 +597,6 @@ install: install-shared install-archive
+@@ -616,59 +608,6 @@ install: install-shared install-archive
  	[ -d $(DESTDIR)$(libdir)/pkgconfig ] || \
  	    (mkdir -p $(DESTDIR)$(libdir)/pkgconfig; chmod 755 $(DESTDIR)$(libdir)/pkgconfig)
  	$(INSTALL_DATA) libpcap.pc $(DESTDIR)$(libdir)/pkgconfig/libpcap.pc
@@ -74,4 +74,4 @@
 -		    $(DESTDIR)$(mandir)/man@MAN_MISC_INFO@/`echo $$i | sed 's/.manmisc.in/.@MAN_MISC_INFO@/'`; done
  
  install-shared: install-shared-$(DYEXT)
- install-shared-so: $(SHAREDLIB)
+ install-shared-so: libpcap.so

+ 1 - 1
package/libs/libpcap/patches/103-makefile_flex_workaround.patch

@@ -3,7 +3,7 @@
 
 --- a/Makefile.in
 +++ b/Makefile.in
-@@ -59,7 +59,7 @@ MKDEP = @MKDEP@
+@@ -60,7 +60,7 @@ MKDEP = @MKDEP@
  CCOPT = @V_CCOPT@
  SHLIB_CCOPT = @V_SHLIB_CCOPT@
  INCLS = -I. @V_INCLS@

+ 2 - 2
package/libs/openssl/Makefile

@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=openssl
 PKG_BASE:=1.1.1
-PKG_BUGFIX:=d
+PKG_BUGFIX:=e
 PKG_VERSION:=$(PKG_BASE)$(PKG_BUGFIX)
 PKG_RELEASE:=2
 PKG_USE_MIPS16:=0
@@ -24,7 +24,7 @@ PKG_SOURCE_URL:= \
 	ftp://ftp.pca.dfn.de/pub/tools/net/openssl/source/ \
 	http://www.openssl.org/source/ \
 	http://www.openssl.org/source/old/$(PKG_BASE)/
-PKG_HASH:=1e3a91bc1f9dfce01af26026f856e064eab4c8ee0a8f457b5ae30b40b8b711f2
+PKG_HASH:=694f61ac11cb51c9bf73f54e771ff6022b0327a43bbdfa1b2f19de1662a6dcbe
 
 PKG_LICENSE:=OpenSSL
 PKG_LICENSE_FILES:=LICENSE

+ 80 - 0
package/libs/openssl/patches/200-Partially-revert-Detect-EOF-while-reading-in-libssl.patch

@@ -0,0 +1,80 @@
+From 30d190caf311d534867df97e26b552e628cb7d85 Mon Sep 17 00:00:00 2001
+From: Tomas Mraz <tmraz@fedoraproject.org>
+Date: Wed, 25 Mar 2020 14:15:31 +0100
+Subject: [PATCH] Partially revert "Detect EOF while reading in libssl"
+
+This partially reverts commit db943f43a60d1b5b1277e4b5317e8f288e7a0a3a.
+
+Reviewed-by: Matt Caswell <matt@openssl.org>
+(Merged from https://github.com/openssl/openssl/pull/11400)
+
+diff --git a/crypto/err/openssl.txt b/crypto/err/openssl.txt
+index f5324c6819..35512f9caf 100644
+--- a/crypto/err/openssl.txt
++++ b/crypto/err/openssl.txt
+@@ -2852,7 +2852,6 @@ SSL_R_UNABLE_TO_LOAD_SSL3_MD5_ROUTINES:242:unable to load ssl3 md5 routines
+ SSL_R_UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES:243:unable to load ssl3 sha1 routines
+ SSL_R_UNEXPECTED_CCS_MESSAGE:262:unexpected ccs message
+ SSL_R_UNEXPECTED_END_OF_EARLY_DATA:178:unexpected end of early data
+-SSL_R_UNEXPECTED_EOF_WHILE_READING:294:unexpected eof while reading
+ SSL_R_UNEXPECTED_MESSAGE:244:unexpected message
+ SSL_R_UNEXPECTED_RECORD:245:unexpected record
+ SSL_R_UNINITIALIZED:276:uninitialized
+diff --git a/include/openssl/sslerr.h b/include/openssl/sslerr.h
+index 0ef684f3c1..ba4c4ae5fb 100644
+--- a/include/openssl/sslerr.h
++++ b/include/openssl/sslerr.h
+@@ -1,6 +1,6 @@
+ /*
+  * Generated by util/mkerr.pl DO NOT EDIT
+- * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
++ * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
+  *
+  * Licensed under the OpenSSL license (the "License").  You may not use
+  * this file except in compliance with the License.  You can obtain a copy
+@@ -734,7 +734,6 @@ int ERR_load_SSL_strings(void);
+ # define SSL_R_UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES          243
+ # define SSL_R_UNEXPECTED_CCS_MESSAGE                     262
+ # define SSL_R_UNEXPECTED_END_OF_EARLY_DATA               178
+-# define SSL_R_UNEXPECTED_EOF_WHILE_READING               294
+ # define SSL_R_UNEXPECTED_MESSAGE                         244
+ # define SSL_R_UNEXPECTED_RECORD                          245
+ # define SSL_R_UNINITIALIZED                              276
+diff --git a/ssl/record/rec_layer_s3.c b/ssl/record/rec_layer_s3.c
+index 1c885a664f..b2a7a47eb0 100644
+--- a/ssl/record/rec_layer_s3.c
++++ b/ssl/record/rec_layer_s3.c
+@@ -296,12 +296,6 @@ int ssl3_read_n(SSL *s, size_t n, size_t max, int extend, int clearold,
+             ret = BIO_read(s->rbio, pkt + len + left, max - left);
+             if (ret >= 0)
+                 bioread = ret;
+-            if (ret <= 0
+-                    && !BIO_should_retry(s->rbio)
+-                    && BIO_eof(s->rbio)) {
+-                SSLfatal(s, SSL_AD_DECODE_ERROR, SSL_F_SSL3_READ_N,
+-                         SSL_R_UNEXPECTED_EOF_WHILE_READING);
+-            }
+         } else {
+             SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_F_SSL3_READ_N,
+                      SSL_R_READ_BIO_NOT_SET);
+diff --git a/ssl/ssl_err.c b/ssl/ssl_err.c
+index a0c7b79659..4b12ed1485 100644
+--- a/ssl/ssl_err.c
++++ b/ssl/ssl_err.c
+@@ -1,6 +1,6 @@
+ /*
+  * Generated by util/mkerr.pl DO NOT EDIT
+- * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
++ * Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
+  *
+  * Licensed under the OpenSSL license (the "License").  You may not use
+  * this file except in compliance with the License.  You can obtain a copy
+@@ -1205,8 +1205,6 @@ static const ERR_STRING_DATA SSL_str_reasons[] = {
+     "unexpected ccs message"},
+     {ERR_PACK(ERR_LIB_SSL, 0, SSL_R_UNEXPECTED_END_OF_EARLY_DATA),
+     "unexpected end of early data"},
+-    {ERR_PACK(ERR_LIB_SSL, 0, SSL_R_UNEXPECTED_EOF_WHILE_READING),
+-    "unexpected eof while reading"},
+     {ERR_PACK(ERR_LIB_SSL, 0, SSL_R_UNEXPECTED_MESSAGE), "unexpected message"},
+     {ERR_PACK(ERR_LIB_SSL, 0, SSL_R_UNEXPECTED_RECORD), "unexpected record"},
+     {ERR_PACK(ERR_LIB_SSL, 0, SSL_R_UNINITIALIZED), "uninitialized"},

+ 12 - 31
package/libs/openssl/patches/430-e_devcrypto-make-the-dev-crypto-engine-dynamic.patch

@@ -1,4 +1,4 @@
-From f3cef70b34afde3afd13ce3636232d41533b0162 Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: Eneas U de Queiroz <cote2004-github@yahoo.com>
 Date: Tue, 6 Nov 2018 10:57:03 -0200
 Subject: e_devcrypto: make the /dev/crypto engine dynamic
@@ -20,7 +20,7 @@ index e00802a3fd..47fe948966 100644
 -  SOURCE[../../libcrypto]=eng_devcrypto.c
 -ENDIF
 diff --git a/crypto/init.c b/crypto/init.c
-index 9fc0e8ef68..b387559920 100644
+index 1b0d523bea..ee3e2eb075 100644
 --- a/crypto/init.c
 +++ b/crypto/init.c
 @@ -329,18 +329,6 @@ DEFINE_RUN_ONCE_STATIC(ossl_init_engine_openssl)
@@ -116,7 +116,7 @@ diff --git a/crypto/engine/eng_devcrypto.c b/engines/e_devcrypto.c
 similarity index 95%
 rename from crypto/engine/eng_devcrypto.c
 rename to engines/e_devcrypto.c
-index 64dc6b891d..fb5c6e1636 100644
+index 0d420e50aa..3fcd81de7a 100644
 --- a/crypto/engine/eng_devcrypto.c
 +++ b/engines/e_devcrypto.c
 @@ -7,7 +7,7 @@
@@ -128,15 +128,7 @@ index 64dc6b891d..fb5c6e1636 100644
  #include <string.h>
  #include <sys/types.h>
  #include <sys/stat.h>
-@@ -23,26 +23,26 @@
- #include <openssl/objects.h>
- #include <crypto/cryptodev.h>
- 
--#include "internal/engine.h"
--
- /* #define ENGINE_DEVCRYPTO_DEBUG */
- 
- #if CRYPTO_ALGORITHM_MIN < CRYPTO_ALGORITHM_MAX
+@@ -31,18 +31,20 @@
  # define CHECK_BSD_STYLE_MACROS
  #endif
  
@@ -160,18 +152,7 @@ index 64dc6b891d..fb5c6e1636 100644
  
  /*
   * cipher/digest status & acceleration definitions
-@@ -66,6 +66,10 @@ struct driver_info_st {
-     char *driver_name;
- };
- 
-+#ifdef OPENSSL_NO_DYNAMIC_ENGINE
-+void engine_load_devcrypto_int(void);
-+#endif
-+
- static int clean_devcrypto_session(struct session_op *sess) {
-     if (ioctl(cfd, CIOCFSESSION, &sess->ses) < 0) {
-         SYSerr(SYS_F_IOCTL, errno);
-@@ -341,6 +345,7 @@ static int cipher_ctrl(EVP_CIPHER_CTX *ctx, int type, int p1, void* p2)
+@@ -341,6 +343,7 @@ static int cipher_ctrl(EVP_CIPHER_CTX *ctx, int type, int p1, void* p2)
      struct cipher_ctx *to_cipher_ctx;
  
      switch (type) {
@@ -179,7 +160,7 @@ index 64dc6b891d..fb5c6e1636 100644
      case EVP_CTRL_COPY:
          if (cipher_ctx == NULL)
              return 1;
-@@ -702,7 +707,6 @@ static int digest_init(EVP_MD_CTX *ctx)
+@@ -702,7 +705,6 @@ static int digest_init(EVP_MD_CTX *ctx)
          SYSerr(SYS_F_IOCTL, errno);
          return 0;
      }
@@ -187,7 +168,7 @@ index 64dc6b891d..fb5c6e1636 100644
      return 1;
  }
  
-@@ -1058,7 +1062,7 @@ static const ENGINE_CMD_DEFN devcrypto_cmds[] = {
+@@ -1058,7 +1060,7 @@ static const ENGINE_CMD_DEFN devcrypto_cmds[] = {
          OPENSSL_MSTR(DEVCRYPTO_USE_SOFTWARE) "=allow all drivers, "
          OPENSSL_MSTR(DEVCRYPTO_REJECT_SOFTWARE)
          "=use if acceleration can't be determined) [default="
@@ -196,7 +177,7 @@ index 64dc6b891d..fb5c6e1636 100644
      ENGINE_CMD_FLAG_NUMERIC},
  #endif
  
-@@ -1166,55 +1170,70 @@ static int devcrypto_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f) (void))
+@@ -1166,55 +1168,70 @@ static int devcrypto_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f) (void))
   *
   *****/
  
@@ -284,12 +265,12 @@ index 64dc6b891d..fb5c6e1636 100644
 -        || !ENGINE_set_ctrl_function(e, devcrypto_ctrl)
 +        || !ENGINE_set_ctrl_function(e, devcrypto_ctrl))
 +        return 0;
-+
+ 
 +    prepare_cipher_methods();
 +#ifdef IMPLEMENT_DIGEST
 +    prepare_digest_methods();
 +#endif
- 
++
 +    return (ENGINE_set_ciphers(e, devcrypto_ciphers)
 +#ifdef IMPLEMENT_DIGEST
 +        && ENGINE_set_digests(e, devcrypto_digests)
@@ -297,7 +278,7 @@ index 64dc6b891d..fb5c6e1636 100644
  /*
   * Asymmetric ciphers aren't well supported with /dev/crypto.  Among the BSD
   * implementations, it seems to only exist in FreeBSD, and regarding the
-@@ -1237,23 +1256,36 @@ void engine_load_devcrypto_int()
+@@ -1237,23 +1254,36 @@ void engine_load_devcrypto_int()
   */
  #if 0
  # ifndef OPENSSL_NO_RSA
@@ -343,7 +324,7 @@ index 64dc6b891d..fb5c6e1636 100644
          ENGINE_free(e);
          return;
      }
-@@ -1262,3 +1294,22 @@ void engine_load_devcrypto_int()
+@@ -1262,3 +1292,22 @@ void engine_load_devcrypto_int()
      ENGINE_free(e);          /* Loose our local reference */
      ERR_clear_error();
  }

+ 4 - 4
package/libs/openssl/patches/500-e_devcrypto-default-to-not-use-digests-in-engine.patch

@@ -1,4 +1,4 @@
-From 52ddedc09ee81fe05ea2fa384fce89afe92d6d72 Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: Eneas U de Queiroz <cote2004-github@yahoo.com>
 Date: Mon, 11 Mar 2019 09:29:13 -0300
 Subject: e_devcrypto: default to not use digests in engine
@@ -20,10 +20,10 @@ turn them on if it is safe and fast enough.
 Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
 
 diff --git a/engines/e_devcrypto.c b/engines/e_devcrypto.c
-index fb5c6e1636..7741138b82 100644
+index 3fcd81de7a..d25230d366 100644
 --- a/engines/e_devcrypto.c
 +++ b/engines/e_devcrypto.c
-@@ -854,7 +854,7 @@ static void prepare_digest_methods(void)
+@@ -852,7 +852,7 @@ static void prepare_digest_methods(void)
      for (i = 0, known_digest_nids_amount = 0; i < OSSL_NELEM(digest_data);
           i++) {
  
@@ -32,7 +32,7 @@ index fb5c6e1636..7741138b82 100644
  
          /*
           * Check that the digest is usable
-@@ -1074,7 +1074,7 @@ static const ENGINE_CMD_DEFN devcrypto_cmds[] = {
+@@ -1072,7 +1072,7 @@ static const ENGINE_CMD_DEFN devcrypto_cmds[] = {
  #ifdef IMPLEMENT_DIGEST
     {DEVCRYPTO_CMD_DIGESTS,
      "DIGESTS",

+ 3 - 3
package/libs/openssl/patches/510-e_devcrypto-ignore-error-when-closing-session.patch

@@ -1,4 +1,4 @@
-From b6b2744f06f64922b449b3cb4bf0ad3df3efba71 Mon Sep 17 00:00:00 2001
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 From: Eneas U de Queiroz <cote2004-github@yahoo.com>
 Date: Mon, 11 Mar 2019 10:15:14 -0300
 Subject: e_devcrypto: ignore error when closing session
@@ -9,10 +9,10 @@ session.  It may have been closed by another process after a fork.
 Signed-off-by: Eneas U de Queiroz <cote2004-github@yahoo.com>
 
 diff --git a/engines/e_devcrypto.c b/engines/e_devcrypto.c
-index 7741138b82..2480bdbd57 100644
+index d25230d366..f4570f1666 100644
 --- a/engines/e_devcrypto.c
 +++ b/engines/e_devcrypto.c
-@@ -197,9 +197,8 @@ static int cipher_init(EVP_CIPHER_CTX *ctx, const unsigned char *key,
+@@ -195,9 +195,8 @@ static int cipher_init(EVP_CIPHER_CTX *ctx, const unsigned char *key,
          get_cipher_data(EVP_CIPHER_CTX_nid(ctx));
  
      /* cleanup a previous session */

+ 2 - 0
package/libs/readline/Makefile

@@ -25,6 +25,8 @@ PKG_INSTALL:=1
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/host-build.mk
 
+HOST_BUILD_DEPENDS:=ncurses/host
+
 define Package/libreadline
   SECTION:=libs
   CATEGORY:=Libraries

+ 1 - 1
package/network/services/dnsmasq/Makefile

@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=dnsmasq
 PKG_UPSTREAM_VERSION:=2.80
 PKG_VERSION:=$(subst test,~~test,$(subst rc,~rc,$(PKG_UPSTREAM_VERSION)))
-PKG_RELEASE:=15
+PKG_RELEASE:=16
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_UPSTREAM_VERSION).tar.xz
 PKG_SOURCE_URL:=http://thekelleys.org.uk/dnsmasq

+ 2 - 0
package/network/services/dnsmasq/files/dnsmasq.init

@@ -866,6 +866,7 @@ dnsmasq_start()
 	append_bool "$cfg" allservers "--all-servers"
 	append_bool "$cfg" noping "--no-ping"
 	append_bool "$cfg" rapidcommit "--dhcp-rapid-commit"
+	append_bool "$cfg" scriptarp "--script-arp"
 
 	append_parm "$cfg" logfacility "--log-facility"
 
@@ -915,6 +916,7 @@ dnsmasq_start()
 	config_get user_dhcpscript $cfg dhcpscript
 	if has_handler || [ -n "$user_dhcpscript" ]; then
 		xappend "--dhcp-script=$DHCPSCRIPT"
+		xappend "--script-arp"
 	fi
 
 	config_get leasefile $cfg leasefile "/tmp/dhcp.leases"

+ 0 - 3
package/network/services/hostapd/Makefile

@@ -86,9 +86,6 @@ DRIVER_MAKEOPTS= \
 	CONFIG_IEEE80211AC=$(HOSTAPD_IEEE80211AC) \
 	CONFIG_DRIVER_WEXT=$(CONFIG_DRIVER_WEXT_SUPPORT) \
 
-space :=
-space +=
-
 ifneq ($(LOCAL_VARIANT),mini)
   DRIVER_MAKEOPTS += CONFIG_IEEE80211W=$(CONFIG_DRIVER_11W_SUPPORT)
 endif

+ 1 - 1
package/network/services/ppp/Makefile

@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=ppp
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/paulusmack/ppp

+ 30 - 0
package/network/services/ppp/patches/700-radius-Prevent-buffer-overflow-in-rc_mksid.patch

@@ -0,0 +1,30 @@
+From 858976b1fc3107f1261aae337831959b511b83c2 Mon Sep 17 00:00:00 2001
+From: Paul Mackerras <paulus@ozlabs.org>
+Date: Sat, 4 Jan 2020 12:01:32 +1100
+Subject: [PATCH] radius: Prevent buffer overflow in rc_mksid()
+
+On some systems getpid() can return a value greater than 65535.
+Increase the size of buf[] to allow for this, and use slprintf()
+to make sure we never overflow it.
+
+Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
+---
+ pppd/plugins/radius/util.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/pppd/plugins/radius/util.c b/pppd/plugins/radius/util.c
+index 6f976a712951..740131e8377c 100644
+--- a/pppd/plugins/radius/util.c
++++ b/pppd/plugins/radius/util.c
+@@ -73,9 +73,9 @@ void rc_mdelay(int msecs)
+ char *
+ rc_mksid (void)
+ {
+-  static char buf[15];
++  static char buf[32];
+   static unsigned short int cnt = 0;
+-  sprintf (buf, "%08lX%04X%02hX",
++  slprintf(buf, sizeof(buf), "%08lX%04X%02hX",
+ 	   (unsigned long int) time (NULL),
+ 	   (unsigned int) getpid (),
+ 	   cnt & 0xFF);

+ 37 - 0
package/network/services/ppp/patches/701-pppd-Fix-bounds-check-in-EAP-code.patch

@@ -0,0 +1,37 @@
+From 8d7970b8f3db727fe798b65f3377fe6787575426 Mon Sep 17 00:00:00 2001
+From: Paul Mackerras <paulus@ozlabs.org>
+Date: Mon, 3 Feb 2020 15:53:28 +1100
+Subject: [PATCH] pppd: Fix bounds check in EAP code
+
+Given that we have just checked vallen < len, it can never be the case
+that vallen >= len + sizeof(rhostname).  This fixes the check so we
+actually avoid overflowing the rhostname array.
+
+Reported-by: Ilja Van Sprundel <ivansprundel@ioactive.com>
+Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
+---
+ pppd/eap.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/pppd/eap.c b/pppd/eap.c
+index 94407f56a336..1b93db01aebd 100644
+--- a/pppd/eap.c
++++ b/pppd/eap.c
+@@ -1420,7 +1420,7 @@ int len;
+ 		}
+ 
+ 		/* Not so likely to happen. */
+-		if (vallen >= len + sizeof (rhostname)) {
++		if (len - vallen >= sizeof (rhostname)) {
+ 			dbglog("EAP: trimming really long peer name down");
+ 			BCOPY(inp + vallen, rhostname, sizeof (rhostname) - 1);
+ 			rhostname[sizeof (rhostname) - 1] = '\0';
+@@ -1846,7 +1846,7 @@ int len;
+ 		}
+ 
+ 		/* Not so likely to happen. */
+-		if (vallen >= len + sizeof (rhostname)) {
++		if (len - vallen >= sizeof (rhostname)) {
+ 			dbglog("EAP: trimming really long peer name down");
+ 			BCOPY(inp + vallen, rhostname, sizeof (rhostname) - 1);
+ 			rhostname[sizeof (rhostname) - 1] = '\0';

+ 61 - 0
package/network/services/ppp/patches/702-pppd-Ignore-received-EAP-messages-when-not-doing-EAP.patch

@@ -0,0 +1,61 @@
+From 8d45443bb5c9372b4c6a362ba2f443d41c5636af Mon Sep 17 00:00:00 2001
+From: Paul Mackerras <paulus@ozlabs.org>
+Date: Mon, 3 Feb 2020 16:31:42 +1100
+Subject: [PATCH] pppd: Ignore received EAP messages when not doing EAP
+
+This adds some basic checks to the subroutines of eap_input to check
+that we have requested or agreed to doing EAP authentication before
+doing any processing on the received packet.  The motivation is to
+make it harder for a malicious peer to disrupt the operation of pppd
+by sending unsolicited EAP packets.  Note that eap_success() already
+has a check that the EAP client state is reasonable, and does nothing
+(apart from possibly printing a debug message) if not.
+
+Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
+---
+ pppd/eap.c | 18 ++++++++++++++++++
+ 1 file changed, 18 insertions(+)
+
+diff --git a/pppd/eap.c b/pppd/eap.c
+index 1b93db01aebd..082e95343120 100644
+--- a/pppd/eap.c
++++ b/pppd/eap.c
+@@ -1328,6 +1328,12 @@ int len;
+ 	int fd;
+ #endif /* USE_SRP */
+ 
++	/*
++	 * Ignore requests if we're not open
++	 */
++	if (esp->es_client.ea_state <= eapClosed)
++		return;
++
+ 	/*
+ 	 * Note: we update es_client.ea_id *only if* a Response
+ 	 * message is being generated.  Otherwise, we leave it the
+@@ -1736,6 +1742,12 @@ int len;
+ 	u_char dig[SHA_DIGESTSIZE];
+ #endif /* USE_SRP */
+ 
++	/*
++	 * Ignore responses if we're not open
++	 */
++	if (esp->es_server.ea_state <= eapClosed)
++		return;
++
+ 	if (esp->es_server.ea_id != id) {
+ 		dbglog("EAP: discarding Response %d; expected ID %d", id,
+ 		    esp->es_server.ea_id);
+@@ -2047,6 +2059,12 @@ u_char *inp;
+ int id;
+ int len;
+ {
++	/*
++	 * Ignore failure messages if we're not open
++	 */
++	if (esp->es_client.ea_state <= eapClosed)
++		return;
++
+ 	if (!eap_client_active(esp)) {
+ 		dbglog("EAP unexpected failure message in state %s (%d)",
+ 		    eap_state_name(esp->es_client.ea_state),

+ 3 - 3
package/network/services/uhttpd/Makefile

@@ -12,9 +12,9 @@ PKG_RELEASE:=4
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL=$(PROJECT_GIT)/uhttpd.git
-PKG_SOURCE_DATE:=2019-12-22
-PKG_SOURCE_VERSION:=5f9ae5738372aaa3a6be2f0a278933563d3f191a
-PKG_MIRROR_HASH:=16977c2d7e68f6db3241f874df625af9bd3bafa06fe4499ecb3561c825321e5d
+PKG_SOURCE_DATE:=2020-02-12
+PKG_SOURCE_VERSION:=2ee323c01079248baa9465969df9e25b5fb68cdf
+PKG_MIRROR_HASH:=ebec09286cf5f977cac893931a5a4f27ba891db88d5e44a9b0de9446ae431527
 PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
 PKG_LICENSE:=ISC
 

+ 1 - 1
package/network/services/vpnc-scripts/Makefile

@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=vpnc-scripts
 PKG_VERSION:=20151220
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 include $(INCLUDE_DIR)/package.mk
 

+ 3 - 0
package/network/services/vpnc-scripts/files/vpnc-script

@@ -210,6 +210,9 @@ case "$reason" in
 	reconnect)
 		run_hooks reconnect
 		;;
+	attempt-reconnect)
+		run_hooks attempt-reconnect
+		;;
 	*)
 		logger -t openconnect "unknown reason '$reason'. Maybe vpnc-script is out of date" 1>&2
 		exit 1

+ 2 - 2
package/network/services/wireguard/Makefile

@@ -11,12 +11,12 @@ include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=wireguard
 
-PKG_VERSION:=0.0.20200105
+PKG_VERSION:=1.0.20200330
 PKG_RELEASE:=1
 
 PKG_SOURCE:=wireguard-linux-compat-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://git.zx2c4.com/wireguard-linux-compat/snapshot/
-PKG_HASH:=9f12f68e96f6865325995c38213e09b05751cd1ef03e0bbc9f1bdc3e5680b337
+PKG_HASH:=2d57b239605be2ee0e4c2da935ff1a23e9ed8bb3ee692e10ae032ae50f280bef
 
 PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=COPYING

+ 2 - 2
package/network/utils/wireguard-tools/Makefile

@@ -11,12 +11,12 @@ include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=wireguard-tools
 
-PKG_VERSION:=1.0.20200102
+PKG_VERSION:=1.0.20200319
 PKG_RELEASE:=1
 
 PKG_SOURCE:=wireguard-tools-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://git.zx2c4.com/wireguard-tools/snapshot/
-PKG_HASH:=547cd1c2f8dca904faac9e8d3964f1ef956c24bb12e3498da88dde95243c7f08
+PKG_HASH:=757ed31d4d48d5fd7853bfd9bfa6a3a1b53c24a94fe617439948784a2c0ed987
 
 PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=COPYING

+ 3 - 3
package/system/procd/Makefile

@@ -12,9 +12,9 @@ PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL=$(PROJECT_GIT)/procd.git
-PKG_MIRROR_HASH:=fe1329f2320f70249727763739da50555e8b02665ecfc8adb15fb25cd954de5b
-PKG_SOURCE_DATE:=2020-01-24
-PKG_SOURCE_VERSION:=31e4b2dfdbd74f7451abf876dd5d9a674af7adfd
+PKG_MIRROR_HASH:=3c818904c62261f973a016397d0eb9f11bf8d01f7ceddb48fcb0e1d59a139d52
+PKG_SOURCE_DATE:=2020-03-07
+PKG_SOURCE_VERSION:=09b9bd828981a4f9271f8906f7b6f5af04e1a6f9
 CMAKE_INSTALL:=1
 
 PKG_LICENSE:=GPL-2.0

+ 8 - 4
target/linux/ath79/dts/ar9341_tplink_tl-wr841-v8.dts

@@ -22,9 +22,6 @@
 		compatible = "gpio-keys-polled";
 		poll-interval = <20>;
 
-		pinctrl-names = "default";
-		pinctrl-0 = <&jtag_disable_pins>;
-
 		reset {
 			label = "Reset";
 			linux,code = <KEY_RESTART>;
@@ -96,7 +93,14 @@
 };
 
 &gpio {
-	status = "okay";
+	pinctrl-names = "default";
+	pinctrl-0 = <&jtag_disable_pins &pmx_usb_power>;
+};
+
+&pinmux {
+	pmx_usb_power: usb_power {
+		pinctrl-single,bits = <0x4 0x0 0xff>;
+	};
 };
 
 &spi {

+ 8 - 4
target/linux/ath79/dts/ar9341_tplink_tl-wr842n-v2.dts

@@ -22,9 +22,6 @@
 		compatible = "gpio-keys-polled";
 		poll-interval = <20>;
 
-		pinctrl-names = "default";
-		pinctrl-0 = <&jtag_disable_pins>;
-
 		reset {
 			label = "Reset";
 			linux,code = <KEY_RESTART>;
@@ -113,7 +110,14 @@
 };
 
 &gpio {
-	status = "okay";
+	pinctrl-names = "default";
+	pinctrl-0 = <&jtag_disable_pins &pmx_usb_power>;
+};
+
+&pinmux {
+	pmx_usb_power: usb_power {
+		pinctrl-single,bits = <0x4 0x0 0xff>;
+	};
 };
 
 &spi {

+ 2 - 2
target/linux/ath79/dts/ar934x.dtsi

@@ -181,8 +181,8 @@
 	usb_phy: usb-phy {
 		compatible = "qca,ar9340-usb-phy", "qca,ar7200-usb-phy";
 
-		reset-names = "usb-phy", "usb-suspend-override";
-		resets = <&rst 4>, <&rst 3>;
+		reset-names = "usb-phy-analog", "usb-phy", "usb-suspend-override";
+		resets = <&rst 11>, <&rst 4>, <&rst 3>;
 
 		#phy-cells = <0>;
 

+ 18 - 6
target/linux/ath79/patches-4.14/0004-phy-add-ath79-usb-phys.patch

@@ -194,7 +194,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
 +MODULE_LICENSE("GPL");
 --- /dev/null
 +++ b/drivers/phy/phy-ar7200-usb.c
-@@ -0,0 +1,123 @@
+@@ -0,0 +1,135 @@
 +/*
 + * Copyright (C) 2015 Alban Bedel <albeu@free.fr>
 + *
@@ -212,6 +212,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
 +
 +struct ar7200_usb_phy {
 +	struct reset_control	*rst_phy;
++	struct reset_control	*rst_phy_analog;
 +	struct reset_control	*suspend_override;
 +	struct phy		*phy;
 +	int			gpio;
@@ -222,12 +223,12 @@ Signed-off-by: John Crispin <john@phrozen.org>
 +	struct ar7200_usb_phy *priv = phy_get_drvdata(phy);
 +	int err = 0;
 +
-+	if (priv->rst_phy)
-+		err = reset_control_deassert(priv->rst_phy);
-+	if (!err && priv->suspend_override)
++	if (priv->suspend_override)
 +		err = reset_control_assert(priv->suspend_override);
-+	if (err && priv->rst_phy)
-+		err = reset_control_assert(priv->rst_phy);
++	if (priv->rst_phy)
++		err |= reset_control_deassert(priv->rst_phy);
++	if (priv->rst_phy_analog)
++		err |= reset_control_deassert(priv->rst_phy_analog);
 +
 +	return err;
 +}
@@ -241,6 +242,8 @@ Signed-off-by: John Crispin <john@phrozen.org>
 +		err = reset_control_deassert(priv->suspend_override);
 +	if (priv->rst_phy)
 +		err |= reset_control_assert(priv->rst_phy);
++	if (priv->rst_phy_analog)
++		err |= reset_control_assert(priv->rst_phy_analog);
 +
 +	return err;
 +}
@@ -266,6 +269,15 @@ Signed-off-by: John Crispin <john@phrozen.org>
 +		return PTR_ERR(priv->rst_phy);
 +	}
 +
++	priv->rst_phy_analog = devm_reset_control_get_optional(
++		&pdev->dev, "usb-phy-analog");
++	if (IS_ERR(priv->rst_phy_analog)) {
++		if (PTR_ERR(priv->rst_phy_analog) == -ENOENT)
++			priv->rst_phy_analog = NULL;
++		else
++			return PTR_ERR(priv->rst_phy_analog);
++	}
++
 +	priv->suspend_override = devm_reset_control_get_optional(
 +		&pdev->dev, "usb-suspend-override");
 +	if (IS_ERR(priv->suspend_override)) {

+ 1 - 1
target/linux/ath79/patches-4.14/910-unaligned_access_hacks.patch

@@ -811,7 +811,7 @@
   * No flags defined yet.
 --- a/net/core/utils.c
 +++ b/net/core/utils.c
-@@ -424,8 +424,14 @@ void inet_proto_csum_replace16(__sum16 *
+@@ -441,8 +441,14 @@ void inet_proto_csum_replace16(__sum16 *
  			       bool pseudohdr)
  {
  	__be32 diff[] = {

+ 3 - 3
target/linux/generic/backport-4.14/320-v4.16-netfilter-nf_conntrack-add-IPS_OFFLOAD-status-bit.patch

@@ -47,7 +47,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
  };
 --- a/net/netfilter/nf_conntrack_core.c
 +++ b/net/netfilter/nf_conntrack_core.c
-@@ -960,6 +960,9 @@ static unsigned int early_drop_list(stru
+@@ -974,6 +974,9 @@ static unsigned int early_drop_list(stru
  	hlist_nulls_for_each_entry_rcu(h, n, head, hnnode) {
  		tmp = nf_ct_tuplehash_to_ctrack(h);
  
@@ -57,7 +57,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
  		if (nf_ct_is_expired(tmp)) {
  			nf_ct_gc_expired(tmp);
  			continue;
-@@ -1037,6 +1040,18 @@ static bool gc_worker_can_early_drop(con
+@@ -1051,6 +1054,18 @@ static bool gc_worker_can_early_drop(con
  	return false;
  }
  
@@ -76,7 +76,7 @@ Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
  static void gc_worker(struct work_struct *work)
  {
  	unsigned int min_interval = max(HZ / GC_MAX_BUCKETS_DIV, 1u);
-@@ -1073,6 +1088,11 @@ static void gc_worker(struct work_struct
+@@ -1087,6 +1102,11 @@ static void gc_worker(struct work_struct
  			tmp = nf_ct_tuplehash_to_ctrack(h);
  
  			scanned++;

+ 2 - 2
target/linux/generic/backport-4.14/370-netfilter-nf_flow_table-fix-offloaded-connection-tim.patch

@@ -21,7 +21,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
 
 --- a/net/netfilter/nf_conntrack_core.c
 +++ b/net/netfilter/nf_conntrack_core.c
-@@ -1040,18 +1040,6 @@ static bool gc_worker_can_early_drop(con
+@@ -1054,18 +1054,6 @@ static bool gc_worker_can_early_drop(con
  	return false;
  }
  
@@ -40,7 +40,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  static void gc_worker(struct work_struct *work)
  {
  	unsigned int min_interval = max(HZ / GC_MAX_BUCKETS_DIV, 1u);
-@@ -1088,10 +1076,8 @@ static void gc_worker(struct work_struct
+@@ -1102,10 +1090,8 @@ static void gc_worker(struct work_struct
  			tmp = nf_ct_tuplehash_to_ctrack(h);
  
  			scanned++;

+ 71 - 0
target/linux/generic/backport-4.14/600-ipv6-addrconf-call-ipv6_mc_up-for-non-Ethernet-inter.patch

@@ -0,0 +1,71 @@
+From 82afdcd4ec3c8ca6551cbf7c43c09e2fd240487a Mon Sep 17 00:00:00 2001
+From: Hangbin Liu <liuhangbin@gmail.com>
+Date: Tue, 10 Mar 2020 15:27:37 +0800
+Subject: [PATCH] ipv6/addrconf: call ipv6_mc_up() for non-Ethernet interface
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Rafał found an issue that for non-Ethernet interface, if we down and up
+frequently, the memory will be consumed slowly.
+
+The reason is we add allnodes/allrouters addressed in multicast list in
+ipv6_add_dev(). When link down, we call ipv6_mc_down(), store all multicast
+addresses via mld_add_delrec(). But when link up, we don't call ipv6_mc_up()
+for non-Ethernet interface to remove the addresses. This makes idev->mc_tomb
+getting bigger and bigger. The call stack looks like:
+
+addrconf_notify(NETDEV_REGISTER)
+	ipv6_add_dev
+		ipv6_dev_mc_inc(ff01::1)
+		ipv6_dev_mc_inc(ff02::1)
+		ipv6_dev_mc_inc(ff02::2)
+
+addrconf_notify(NETDEV_UP)
+	addrconf_dev_config
+		/* Alas, we support only Ethernet autoconfiguration. */
+		return;
+
+addrconf_notify(NETDEV_DOWN)
+	addrconf_ifdown
+		ipv6_mc_down
+			igmp6_group_dropped(ff02::2)
+				mld_add_delrec(ff02::2)
+			igmp6_group_dropped(ff02::1)
+			igmp6_group_dropped(ff01::1)
+
+After investigating, I can't found a rule to disable multicast on
+non-Ethernet interface. In RFC2460, the link could be Ethernet, PPP, ATM,
+tunnels, etc. In IPv4, it doesn't check the dev type when calls ip_mc_up()
+in inetdev_event(). Even for IPv6, we don't check the dev type and call
+ipv6_add_dev(), ipv6_dev_mc_inc() after register device.
+
+So I think it's OK to fix this memory consumer by calling ipv6_mc_up() for
+non-Ethernet interface.
+
+v2: Also check IFF_MULTICAST flag to make sure the interface supports
+    multicast
+
+Reported-by: Rafał Miłecki <zajec5@gmail.com>
+Tested-by: Rafał Miłecki <zajec5@gmail.com>
+Fixes: 74235a25c673 ("[IPV6] addrconf: Fix IPv6 on tuntap tunnels")
+Fixes: 1666d49e1d41 ("mld: do not remove mld souce list info when set link down")
+Signed-off-by: Hangbin Liu <liuhangbin@gmail.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ net/ipv6/addrconf.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/net/ipv6/addrconf.c
++++ b/net/ipv6/addrconf.c
+@@ -3223,6 +3223,10 @@ static void addrconf_dev_config(struct n
+ 	    (dev->type != ARPHRD_TUNNEL) &&
+ 	    (dev->type != ARPHRD_NONE)) {
+ 		/* Alas, we support only Ethernet autoconfiguration. */
++		idev = __in6_dev_get(dev);
++		if (!IS_ERR_OR_NULL(idev) && dev->flags & IFF_UP &&
++		    dev->flags & IFF_MULTICAST)
++			ipv6_mc_up(idev);
+ 		return;
+ 	}
+ 

+ 2 - 2
target/linux/generic/backport-4.14/950-tty-serial-exar-generalize-rs485-setup.patch

@@ -19,7 +19,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 
 --- a/drivers/tty/serial/8250/8250_exar.c
 +++ b/drivers/tty/serial/8250/8250_exar.c
-@@ -275,8 +275,32 @@ static int xr17v35x_register_gpio(struct
+@@ -283,8 +283,32 @@ static int xr17v35x_register_gpio(struct
  	return 0;
  }
  
@@ -52,7 +52,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  };
  
  static int iot2040_rs485_config(struct uart_port *port,
-@@ -309,19 +333,7 @@ static int iot2040_rs485_config(struct u
+@@ -317,19 +341,7 @@ static int iot2040_rs485_config(struct u
  	value |= mode;
  	writeb(value, p + UART_EXAR_MPIOLVL_7_0);
  

+ 2 - 2
target/linux/generic/hack-4.14/204-module_strip.patch

@@ -114,7 +114,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  config MODULES_TREE_LOOKUP
 --- a/kernel/module.c
 +++ b/kernel/module.c
-@@ -3022,9 +3022,11 @@ static struct module *setup_load_info(st
+@@ -3024,9 +3024,11 @@ static struct module *setup_load_info(st
  
  static int check_modinfo(struct module *mod, struct load_info *info, int flags)
  {
@@ -127,7 +127,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  	if (flags & MODULE_INIT_IGNORE_VERMAGIC)
  		modmagic = NULL;
  
-@@ -3045,6 +3047,7 @@ static int check_modinfo(struct module *
+@@ -3047,6 +3049,7 @@ static int check_modinfo(struct module *
  				mod->name);
  		add_taint_module(mod, TAINT_OOT_MODULE, LOCKDEP_STILL_OK);
  	}

+ 3 - 3
target/linux/generic/hack-4.14/902-debloat_proc.patch

@@ -189,7 +189,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  }
 --- a/kernel/irq/proc.c
 +++ b/kernel/irq/proc.c
-@@ -396,6 +396,9 @@ void register_irq_proc(unsigned int irq,
+@@ -418,6 +418,9 @@ void register_irq_proc(unsigned int irq,
  	void __maybe_unused *irqp = (void *)(unsigned long) irq;
  	char name [MAX_NAMELEN];
  
@@ -199,7 +199,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  	if (!root_irq_dir || (desc->irq_data.chip == &no_irq_chip))
  		return;
  
-@@ -449,6 +452,9 @@ void unregister_irq_proc(unsigned int ir
+@@ -471,6 +474,9 @@ void unregister_irq_proc(unsigned int ir
  {
  	char name [MAX_NAMELEN];
  
@@ -209,7 +209,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  	if (!root_irq_dir || !desc->dir)
  		return;
  #ifdef CONFIG_SMP
-@@ -487,6 +493,9 @@ void init_irq_proc(void)
+@@ -509,6 +515,9 @@ void init_irq_proc(void)
  	unsigned int irq;
  	struct irq_desc *desc;
  

+ 7 - 7
target/linux/generic/pending-4.14/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch

@@ -350,7 +350,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  	memcpy(p->name, u->name, sizeof(u->name));
  }
  
-@@ -1922,6 +2084,15 @@ static int ip6_tnl_validate(struct nlatt
+@@ -1920,6 +2082,15 @@ static int ip6_tnl_validate(struct nlatt
  	return 0;
  }
  
@@ -366,7 +366,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  static void ip6_tnl_netlink_parms(struct nlattr *data[],
  				  struct __ip6_tnl_parm *parms)
  {
-@@ -1959,6 +2130,46 @@ static void ip6_tnl_netlink_parms(struct
+@@ -1957,6 +2128,46 @@ static void ip6_tnl_netlink_parms(struct
  
  	if (data[IFLA_IPTUN_FWMARK])
  		parms->fwmark = nla_get_u32(data[IFLA_IPTUN_FWMARK]);
@@ -413,7 +413,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  }
  
  static bool ip6_tnl_netlink_encap_parms(struct nlattr *data[],
-@@ -2074,6 +2285,12 @@ static void ip6_tnl_dellink(struct net_d
+@@ -2072,6 +2283,12 @@ static void ip6_tnl_dellink(struct net_d
  
  static size_t ip6_tnl_get_size(const struct net_device *dev)
  {
@@ -426,7 +426,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  	return
  		/* IFLA_IPTUN_LINK */
  		nla_total_size(4) +
-@@ -2103,6 +2320,24 @@ static size_t ip6_tnl_get_size(const str
+@@ -2101,6 +2318,24 @@ static size_t ip6_tnl_get_size(const str
  		nla_total_size(0) +
  		/* IFLA_IPTUN_FWMARK */
  		nla_total_size(4) +
@@ -451,7 +451,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  		0;
  }
  
-@@ -2110,6 +2345,9 @@ static int ip6_tnl_fill_info(struct sk_b
+@@ -2108,6 +2343,9 @@ static int ip6_tnl_fill_info(struct sk_b
  {
  	struct ip6_tnl *tunnel = netdev_priv(dev);
  	struct __ip6_tnl_parm *parm = &tunnel->parms;
@@ -461,7 +461,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  
  	if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) ||
  	    nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) ||
-@@ -2119,9 +2357,27 @@ static int ip6_tnl_fill_info(struct sk_b
+@@ -2117,9 +2355,27 @@ static int ip6_tnl_fill_info(struct sk_b
  	    nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) ||
  	    nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) ||
  	    nla_put_u8(skb, IFLA_IPTUN_PROTO, parm->proto) ||
@@ -490,7 +490,7 @@ Signed-off-by: Steven Barth <cyrus@openwrt.org>
  	if (nla_put_u16(skb, IFLA_IPTUN_ENCAP_TYPE, tunnel->encap.type) ||
  	    nla_put_be16(skb, IFLA_IPTUN_ENCAP_SPORT, tunnel->encap.sport) ||
  	    nla_put_be16(skb, IFLA_IPTUN_ENCAP_DPORT, tunnel->encap.dport) ||
-@@ -2161,6 +2417,7 @@ static const struct nla_policy ip6_tnl_p
+@@ -2159,6 +2415,7 @@ static const struct nla_policy ip6_tnl_p
  	[IFLA_IPTUN_ENCAP_DPORT]	= { .type = NLA_U16 },
  	[IFLA_IPTUN_COLLECT_METADATA]	= { .type = NLA_FLAG },
  	[IFLA_IPTUN_FWMARK]		= { .type = NLA_U32 },

+ 7 - 7
target/linux/generic/pending-4.14/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch

@@ -181,7 +181,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  		cfg->fc_flags |= RTF_REJECT;
  
  	if (rtm->rtm_type == RTN_LOCAL)
-@@ -3514,6 +3548,9 @@ static int rt6_fill_node(struct net *net
+@@ -3515,6 +3549,9 @@ static int rt6_fill_node(struct net *net
  		case -EACCES:
  			rtm->rtm_type = RTN_PROHIBIT;
  			break;
@@ -191,7 +191,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  		case -EAGAIN:
  			rtm->rtm_type = RTN_THROW;
  			break;
-@@ -3832,6 +3869,8 @@ static int ip6_route_dev_notify(struct n
+@@ -3833,6 +3870,8 @@ static int ip6_route_dev_notify(struct n
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
  		net->ipv6.ip6_prohibit_entry->dst.dev = dev;
  		net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
@@ -200,7 +200,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  		net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
  		net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
  #endif
-@@ -3843,6 +3882,7 @@ static int ip6_route_dev_notify(struct n
+@@ -3844,6 +3883,7 @@ static int ip6_route_dev_notify(struct n
  		in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev);
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
  		in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev);
@@ -208,7 +208,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  		in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev);
  #endif
  	}
-@@ -4059,6 +4099,17 @@ static int __net_init ip6_route_net_init
+@@ -4060,6 +4100,17 @@ static int __net_init ip6_route_net_init
  	net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
  	dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
  			 ip6_template_metrics, true);
@@ -226,7 +226,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  #endif
  
  	net->ipv6.sysctl.flush_delay = 0;
-@@ -4077,6 +4128,8 @@ out:
+@@ -4078,6 +4129,8 @@ out:
  	return ret;
  
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
@@ -235,7 +235,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  out_ip6_prohibit_entry:
  	kfree(net->ipv6.ip6_prohibit_entry);
  out_ip6_null_entry:
-@@ -4094,6 +4147,7 @@ static void __net_exit ip6_route_net_exi
+@@ -4095,6 +4148,7 @@ static void __net_exit ip6_route_net_exi
  #ifdef CONFIG_IPV6_MULTIPLE_TABLES
  	kfree(net->ipv6.ip6_prohibit_entry);
  	kfree(net->ipv6.ip6_blk_hole_entry);
@@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
  #endif
  	dst_entries_destroy(&net->ipv6.ip6_dst_ops);
  }
-@@ -4167,6 +4221,9 @@ void __init ip6_route_init_special_entri
+@@ -4168,6 +4222,9 @@ void __init ip6_route_init_special_entri
  	init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
  	init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
  	init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);

+ 1 - 1
target/linux/generic/pending-4.14/680-NET-skip-GRO-for-foreign-MAC-addresses.patch

@@ -107,7 +107,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  	call_netdevice_notifiers_info(NETDEV_CHANGEUPPER, dev,
  				      &changeupper_info.info);
  }
-@@ -6970,6 +7017,7 @@ int dev_set_mac_address(struct net_devic
+@@ -6961,6 +7008,7 @@ int dev_set_mac_address(struct net_devic
  	if (err)
  		return err;
  	dev->addr_assign_type = NET_ADDR_SET;

+ 5 - 5
target/linux/sunxi/patches-4.14/002-net-stmmac-dwmac-sun8i-Handle-integrated-external-MD.patch

@@ -329,7 +329,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  	}
  
  	if (!of_property_read_u32(node, "allwinner,tx-delay-ps", &val)) {
-@@ -747,81 +896,21 @@ static void sun8i_dwmac_unset_syscon(str
+@@ -750,81 +899,21 @@ static void sun8i_dwmac_unset_syscon(str
  	regmap_write(gmac->regmap, SYSCON_EMAC_REG, reg);
  }
  
@@ -420,7 +420,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  
  	clk_disable_unprepare(gmac->tx_clk);
  
-@@ -850,7 +939,7 @@ static struct mac_device_info *sun8i_dwm
+@@ -853,7 +942,7 @@ static struct mac_device_info *sun8i_dwm
  	if (!mac)
  		return NULL;
  
@@ -429,7 +429,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  	if (ret)
  		return NULL;
  
-@@ -892,6 +981,8 @@ static int sun8i_dwmac_probe(struct plat
+@@ -895,6 +984,8 @@ static int sun8i_dwmac_probe(struct plat
  	struct sunxi_priv_data *gmac;
  	struct device *dev = &pdev->dev;
  	int ret;
@@ -438,7 +438,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  
  	ret = stmmac_get_platform_resources(pdev, &stmmac_res);
  	if (ret)
-@@ -935,29 +1026,6 @@ static int sun8i_dwmac_probe(struct plat
+@@ -938,29 +1029,6 @@ static int sun8i_dwmac_probe(struct plat
  	}
  
  	plat_dat->interface = of_get_phy_mode(dev->of_node);
@@ -468,7 +468,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
  
  	/* platform data specifying hardware features and callbacks.
  	 * hardware features were copied from Allwinner drivers.
-@@ -976,9 +1044,34 @@ static int sun8i_dwmac_probe(struct plat
+@@ -979,9 +1047,34 @@ static int sun8i_dwmac_probe(struct plat
  
  	ret = stmmac_dvr_probe(&pdev->dev, plat_dat, &stmmac_res);
  	if (ret)

+ 1 - 1
target/linux/sunxi/patches-4.14/003-net-stmmac-sun8i-Restore-the-compatibles.patch

@@ -18,7 +18,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
 
 --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
 +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
-@@ -1075,6 +1075,14 @@ return ret;
+@@ -1078,6 +1078,14 @@ return ret;
  }
  
  static const struct of_device_id sun8i_dwmac_match[] = {

+ 1 - 1
target/linux/sunxi/patches-4.14/025-arm64-dts-allwinner-A64-Restore-EMAC-changes.patch

@@ -155,7 +155,7 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
  	pinctrl-0 = <&mmc2_pins>;
 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
 +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
-@@ -449,6 +449,26 @@
+@@ -450,6 +450,26 @@
  			#size-cells = <0>;
  		};
  

+ 1 - 1
target/linux/sunxi/patches-4.14/026-arm64-dts-allwinner-add-snps-dwmac-mdio-compatible-t.patch

@@ -18,7 +18,7 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
 
 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
 +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
-@@ -464,6 +464,7 @@
+@@ -465,6 +465,7 @@
  			#size-cells = <0>;
  
  			mdio: mdio {

+ 1 - 1
target/linux/sunxi/patches-4.14/040-arm64-dts-allwinner-a64-Add-watchdog.patch

@@ -32,7 +32,7 @@ Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
  Example:
 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
 +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
-@@ -537,5 +537,12 @@
+@@ -538,5 +538,12 @@
  			#address-cells = <1>;
  			#size-cells = <0>;
  		};

+ 2 - 2
target/linux/sunxi/patches-4.14/080-arm64-allwinner-a64-add-SPI-nodes.patch

@@ -21,7 +21,7 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
 
 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
 +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
-@@ -325,6 +325,16 @@
+@@ -326,6 +326,16 @@
  				drive-strength = <40>;
  			};
  
@@ -38,7 +38,7 @@ Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
  			uart0_pins_a: uart0@0 {
  				pins = "PB8", "PB9";
  				function = "uart0";
-@@ -470,6 +480,37 @@
+@@ -471,6 +481,37 @@
  			};
  		};
  

+ 1 - 0
target/linux/x86/config-4.14

@@ -469,6 +469,7 @@ CONFIG_X86_CMPXCHG64=y
 # CONFIG_X86_CPUFREQ_NFORCE2 is not set
 # CONFIG_X86_CPUID is not set
 # CONFIG_X86_DEBUG_FPU is not set
+# CONFIG_X86_DECODER_SELFTEST is not set
 # CONFIG_X86_EXTENDED_PLATFORM is not set
 CONFIG_X86_F00F_BUG=y
 CONFIG_X86_FAST_FEATURE_TESTS=y

+ 1 - 1
tools/squashfskit4/Makefile

@@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=squashfskit4
 PKG_VERSION:=4.14
-
+PKG_RELEASE:=2
 PKG_SOURCE:=squashfskit-v$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://github.com/squashfskit/squashfskit/releases/download/v$(PKG_VERSION)/
 PKG_HASH:=5761aaa3aedc4f7112b708367d891c9abdc1ffea972e3fe47923ddba23984d95

+ 43 - 0
tools/squashfskit4/patches/0002-fix-build-failure-against-gcc-10.patch

@@ -0,0 +1,43 @@
+From fe2f5da4b0f8994169c53e84b7cb8a0feefc97b5 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyfox@gentoo.org>
+Date: Sun, 26 Jan 2020 18:35:13 +0000
+Subject: [PATCH] squashfs-tools: fix build failure against gcc-10
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+On gcc-10 (and gcc-9 -fno-common) build fails as:
+
+```
+cc ... -o mksquashfs
+ld: read_fs.o:(.bss+0x0):
+  multiple definition of `fwriter_buffer'; mksquashfs.o:(.bss+0x400c90): first defined here
+ld: read_fs.o:(.bss+0x8):
+  multiple definition of `bwriter_buffer'; mksquashfs.o:(.bss+0x400c98): first defined here
+```
+
+gcc-10 will change the default from -fcommon to fno-common:
+https://gcc.gnu.org/PR85678.
+
+The error also happens if CFLAGS=-fno-common passed explicitly.
+
+Reported-by: Toralf Förster
+Bug: https://bugs.gentoo.org/706456
+Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
+---
+ squashfs-tools/mksquashfs.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/squashfs-tools/mksquashfs.h b/squashfs-tools/mksquashfs.h
+index 1beefef7..b6503063 100644
+--- a/squashfs-tools/mksquashfs.h
++++ b/squashfs-tools/mksquashfs.h
+@@ -143,7 +143,7 @@ struct append_file {
+ #endif
+ 
+ extern struct cache *reader_buffer, *fragment_buffer, *reserve_cache;
+-struct cache *bwriter_buffer, *fwriter_buffer;
++extern struct cache *bwriter_buffer, *fwriter_buffer;
+ extern struct queue *to_reader, *to_deflate, *to_writer, *from_writer,
+ 	*to_frag, *locked_fragment, *to_process_frag;
+ extern struct append_file **file_mapping;