kernel: ipq806x: refresh qca-nss patches to kernel 5.15.158
This commit is contained in:
@@ -452,7 +452,7 @@
|
||||
+/* QCA NSS ECM support - End */
|
||||
--- a/net/bridge/br_private.h
|
||||
+++ b/net/bridge/br_private.h
|
||||
@@ -2100,4 +2100,9 @@ void br_do_proxy_suppress_arp(struct sk_
|
||||
@@ -2101,4 +2101,9 @@ void br_do_proxy_suppress_arp(struct sk_
|
||||
void br_do_suppress_nd(struct sk_buff *skb, struct net_bridge *br,
|
||||
u16 vid, struct net_bridge_port *p, struct nd_msg *msg);
|
||||
struct nd_msg *br_is_nd_neigh_msg(struct sk_buff *skb, struct nd_msg *m);
|
||||
@@ -602,7 +602,7 @@
|
||||
|
||||
static void
|
||||
ipv6_link_dev_addr(struct inet6_dev *idev, struct inet6_ifaddr *ifp)
|
||||
@@ -2064,6 +2065,7 @@ struct inet6_ifaddr *ipv6_get_ifaddr(str
|
||||
@@ -2065,6 +2066,7 @@ struct inet6_ifaddr *ipv6_get_ifaddr(str
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
__u32 flags; /* tunnel flags */
|
||||
--- a/include/net/ip_tunnels.h
|
||||
+++ b/include/net/ip_tunnels.h
|
||||
@@ -534,4 +534,9 @@ static inline void ip_tunnel_info_opts_s
|
||||
@@ -567,4 +567,9 @@ static inline void ip_tunnel_info_opts_s
|
||||
|
||||
#endif /* CONFIG_INET */
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
/* caller should hold vxlan->hash_lock */
|
||||
static struct vxlan_rdst *vxlan_fdb_find_rdst(struct vxlan_fdb *f,
|
||||
union vxlan_addr *ip, __be16 port,
|
||||
@@ -2746,6 +2777,9 @@ static void vxlan_xmit_one(struct sk_buf
|
||||
@@ -2750,6 +2781,9 @@ static void vxlan_xmit_one(struct sk_buf
|
||||
goto out_unlock;
|
||||
}
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
tos = ip_tunnel_ecn_encap(tos, old_iph, skb);
|
||||
ttl = ttl ? : ip4_dst_hoplimit(&rt->dst);
|
||||
err = vxlan_build_skb(skb, ndst, sizeof(struct iphdr),
|
||||
@@ -2817,6 +2851,9 @@ static void vxlan_xmit_one(struct sk_buf
|
||||
@@ -2821,6 +2855,9 @@ static void vxlan_xmit_one(struct sk_buf
|
||||
if (err < 0)
|
||||
goto tx_error;
|
||||
|
||||
|
||||
@@ -38,15 +38,15 @@
|
||||
errout:
|
||||
--- a/net/bridge/br_private.h
|
||||
+++ b/net/bridge/br_private.h
|
||||
@@ -833,6 +833,7 @@ void br_manage_promisc(struct net_bridge
|
||||
@@ -834,6 +834,7 @@ void br_manage_promisc(struct net_bridge
|
||||
int nbp_backup_change(struct net_bridge_port *p, struct net_device *backup_dev);
|
||||
|
||||
/* br_input.c */
|
||||
+int br_pass_frame_up(struct sk_buff *skb); /* QCA qca-mcs support */
|
||||
+int br_pass_frame_up(struct sk_buff *skb, bool promisc); /* QCA qca-mcs support */
|
||||
int br_handle_frame_finish(struct net *net, struct sock *sk, struct sk_buff *skb);
|
||||
rx_handler_func_t *br_get_rx_handler(const struct net_device *dev);
|
||||
|
||||
@@ -2105,4 +2106,14 @@ struct nd_msg *br_is_nd_neigh_msg(struct
|
||||
@@ -2106,4 +2107,14 @@ struct nd_msg *br_is_nd_neigh_msg(struct
|
||||
#define __br_get(__hook, __default, __args ...) \
|
||||
(__hook ? (__hook(__args)) : (__default))
|
||||
/* QCA NSS ECM support - End */
|
||||
@@ -124,12 +124,12 @@
|
||||
return netif_receive_skb(skb);
|
||||
}
|
||||
|
||||
-static int br_pass_frame_up(struct sk_buff *skb)
|
||||
+int br_pass_frame_up(struct sk_buff *skb)
|
||||
-static int br_pass_frame_up(struct sk_buff *skb, bool promisc)
|
||||
+int br_pass_frame_up(struct sk_buff *skb, bool promisc)
|
||||
{
|
||||
struct net_device *indev, *brdev = BR_INPUT_SKB_CB(skb)->brdev;
|
||||
struct net_bridge *br = netdev_priv(brdev);
|
||||
@@ -69,6 +79,7 @@ static int br_pass_frame_up(struct sk_bu
|
||||
@@ -71,6 +81,7 @@ static int br_pass_frame_up(struct sk_bu
|
||||
dev_net(indev), NULL, skb, indev, NULL,
|
||||
br_netif_receive_skb);
|
||||
}
|
||||
@@ -137,8 +137,8 @@
|
||||
|
||||
/* note: already called with rcu_read_lock */
|
||||
int br_handle_frame_finish(struct net *net, struct sock *sk, struct sk_buff *skb)
|
||||
@@ -84,6 +95,11 @@ int br_handle_frame_finish(struct net *n
|
||||
struct net_bridge *br;
|
||||
@@ -87,6 +98,11 @@ int br_handle_frame_finish(struct net *n
|
||||
bool promisc;
|
||||
u16 vid = 0;
|
||||
u8 state;
|
||||
+ /* QCA qca-mcs support - Start */
|
||||
@@ -149,7 +149,7 @@
|
||||
|
||||
if (!p || p->state == BR_STATE_DISABLED)
|
||||
goto drop;
|
||||
@@ -140,6 +156,11 @@ int br_handle_frame_finish(struct net *n
|
||||
@@ -145,6 +161,11 @@ int br_handle_frame_finish(struct net *n
|
||||
|
||||
switch (pkt_type) {
|
||||
case BR_PKT_MULTICAST:
|
||||
@@ -161,7 +161,7 @@
|
||||
mdst = br_mdb_get(brmctx, skb, vid);
|
||||
if ((mdst || BR_INPUT_SKB_CB_MROUTERS_ONLY(skb)) &&
|
||||
br_multicast_querier_exists(brmctx, eth_hdr(skb), mdst)) {
|
||||
@@ -155,8 +176,15 @@ int br_handle_frame_finish(struct net *n
|
||||
@@ -160,8 +181,15 @@ int br_handle_frame_finish(struct net *n
|
||||
}
|
||||
break;
|
||||
case BR_PKT_UNICAST:
|
||||
@@ -179,7 +179,7 @@
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -171,12 +199,19 @@ int br_handle_frame_finish(struct net *n
|
||||
@@ -176,12 +204,19 @@ int br_handle_frame_finish(struct net *n
|
||||
dst->used = now;
|
||||
br_forward(dst->dst, skb, local_rcv, false);
|
||||
} else {
|
||||
@@ -198,7 +198,7 @@
|
||||
-
|
||||
+out1: /* QCA qca-mcs support */
|
||||
if (local_rcv)
|
||||
return br_pass_frame_up(skb);
|
||||
return br_pass_frame_up(skb, promisc);
|
||||
|
||||
--- a/include/linux/mroute.h
|
||||
+++ b/include/linux/mroute.h
|
||||
|
||||
Reference in New Issue
Block a user