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 */
|
+/* QCA NSS ECM support - End */
|
||||||
--- a/net/bridge/br_private.h
|
--- a/net/bridge/br_private.h
|
||||||
+++ b/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,
|
void br_do_suppress_nd(struct sk_buff *skb, struct net_bridge *br,
|
||||||
u16 vid, struct net_bridge_port *p, struct nd_msg *msg);
|
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);
|
struct nd_msg *br_is_nd_neigh_msg(struct sk_buff *skb, struct nd_msg *m);
|
||||||
@@ -602,7 +602,7 @@
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
ipv6_link_dev_addr(struct inet6_dev *idev, struct inet6_ifaddr *ifp)
|
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;
|
return result;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
__u32 flags; /* tunnel flags */
|
__u32 flags; /* tunnel flags */
|
||||||
--- a/include/net/ip_tunnels.h
|
--- a/include/net/ip_tunnels.h
|
||||||
+++ b/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 */
|
#endif /* CONFIG_INET */
|
||||||
|
|
||||||
|
|||||||
@@ -59,7 +59,7 @@
|
|||||||
/* caller should hold vxlan->hash_lock */
|
/* caller should hold vxlan->hash_lock */
|
||||||
static struct vxlan_rdst *vxlan_fdb_find_rdst(struct vxlan_fdb *f,
|
static struct vxlan_rdst *vxlan_fdb_find_rdst(struct vxlan_fdb *f,
|
||||||
union vxlan_addr *ip, __be16 port,
|
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;
|
goto out_unlock;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -69,7 +69,7 @@
|
|||||||
tos = ip_tunnel_ecn_encap(tos, old_iph, skb);
|
tos = ip_tunnel_ecn_encap(tos, old_iph, skb);
|
||||||
ttl = ttl ? : ip4_dst_hoplimit(&rt->dst);
|
ttl = ttl ? : ip4_dst_hoplimit(&rt->dst);
|
||||||
err = vxlan_build_skb(skb, ndst, sizeof(struct iphdr),
|
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)
|
if (err < 0)
|
||||||
goto tx_error;
|
goto tx_error;
|
||||||
|
|
||||||
|
|||||||
@@ -38,15 +38,15 @@
|
|||||||
errout:
|
errout:
|
||||||
--- a/net/bridge/br_private.h
|
--- a/net/bridge/br_private.h
|
||||||
+++ b/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);
|
int nbp_backup_change(struct net_bridge_port *p, struct net_device *backup_dev);
|
||||||
|
|
||||||
/* br_input.c */
|
/* 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);
|
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);
|
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 ...) \
|
#define __br_get(__hook, __default, __args ...) \
|
||||||
(__hook ? (__hook(__args)) : (__default))
|
(__hook ? (__hook(__args)) : (__default))
|
||||||
/* QCA NSS ECM support - End */
|
/* QCA NSS ECM support - End */
|
||||||
@@ -124,12 +124,12 @@
|
|||||||
return netif_receive_skb(skb);
|
return netif_receive_skb(skb);
|
||||||
}
|
}
|
||||||
|
|
||||||
-static 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)
|
+int br_pass_frame_up(struct sk_buff *skb, bool promisc)
|
||||||
{
|
{
|
||||||
struct net_device *indev, *brdev = BR_INPUT_SKB_CB(skb)->brdev;
|
struct net_device *indev, *brdev = BR_INPUT_SKB_CB(skb)->brdev;
|
||||||
struct net_bridge *br = netdev_priv(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,
|
dev_net(indev), NULL, skb, indev, NULL,
|
||||||
br_netif_receive_skb);
|
br_netif_receive_skb);
|
||||||
}
|
}
|
||||||
@@ -137,8 +137,8 @@
|
|||||||
|
|
||||||
/* note: already called with rcu_read_lock */
|
/* note: already called with rcu_read_lock */
|
||||||
int br_handle_frame_finish(struct net *net, struct sock *sk, struct sk_buff *skb)
|
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
|
@@ -87,6 +98,11 @@ int br_handle_frame_finish(struct net *n
|
||||||
struct net_bridge *br;
|
bool promisc;
|
||||||
u16 vid = 0;
|
u16 vid = 0;
|
||||||
u8 state;
|
u8 state;
|
||||||
+ /* QCA qca-mcs support - Start */
|
+ /* QCA qca-mcs support - Start */
|
||||||
@@ -149,7 +149,7 @@
|
|||||||
|
|
||||||
if (!p || p->state == BR_STATE_DISABLED)
|
if (!p || p->state == BR_STATE_DISABLED)
|
||||||
goto drop;
|
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) {
|
switch (pkt_type) {
|
||||||
case BR_PKT_MULTICAST:
|
case BR_PKT_MULTICAST:
|
||||||
@@ -161,7 +161,7 @@
|
|||||||
mdst = br_mdb_get(brmctx, skb, vid);
|
mdst = br_mdb_get(brmctx, skb, vid);
|
||||||
if ((mdst || BR_INPUT_SKB_CB_MROUTERS_ONLY(skb)) &&
|
if ((mdst || BR_INPUT_SKB_CB_MROUTERS_ONLY(skb)) &&
|
||||||
br_multicast_querier_exists(brmctx, eth_hdr(skb), mdst)) {
|
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;
|
break;
|
||||||
case BR_PKT_UNICAST:
|
case BR_PKT_UNICAST:
|
||||||
@@ -179,7 +179,7 @@
|
|||||||
default:
|
default:
|
||||||
break;
|
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;
|
dst->used = now;
|
||||||
br_forward(dst->dst, skb, local_rcv, false);
|
br_forward(dst->dst, skb, local_rcv, false);
|
||||||
} else {
|
} else {
|
||||||
@@ -198,7 +198,7 @@
|
|||||||
-
|
-
|
||||||
+out1: /* QCA qca-mcs support */
|
+out1: /* QCA qca-mcs support */
|
||||||
if (local_rcv)
|
if (local_rcv)
|
||||||
return br_pass_frame_up(skb);
|
return br_pass_frame_up(skb, promisc);
|
||||||
|
|
||||||
--- a/include/linux/mroute.h
|
--- a/include/linux/mroute.h
|
||||||
+++ b/include/linux/mroute.h
|
+++ b/include/linux/mroute.h
|
||||||
|
|||||||
Reference in New Issue
Block a user