From eb67fabe2c5d95773653a2f69b092548058d84fc Mon Sep 17 00:00:00 2001 From: David Bauer Date: Mon, 20 May 2024 00:40:36 +0200 Subject: [PATCH 1/2] modules: update openwrt 09a8f75077 wireless-regdb: update to 2024.05.08 a9e117e03f mt76: fix mt7603 compilation e61f06c51d ipq806x: mr42/mr52: fix PCIe ports 2568b30285 mt76: backport mt7603 fixes important for its stability ffd0074694 mt76: update to Git HEAD (2024-02-03) a39e47e0c9 mt76: update to Git HEAD (2024-01-18) 01c58a0d2a kernel: bump 5.15 to 5.15.158 438e593f22 kernel: bump 5.15 to 5.15.157 fd42798fea kernel: bump 5.15 to 5.15.156 7a0d5a5c8b ipq40xx: Enable the Engenius EAP1300 66952b9ff4 ipq40xx: Properly set MAC addresses for the EAP1300 89088ba638 ipq40xx: convert Engenius EAP1300 to DSA 11b00344d1 ipq40xx: Enable NVMEM_U_BOOT_ENV config --- modules | 2 +- ...wake-up-calls-Android-bug-workaround.patch | 101 +++++++----------- 2 files changed, 38 insertions(+), 65 deletions(-) diff --git a/modules b/modules index bb94418af0..17d1deafb2 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=447eef2063cce1ad472a07af3e368826158b1da3 +OPENWRT_COMMIT=09a8f75077117ca2ab880cbf854cf7a2dae0d494 PACKAGES_GLUON_REPO=https://github.com/freifunk-gluon/packages.git PACKAGES_GLUON_COMMIT=3d08b0fee8dc5d96d8bcdb985fad1d5564de4022 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 53dcbbc8bf..78d6848901 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 @@ -174,7 +174,7 @@ index 0000000000000000000000000000000000000000..077a563b6066cd1d3aee4b1e82328e8c + + int system_bridge_addif(struct device *bridge, struct device *dev) diff --git a/target/linux/generic/config-5.15 b/target/linux/generic/config-5.15 -index 00977650c7ac26f1c443d684e3f5247022962b3a..2c094533933a798ae0fc36a841ef6e9cfc5df8c7 100644 +index 377553433846b5cec34e5d7036b8109f954aef5a..47c2ca0409654b4bfa08f32ed2869a6d077c8913 100644 --- a/target/linux/generic/config-5.15 +++ b/target/linux/generic/config-5.15 @@ -761,6 +761,7 @@ CONFIG_BRIDGE=y @@ -187,10 +187,10 @@ index 00977650c7ac26f1c443d684e3f5247022962b3a..2c094533933a798ae0fc36a841ef6e9c # CONFIG_BRIDGE_NF_EBTABLES is not set diff --git a/target/linux/generic/hack-5.15/602-bridge-Implement-MLD-Querier-wake-up-calls-Android-b.patch b/target/linux/generic/hack-5.15/602-bridge-Implement-MLD-Querier-wake-up-calls-Android-b.patch new file mode 100644 -index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855723e5763 +index 0000000000000000000000000000000000000000..91dd13e51549f40aa11a01d53e11be1a70f25d86 --- /dev/null +++ b/target/linux/generic/hack-5.15/602-bridge-Implement-MLD-Querier-wake-up-calls-Android-b.patch -@@ -0,0 +1,690 @@ +@@ -0,0 +1,663 @@ +From 4529dcf18d4c5e05d30cd2d6fabfbae201e6c347 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Linus=20L=C3=BCssing?= +Date: Mon, 29 Jun 2020 19:04:05 +0200 @@ -237,8 +237,6 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855 + net/ipv6/mcast_snoop.c | 3 +- + 12 files changed, 386 insertions(+), 10 deletions(-) + -+diff --git a/include/linux/if_bridge.h b/include/linux/if_bridge.h -+index 18d3b264b754..5ee206fb5ee7 100644 +--- a/include/linux/if_bridge.h ++++ b/include/linux/if_bridge.h +@@ -59,6 +59,7 @@ struct br_ip_list { @@ -249,11 +247,9 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855 + + #define BR_DEFAULT_AGEING_TIME (300 * HZ) + -+diff --git a/include/net/addrconf.h b/include/net/addrconf.h -+index 53627afab104..f31ea1726efa 100644 +--- a/include/net/addrconf.h ++++ b/include/net/addrconf.h -+@@ -233,6 +233,7 @@ void ipv6_mc_unmap(struct inet6_dev *idev); ++@@ -241,6 +241,7 @@ void ipv6_mc_unmap(struct inet6_dev *ide + void ipv6_mc_remap(struct inet6_dev *idev); + void ipv6_mc_init_dev(struct inet6_dev *idev); + void ipv6_mc_destroy_dev(struct inet6_dev *idev); @@ -261,8 +257,6 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855 + int ipv6_mc_check_mld(struct sk_buff *skb); + void addrconf_dad_failure(struct sk_buff *skb, struct inet6_ifaddr *ifp); + -+diff --git a/include/uapi/linux/if_link.h b/include/uapi/linux/if_link.h -+index be0ad9a79da8..baf07b15e481 100644 +--- a/include/uapi/linux/if_link.h ++++ b/include/uapi/linux/if_link.h +@@ -537,6 +537,7 @@ enum { @@ -273,8 +267,6 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855 + __IFLA_BRPORT_MAX + }; + #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) -+diff --git a/net/bridge/Kconfig b/net/bridge/Kconfig -+index 3c8ded7d3e84..1a11e22c7d51 100644 +--- a/net/bridge/Kconfig ++++ b/net/bridge/Kconfig +@@ -48,6 +48,32 @@ config BRIDGE_IGMP_SNOOPING @@ -310,11 +302,9 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855 + config BRIDGE_VLAN_FILTERING + bool "VLAN filtering" + depends on BRIDGE -+diff --git a/net/bridge/br_fdb.c b/net/bridge/br_fdb.c -+index 46812b659710..eec5f3770ff8 100644 +--- a/net/bridge/br_fdb.c ++++ b/net/bridge/br_fdb.c -+@@ -84,6 +84,10 @@ static void fdb_rcu_free(struct rcu_head *head) ++@@ -84,6 +84,10 @@ static void fdb_rcu_free(struct rcu_head + { + struct net_bridge_fdb_entry *ent + = container_of(head, struct net_bridge_fdb_entry, rcu); @@ -325,7 +315,7 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855 + kmem_cache_free(br_fdb_cache, ent); + } + -+@@ -518,6 +522,12 @@ static struct net_bridge_fdb_entry *fdb_create(struct net_bridge *br, ++@@ -518,6 +522,12 @@ static struct net_bridge_fdb_entry *fdb_ + fdb->key.vlan_id = vid; + fdb->flags = flags; + fdb->updated = fdb->used = jiffies; @@ -338,27 +328,23 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855 + if (rhashtable_lookup_insert_fast(&br->fdb_hash_tbl, + &fdb->rhnode, + br_fdb_rht_params)) { -+diff --git a/net/bridge/br_input.c b/net/bridge/br_input.c -+index fe80b8e4c2d7..879ae7adb845 100644 +--- a/net/bridge/br_input.c ++++ b/net/bridge/br_input.c -+@@ -164,8 +164,10 @@ int br_handle_frame_finish(struct net *net, struct sock *sk, struct sk_buff *skb ++@@ -169,8 +169,10 @@ int br_handle_frame_finish(struct net *n + if (dst) { + unsigned long now = jiffies; + +- if (test_bit(BR_FDB_LOCAL, &dst->flags)) ++ if (test_bit(BR_FDB_LOCAL, &dst->flags)) { ++ br_multicast_wakeupcall_rcv(brmctx, pmctx, skb, vid); -+ return br_pass_frame_up(skb); ++ return br_pass_frame_up(skb, false); ++ } + + if (now != dst->used) + dst->used = now; -+diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c -+index db4f2641d1cd..6822dfbafa71 100644 +--- a/net/bridge/br_multicast.c ++++ b/net/bridge/br_multicast.c -+@@ -950,15 +950,16 @@ static struct sk_buff *br_ip6_multicast_alloc_query(struct net_bridge_mcast *brm ++@@ -950,15 +950,16 @@ static struct sk_buff *br_ip6_multicast_ + const struct in6_addr *group, + bool with_srcs, bool over_llqt, + u8 sflag, u8 *igmp_type, @@ -377,7 +363,7 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855 + __sum16 *csum = NULL; + struct ipv6hdr *ip6h; + struct mld_msg *mldq; -+@@ -1040,9 +1041,13 @@ static struct sk_buff *br_ip6_multicast_alloc_query(struct net_bridge_mcast *brm ++@@ -1040,9 +1041,13 @@ static struct sk_buff *br_ip6_multicast_ + + /* ICMPv6 */ + skb_set_transport_header(skb, skb->len); @@ -394,7 +380,7 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855 + *igmp_type = ICMPV6_MGM_QUERY; + switch (brmctx->multicast_mld_version) { + case 1: -+@@ -1050,7 +1055,7 @@ static struct sk_buff *br_ip6_multicast_alloc_query(struct net_bridge_mcast *brm ++@@ -1050,7 +1055,7 @@ static struct sk_buff *br_ip6_multicast_ + mldq->mld_type = ICMPV6_MGM_QUERY; + mldq->mld_code = 0; + mldq->mld_cksum = 0; @@ -403,7 +389,7 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855 + mldq->mld_reserved = 0; + mldq->mld_mca = *group; + csum = &mldq->mld_cksum; -+@@ -1141,7 +1146,7 @@ static struct sk_buff *br_multicast_alloc_query(struct net_bridge_mcast *brmctx, ++@@ -1141,7 +1146,7 @@ static struct sk_buff *br_multicast_allo + &ip6_dst, &group->dst.ip6, + with_srcs, over_lmqt, + sflag, igmp_type, @@ -412,7 +398,7 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855 + } + #endif + } -+@@ -1619,6 +1624,169 @@ static void br_multicast_select_own_querier(struct net_bridge_mcast *brmctx, ++@@ -1623,6 +1628,169 @@ static void br_multicast_select_own_quer + #endif + } + @@ -582,7 +568,7 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855 + static void __br_multicast_send_query(struct net_bridge_mcast *brmctx, + struct net_bridge_mcast_port *pmctx, + struct net_bridge_port_group *pg, -+@@ -1651,6 +1819,13 @@ static void __br_multicast_send_query(struct net_bridge_mcast *brmctx, ++@@ -1655,6 +1823,13 @@ again_under_lmqt: + dev_net(pmctx->port->dev), NULL, skb, NULL, skb->dev, + br_dev_queue_push_xmit); + @@ -596,7 +582,7 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855 + if (over_lmqt && with_srcs && sflag) { + over_lmqt = false; + goto again_under_lmqt; -+@@ -3801,6 +3976,99 @@ int br_multicast_rcv(struct net_bridge_mcast **brmctx, ++@@ -3805,6 +3980,99 @@ int br_multicast_rcv(struct net_bridge_m + return ret; + } + @@ -696,7 +682,7 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855 + static void br_multicast_query_expired(struct net_bridge_mcast *brmctx, + struct bridge_mcast_own_query *query, + struct bridge_mcast_querier *querier) -+@@ -4325,6 +4593,15 @@ int br_multicast_set_vlan_router(struct net_bridge_vlan *v, u8 mcast_router) ++@@ -4333,6 +4601,15 @@ int br_multicast_set_vlan_router(struct + return err; + } + @@ -712,21 +698,19 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855 + static void br_multicast_start_querier(struct net_bridge_mcast *brmctx, + struct bridge_mcast_own_query *query) + { -+diff --git a/net/bridge/br_netlink.c b/net/bridge/br_netlink.c -+index ae6007309a17..09d4861b7336 100644 +--- a/net/bridge/br_netlink.c ++++ b/net/bridge/br_netlink.c -+@@ -198,6 +198,9 @@ static inline size_t br_port_info_size(void) -+ + nla_total_size_64bit(sizeof(u64)) /* IFLA_BRPORT_HOLD_TIMER */ ++@@ -199,6 +199,9 @@ static inline size_t br_port_info_size(v + #ifdef CONFIG_BRIDGE_IGMP_SNOOPING + + nla_total_size(sizeof(u8)) /* IFLA_BRPORT_MULTICAST_ROUTER */ -++#endif ++ #endif ++#ifdef CONFIG_BRIDGE_IGMP_SNOOPING_WAKEUPCALLS ++ + nla_total_size(sizeof(u8)) /* IFLA_BRPORT_MCAST_WAKEUPCALL */ -+ #endif +++#endif + + nla_total_size(sizeof(u16)) /* IFLA_BRPORT_GROUP_FWD_MASK */ + + nla_total_size(sizeof(u8)) /* IFLA_BRPORT_MRP_RING_OPEN */ -+@@ -296,6 +299,11 @@ static int br_port_fill_attrs(struct sk_buff *skb, ++ + nla_total_size(sizeof(u8)) /* IFLA_BRPORT_MRP_IN_OPEN */ ++@@ -296,6 +299,11 @@ static int br_port_fill_attrs(struct sk_ + p->multicast_eht_hosts_cnt)) + return -EMSGSIZE; + #endif @@ -738,7 +722,7 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855 + + /* we might be called only with br->lock */ + rcu_read_lock(); -+@@ -823,6 +831,7 @@ static const struct nla_policy br_port_policy[IFLA_BRPORT_MAX + 1] = { ++@@ -823,6 +831,7 @@ static const struct nla_policy br_port_p + [IFLA_BRPORT_PROXYARP_WIFI] = { .type = NLA_U8 }, + [IFLA_BRPORT_MULTICAST_ROUTER] = { .type = NLA_U8 }, + [IFLA_BRPORT_MCAST_TO_UCAST] = { .type = NLA_U8 }, @@ -746,10 +730,12 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855 + [IFLA_BRPORT_MCAST_FLOOD] = { .type = NLA_U8 }, + [IFLA_BRPORT_BCAST_FLOOD] = { .type = NLA_U8 }, + [IFLA_BRPORT_VLAN_TUNNEL] = { .type = NLA_U8 }, -+@@ -952,6 +961,16 @@ static int br_setport(struct net_bridge_port *p, struct nlattr *tb[], ++@@ -950,6 +959,16 @@ static int br_setport(struct net_bridge_ ++ if (err) ++ return err; + } -+ #endif -+ +++#endif +++ ++#ifdef CONFIG_BRIDGE_IGMP_SNOOPING_WAKEUPCALLS ++ if (tb[IFLA_BRPORT_MCAST_WAKEUPCALL]) { ++ u8 wakeupcall = nla_get_u8(tb[IFLA_BRPORT_MCAST_WAKEUPCALL]); @@ -758,13 +744,9 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855 ++ if (err) ++ return err; ++ } -++#endif -++ -+ if (tb[IFLA_BRPORT_GROUP_FWD_MASK]) { -+ u16 fwd_mask = nla_get_u16(tb[IFLA_BRPORT_GROUP_FWD_MASK]); ++ #endif + -+diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h -+index bd218c2b2cd9..32191519b500 100644 ++ if (tb[IFLA_BRPORT_GROUP_FWD_MASK]) { +--- a/net/bridge/br_private.h ++++ b/net/bridge/br_private.h +@@ -269,6 +269,10 @@ struct net_bridge_fdb_entry { @@ -786,7 +768,7 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855 + #endif + + #ifdef CONFIG_SYSFS -+@@ -1418,6 +1423,21 @@ br_multicast_ctx_options_equal(const struct net_bridge_mcast *brmctx1, ++@@ -1419,6 +1424,21 @@ br_multicast_ctx_options_equal(const str + } + #endif + @@ -808,11 +790,9 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855 + /* br_vlan.c */ + #ifdef CONFIG_BRIDGE_VLAN_FILTERING + bool br_allowed_ingress(const struct net_bridge *br, -+diff --git a/net/bridge/br_sysfs_if.c b/net/bridge/br_sysfs_if.c -+index 9ee9c60738e2..9dcd4a9204db 100644 +--- a/net/bridge/br_sysfs_if.c ++++ b/net/bridge/br_sysfs_if.c -+@@ -260,6 +260,21 @@ BRPORT_ATTR_FLAG(multicast_fast_leave, BR_MULTICAST_FAST_LEAVE); ++@@ -260,6 +260,21 @@ BRPORT_ATTR_FLAG(multicast_fast_leave, B + BRPORT_ATTR_FLAG(multicast_to_unicast, BR_MULTICAST_TO_UNICAST); + #endif + @@ -834,18 +814,16 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855 + static const struct brport_attribute *brport_attrs[] = { + &brport_attr_path_cost, + &brport_attr_priority, -+@@ -285,6 +300,9 @@ static const struct brport_attribute *brport_attrs[] = { -+ &brport_attr_multicast_router, ++@@ -286,6 +301,9 @@ static const struct brport_attribute *br + &brport_attr_multicast_fast_leave, + &brport_attr_multicast_to_unicast, -++#endif ++ #endif ++#ifdef CONFIG_BRIDGE_IGMP_SNOOPING_WAKEUPCALLS ++ &brport_attr_multicast_wakeupcall, -+ #endif +++#endif + &brport_attr_proxyarp, + &brport_attr_proxyarp_wifi, -+diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c -+index e0fa875832a0..caf454185dc8 100644 ++ &brport_attr_multicast_flood, +--- a/net/core/rtnetlink.c ++++ b/net/core/rtnetlink.c +@@ -55,7 +55,7 @@ @@ -857,11 +835,9 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855 + + struct rtnl_link { + rtnl_doit_func doit; -+diff --git a/net/ipv6/mcast_snoop.c b/net/ipv6/mcast_snoop.c -+index 04d5fcdfa6e0..9a5061edbaf3 100644 +--- a/net/ipv6/mcast_snoop.c ++++ b/net/ipv6/mcast_snoop.c -+@@ -131,7 +131,7 @@ static inline __sum16 ipv6_mc_validate_checksum(struct sk_buff *skb) ++@@ -131,7 +131,7 @@ static inline __sum16 ipv6_mc_validate_c + return skb_checksum_validate(skb, IPPROTO_ICMPV6, ip6_compute_pseudo); + } + @@ -870,7 +846,7 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855 + { + unsigned int len = skb_transport_offset(skb) + sizeof(struct icmp6hdr); + unsigned int transport_len = ipv6_transport_len(skb); -+@@ -150,6 +150,7 @@ static int ipv6_mc_check_icmpv6(struct sk_buff *skb) ++@@ -150,6 +150,7 @@ static int ipv6_mc_check_icmpv6(struct s + + return 0; + } @@ -878,6 +854,3 @@ index 0000000000000000000000000000000000000000..84f872ddc2433514ca5c210f73b37855 + + /** + * ipv6_mc_check_mld - checks whether this is a sane MLD packet -+-- -+2.40.1 -+ From bc59e3c199ba2bbd2a9bd912fb287d5ae84eae45 Mon Sep 17 00:00:00 2001 From: David Bauer Date: Mon, 20 May 2024 00:40:51 +0200 Subject: [PATCH 2/2] modules: update packages a14bb12df openconnect: introduced URI parameter 233405f68 openconnect: backport fix for anyconnect compatibility 913cda459 gptfdisk: update to 1.0.10 2da338d5c golang: Update to 1.21.10 4369aa026 pdns-recursor: update to 4.8.8 c230bf75a adblock-fast: update to 1.1.2-1 --- modules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules b/modules index 17d1deafb2..0b2399f90f 100644 --- a/modules +++ b/modules @@ -9,7 +9,7 @@ PACKAGES_GLUON_COMMIT=3d08b0fee8dc5d96d8bcdb985fad1d5564de4022 PACKAGES_PACKAGES_REPO=https://github.com/openwrt/packages.git PACKAGES_PACKAGES_BRANCH=openwrt-23.05 -PACKAGES_PACKAGES_COMMIT=ade006dc9feded81a13d0d268a2557b594f61b7e +PACKAGES_PACKAGES_COMMIT=a14bb12dffba451e1b386e2d080997d9293d1481 PACKAGES_ROUTING_REPO=https://github.com/openwrt/routing.git PACKAGES_ROUTING_BRANCH=openwrt-23.05