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
	 Lucas Asvio
					Lucas Asvio