From da10e581afa01ae3e495bec98f208433333ffdfc Mon Sep 17 00:00:00 2001
From: David Bauer <mail@david-bauer.net>
Date: Mon, 27 Nov 2023 08:23:49 +0100
Subject: [PATCH] modules: update openwrt

6264d12ed8 firmware-utils: update to Git HEAD (2023-11-21)
ebdaee7194 ramips: add support for Sercomm CPJ routers
fd277ee490 ramips: mt7620: drop unnecessary trailing tabs
a8f31d2aa1 ramips: sercomm.mk: make common recipe to set a bit in pid
dae399196b scripts: sercomm-pid.py: use uppercase hwid in pid
95ebd609ae kernel: bump 5.15 to 5.15.139
d6b62611b8 firmware-utils: package oseama
40bd2bb3d6 firmware-utils: new package replacing otrx
a39dca7ead kernel: bump 5.15 to 5.15.138
c7b6cfac40 scripts/dump-target-info.pl: add new function to DUMP devices
6cb1cb1b13 OpenWrt v23.05.2: revert to branch defaults
1c26bcb108 OpenWrt v23.05.2: adjust config defaults
842932a63d netifd: fix IPv4 route target masking
51bb178824 treewide: fix shell errors during dump stage
4637ba72b7 scan.mk: do not silence output of dump phase
b38b5c4299 ramips: add support for MeiG SLT866 4G CPE
ce62536aca uboot-envtools: add environment config for MeiG SLT866
03e26f856f kernel: support reading hex MAC address from NVMEM
a00fc406b9 kernel: add support MeigLink SLM828 modem
275f7e07ee ramips: cf-ew72-v2: Add support for COMFAST CF-EW72 V2
65bf66f727 ramips: Add support for ComFast CF-E390AX
ce62c25c08 OpenWrt v23.05.1: revert to branch defaults
a58a86693f OpenWrt v23.05.1: adjust config defaults
101988c61a scripts/getver.sh: prevent asking for negative rev-parse
b7e81d210b iptables: backport patch fixing bug with string module
3d006f95f2 wolfssl: update to 5.6.4
46385eb7f8 netifd: update to the latest version
11a41bc4b2 netifd: update to Git HEAD (2023-11-09)
f6a9f0c57b ipq-wifi: update to Git HEAD (2023-11-10)
2285eb732a ucode: update to Git HEAD (2023-11-07)
f5e9fd624d hostapd: refresh patches
85d1b43be4 hostapd: permit 40MHz in 802.1s only also for 2.4GHz g/n with noscan
1cab0d74b3 hostapd: permit also channel 7 for 2.5GHz to be set to HT40PLUS
c9e8453de7 hostapd: fix broke noscan option for mesh
2ef625e769 mac80211: fix not set noscan option for wpa_supplicant
5106f554bb px5g-wolfssl: Fix permission of private key
6fd16b0d27 px5g-mbedtls: Fix permission of private key
6de0e0d01a hostapd: use rtnl to set up interfaces
bbfb920e99 wifi: fix applying mesh parameters when wpa_supplicant is in use
f780cfb92f netifd: update to the latest version
d3c193525e mediatek: add CMCC RAX3000M support
429715a237 uboot-mediatek: add support for CMCC RAX3000M
b209f45640 arm-trusted-firmware-mediatek: add emmc/spim-nand ddr4 build for mt7981
04cde73d56 treewide: fix MERCUSYS brand spelling
3223f31fd3 mbedtls: Activate secp521r1 curve by default
cfadbc090c image: fix image generation within ImageBuilder
---
 modules                                       |  2 +-
 ...wake-up-calls-Android-bug-workaround.patch | 85 +++----------------
 2 files changed, 15 insertions(+), 72 deletions(-)

diff --git a/modules b/modules
index b14f68ad..4b30026a 100644
--- a/modules
+++ b/modules
@@ -2,7 +2,7 @@ GLUON_FEEDS='gluon packages routing'
 
 OPENWRT_REPO=https://github.com/openwrt/openwrt.git
 OPENWRT_BRANCH=openwrt-23.05
-OPENWRT_COMMIT=7c43ced160a01ad2300bf103d457d9f2b20c2772
+OPENWRT_COMMIT=6264d12ed8e4beef6e3707837cb95f0e0d9e4e92
 
 PACKAGES_GLUON_REPO=https://github.com/freifunk-gluon/packages.git
 PACKAGES_GLUON_COMMIT=dc99bbb906f9faae472e48da013dbf67e1a00c23
diff --git a/patches/openwrt/0005-kernel-bridge-Implement-MLD-Querier-wake-up-calls-Android-bug-workaround.patch b/patches/openwrt/0005-kernel-bridge-Implement-MLD-Querier-wake-up-calls-Android-bug-workaround.patch
index 862c5241..293b5e39 100644
--- a/patches/openwrt/0005-kernel-bridge-Implement-MLD-Querier-wake-up-calls-Android-bug-workaround.patch
+++ b/patches/openwrt/0005-kernel-bridge-Implement-MLD-Querier-wake-up-calls-Android-bug-workaround.patch
@@ -27,10 +27,10 @@ Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
 
 diff --git a/package/network/config/netifd/patches/0001-bridge-Add-multicast_wakeupcall-option.patch b/package/network/config/netifd/patches/0001-bridge-Add-multicast_wakeupcall-option.patch
 new file mode 100644
-index 0000000000000000000000000000000000000000..c9e3a2d4e4420387ae48cc5828d4284f2a987c3d
+index 0000000000000000000000000000000000000000..077a563b6066cd1d3aee4b1e82328e8cc5e042ea
 --- /dev/null
 +++ b/package/network/config/netifd/patches/0001-bridge-Add-multicast_wakeupcall-option.patch
-@@ -0,0 +1,199 @@
+@@ -0,0 +1,142 @@
 +From d23a49e6542dc068b12fbc7b6a4520f9fb3626f9 Mon Sep 17 00:00:00 2001
 +From: =?UTF-8?q?Linus=20L=C3=BCssing?= <linus.luessing@c0d3.blue>
 +Date: Sun, 5 Jul 2020 23:33:51 +0200
@@ -72,7 +72,7 @@ index 0000000000000000000000000000000000000000..c9e3a2d4e4420387ae48cc5828d4284f
 +
 +--- a/device.c
 ++++ b/device.c
-+@@ -47,6 +47,7 @@ static const struct blobmsg_policy dev_a
++@@ -49,6 +49,7 @@ static const struct blobmsg_policy dev_a
 + 	[DEV_ATTR_NEIGHGCSTALETIME] = { .name = "neighgcstaletime", .type = BLOBMSG_TYPE_INT32 },
 + 	[DEV_ATTR_DADTRANSMITS] = { .name = "dadtransmits", .type = BLOBMSG_TYPE_INT32 },
 + 	[DEV_ATTR_MULTICAST_TO_UNICAST] = { .name = "multicast_to_unicast", .type = BLOBMSG_TYPE_BOOL },
@@ -80,7 +80,7 @@ index 0000000000000000000000000000000000000000..c9e3a2d4e4420387ae48cc5828d4284f
 + 	[DEV_ATTR_MULTICAST_ROUTER] = { .name = "multicast_router", .type = BLOBMSG_TYPE_INT32 },
 + 	[DEV_ATTR_MULTICAST_FAST_LEAVE] = { .name = "multicast_fast_leave", . type = BLOBMSG_TYPE_BOOL },
 + 	[DEV_ATTR_MULTICAST] = { .name ="multicast", .type = BLOBMSG_TYPE_BOOL },
-+@@ -267,6 +268,7 @@ device_merge_settings(struct device *dev
++@@ -275,6 +276,7 @@ device_merge_settings(struct device *dev
 + 	n->multicast = s->flags & DEV_OPT_MULTICAST ?
 + 		s->multicast : os->multicast;
 + 	n->multicast_to_unicast = s->multicast_to_unicast;
@@ -88,7 +88,7 @@ index 0000000000000000000000000000000000000000..c9e3a2d4e4420387ae48cc5828d4284f
 + 	n->multicast_router = s->multicast_router;
 + 	n->multicast_fast_leave = s->multicast_fast_leave;
 + 	n->learning = s->learning;
-+@@ -438,6 +440,11 @@ device_init_settings(struct device *dev,
++@@ -449,6 +451,11 @@ device_init_settings(struct device *dev,
 + 		s->flags |= DEV_OPT_MULTICAST_TO_UNICAST;
 + 	}
 + 
@@ -100,7 +100,7 @@ index 0000000000000000000000000000000000000000..c9e3a2d4e4420387ae48cc5828d4284f
 + 	if ((cur = tb[DEV_ATTR_MULTICAST_ROUTER])) {
 + 		s->multicast_router = blobmsg_get_u32(cur);
 + 		if (s->multicast_router <= 2)
-+@@ -1281,6 +1288,8 @@ device_dump_status(struct blob_buf *b, s
++@@ -1372,6 +1379,8 @@ device_dump_status(struct blob_buf *b, s
 + 			blobmsg_add_u32(b, "dadtransmits", st.dadtransmits);
 + 		if (st.flags & DEV_OPT_MULTICAST_TO_UNICAST)
 + 			blobmsg_add_u8(b, "multicast_to_unicast", st.multicast_to_unicast);
@@ -119,15 +119,15 @@ index 0000000000000000000000000000000000000000..c9e3a2d4e4420387ae48cc5828d4284f
 + 	DEV_ATTR_MULTICAST_ROUTER,
 + 	DEV_ATTR_MULTICAST_FAST_LEAVE,
 + 	DEV_ATTR_MULTICAST,
-+@@ -137,6 +138,7 @@ enum {
-+ 	DEV_OPT_RXPAUSE			= (1ULL << 34),
-+ 	DEV_OPT_TXPAUSE			= (1ULL << 35),
-+ 	DEV_OPT_AUTONEG			= (1ULL << 36),
-++	DEV_OPT_MULTICAST_WAKEUPCALL	= (1ULL << 63)
++@@ -144,6 +145,7 @@ enum {
++ 	DEV_OPT_GRO			= (1ULL << 37),
++ 	DEV_OPT_MASTER			= (1ULL << 38),
++ 	DEV_OPT_EEE			= (1ULL << 39),
+++	DEV_OPT_MULTICAST_WAKEUPCALL	= (1ULL << 63),
 + };
 + 
 + /* events broadcasted to all users of a device */
-+@@ -198,6 +200,7 @@ struct device_settings {
++@@ -205,6 +207,7 @@ struct device_settings {
 + 	int neigh4locktime;
 + 	unsigned int dadtransmits;
 + 	bool multicast_to_unicast;
@@ -149,7 +149,7 @@ index 0000000000000000000000000000000000000000..c9e3a2d4e4420387ae48cc5828d4284f
 + static void system_bridge_set_multicast_fast_leave(struct device *dev, const char *val)
 + {
 + 	system_set_dev_sysfs("brport/multicast_fast_leave", dev->ifname, val);
-+@@ -915,8 +920,10 @@ static char *system_get_bridge(const cha
++@@ -923,8 +928,10 @@ static char *system_get_bridge(const cha
 + static void
 + system_bridge_set_wireless(struct device *bridge, struct device *dev)
 + {
@@ -160,7 +160,7 @@ index 0000000000000000000000000000000000000000..c9e3a2d4e4420387ae48cc5828d4284f
 + 
 + 	if (dev->settings.flags & DEV_OPT_MULTICAST_TO_UNICAST)
 + 		mcast_to_ucast = dev->settings.multicast_to_unicast;
-+@@ -931,6 +938,12 @@ system_bridge_set_wireless(struct device
++@@ -939,6 +946,12 @@ system_bridge_set_wireless(struct device
 + 	system_bridge_set_multicast_to_unicast(dev, mcast_to_ucast ? "1" : "0");
 + 	system_bridge_set_hairpin_mode(dev, hairpin ? "1" : "0");
 + 	system_bridge_set_proxyarp_wifi(dev, dev->wireless_proxyarp ? "1" : "0");
@@ -173,63 +173,6 @@ index 0000000000000000000000000000000000000000..c9e3a2d4e4420387ae48cc5828d4284f
 + }
 + 
 + int system_bridge_addif(struct device *bridge, struct device *dev)
-+--- a/interface.c
-++++ b/interface.c
-+@@ -1248,7 +1248,7 @@ interface_device_config_changed(struct i
-+ 	struct blob_attr *ntb[__DEV_ATTR_MAX];
-+ 	struct blob_attr *otb[__DEV_ATTR_MAX];
-+ 	struct device *dev = if_old->main_dev.dev;
-+-	unsigned long diff = 0;
-++	unsigned long diff[2] = {};
-+ 
-+ 	BUILD_BUG_ON(sizeof(diff) < __DEV_ATTR_MAX / 8);
-+ 
-+@@ -1267,8 +1267,8 @@ interface_device_config_changed(struct i
-+ 	blobmsg_parse(device_attr_list.params, __DEV_ATTR_MAX, ntb,
-+ 		blob_data(if_new->config), blob_len(if_new->config));
-+ 
-+-	uci_blob_diff(ntb, otb, &device_attr_list, &diff);
-+-	return diff;
-++	uci_blob_diff(ntb, otb, &device_attr_list, diff);
-++	return diff[0] | diff[1];
-+ }
-+ 
-+ static void
-+--- a/bonding.c
-++++ b/bonding.c
-+@@ -442,7 +442,7 @@ bonding_reload(struct device *dev, struc
-+ 	struct blob_attr *tb_dev[__DEV_ATTR_MAX];
-+ 	struct blob_attr *tb_b[__BOND_ATTR_MAX];
-+ 	enum dev_change_type ret = DEV_CONFIG_APPLIED;
-+-	unsigned long diff;
-++	unsigned long diff[2];
-+ 	struct bonding_device *bdev;
-+ 
-+ 	BUILD_BUG_ON(sizeof(diff) < __BOND_ATTR_MAX / 8);
-+@@ -472,17 +472,17 @@ bonding_reload(struct device *dev, struc
-+ 		blobmsg_parse(device_attr_list.params, __DEV_ATTR_MAX, otb_dev,
-+ 			blob_data(bdev->config_data), blob_len(bdev->config_data));
-+ 
-+-		diff = 0;
-+-		uci_blob_diff(tb_dev, otb_dev, &device_attr_list, &diff);
-+-		if (diff)
-++		diff[0] = diff[1] = 0;
-++		uci_blob_diff(tb_dev, otb_dev, &device_attr_list, diff);
-++		if (diff[0] | diff[1])
-+ 		    ret = DEV_CONFIG_RESTART;
-+ 
-+ 		blobmsg_parse(bonding_attrs, __BOND_ATTR_MAX, otb_b,
-+ 			blob_data(bdev->config_data), blob_len(bdev->config_data));
-+ 
-+-		diff = 0;
-+-		uci_blob_diff(tb_b, otb_b, &bonding_attr_list, &diff);
-+-		if (diff & ~(1 << BOND_ATTR_PORTS))
-++		diff[0] = diff[1] = 0;
-++		uci_blob_diff(tb_b, otb_b, &bonding_attr_list, diff);
-++		if (diff[0] & ~(1 << BOND_ATTR_PORTS))
-+ 		    ret = DEV_CONFIG_RESTART;
-+ 
-+ 		bonding_config_init(dev);
 diff --git a/target/linux/generic/config-5.15 b/target/linux/generic/config-5.15
 index 214a1e6ecd83c067b96cb55ad052ae00b82fa8b5..bf6709ae2dbb87a21659558161d4882befd88b49 100644
 --- a/target/linux/generic/config-5.15
-- 
GitLab