kernel: ipq806x: refresh qca-nss patches to kernel 5.15.155
kernel: ipq806x: refresh qca-nss patches to kernel 5.15.150
This commit is contained in:
@@ -19,7 +19,7 @@ Signed-off-by: Christian 'Ansuel' Marangi <ansuelsmth@gmail.com>
|
|||||||
/*
|
/*
|
||||||
* Get the required data from the packet.
|
* Get the required data from the packet.
|
||||||
*/
|
*/
|
||||||
@@ -1191,7 +1194,7 @@ int nf_conntrack_tcp_packet(struct nf_co
|
@@ -1226,7 +1229,7 @@ int nf_conntrack_tcp_packet(struct nf_co
|
||||||
IP_CT_TCP_FLAG_DATA_UNACKNOWLEDGED &&
|
IP_CT_TCP_FLAG_DATA_UNACKNOWLEDGED &&
|
||||||
timeouts[new_state] > timeouts[TCP_CONNTRACK_UNACK])
|
timeouts[new_state] > timeouts[TCP_CONNTRACK_UNACK])
|
||||||
timeout = timeouts[TCP_CONNTRACK_UNACK];
|
timeout = timeouts[TCP_CONNTRACK_UNACK];
|
||||||
@@ -28,7 +28,7 @@ Signed-off-by: Christian 'Ansuel' Marangi <ansuelsmth@gmail.com>
|
|||||||
timeouts[new_state] > timeouts[TCP_CONNTRACK_RETRANS])
|
timeouts[new_state] > timeouts[TCP_CONNTRACK_RETRANS])
|
||||||
timeout = timeouts[TCP_CONNTRACK_RETRANS];
|
timeout = timeouts[TCP_CONNTRACK_RETRANS];
|
||||||
else
|
else
|
||||||
@@ -1507,6 +1510,9 @@ void nf_conntrack_tcp_init_net(struct ne
|
@@ -1542,6 +1545,9 @@ void nf_conntrack_tcp_init_net(struct ne
|
||||||
*/
|
*/
|
||||||
tn->tcp_be_liberal = 0;
|
tn->tcp_be_liberal = 0;
|
||||||
|
|
||||||
|
|||||||
@@ -145,7 +145,7 @@
|
|||||||
sdcc1bam: dma@12402000 {
|
sdcc1bam: dma@12402000 {
|
||||||
compatible = "qcom,bam-v1.3.0";
|
compatible = "qcom,bam-v1.3.0";
|
||||||
reg = <0x12402000 0x8000>;
|
reg = <0x12402000 0x8000>;
|
||||||
@@ -1554,6 +1685,20 @@
|
@@ -1553,6 +1684,20 @@
|
||||||
dmas = <&sdcc3bam 2>, <&sdcc3bam 1>;
|
dmas = <&sdcc3bam 2>, <&sdcc3bam 1>;
|
||||||
dma-names = "tx", "rx";
|
dma-names = "tx", "rx";
|
||||||
};
|
};
|
||||||
@@ -166,7 +166,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
sfpb_mutex: hwlock@1200600 {
|
sfpb_mutex: hwlock@1200600 {
|
||||||
@@ -1564,3 +1709,27 @@
|
@@ -1563,3 +1708,27 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -214,7 +214,7 @@
|
|||||||
|
|
||||||
--- a/arch/arm/boot/dts/qcom-ipq8064-eax500.dtsi
|
--- a/arch/arm/boot/dts/qcom-ipq8064-eax500.dtsi
|
||||||
+++ b/arch/arm/boot/dts/qcom-ipq8064-eax500.dtsi
|
+++ b/arch/arm/boot/dts/qcom-ipq8064-eax500.dtsi
|
||||||
@@ -170,10 +170,17 @@
|
@@ -198,10 +198,17 @@
|
||||||
0x00094 0x4e /* PORT6_STATUS */
|
0x00094 0x4e /* PORT6_STATUS */
|
||||||
>;
|
>;
|
||||||
};
|
};
|
||||||
@@ -232,7 +232,7 @@
|
|||||||
|
|
||||||
phy-mode = "rgmii";
|
phy-mode = "rgmii";
|
||||||
qcom,id = <1>;
|
qcom,id = <1>;
|
||||||
@@ -189,6 +196,9 @@
|
@@ -217,6 +224,9 @@
|
||||||
|
|
||||||
&gmac2 {
|
&gmac2 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
@@ -265,7 +265,7 @@
|
|||||||
-};
|
-};
|
||||||
--- a/arch/arm/boot/dts/qcom-ipq8064-ad7200-c2600.dtsi
|
--- a/arch/arm/boot/dts/qcom-ipq8064-ad7200-c2600.dtsi
|
||||||
+++ b/arch/arm/boot/dts/qcom-ipq8064-ad7200-c2600.dtsi
|
+++ b/arch/arm/boot/dts/qcom-ipq8064-ad7200-c2600.dtsi
|
||||||
@@ -330,6 +330,9 @@
|
@@ -357,6 +357,9 @@
|
||||||
|
|
||||||
&gmac1 {
|
&gmac1 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
@@ -275,7 +275,7 @@
|
|||||||
phy-mode = "rgmii";
|
phy-mode = "rgmii";
|
||||||
qcom,id = <1>;
|
qcom,id = <1>;
|
||||||
|
|
||||||
@@ -348,6 +351,9 @@
|
@@ -375,6 +378,9 @@
|
||||||
|
|
||||||
&gmac2 {
|
&gmac2 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
@@ -287,7 +287,7 @@
|
|||||||
|
|
||||||
--- a/arch/arm/boot/dts/qcom-ipq8064-r7500.dts
|
--- a/arch/arm/boot/dts/qcom-ipq8064-r7500.dts
|
||||||
+++ b/arch/arm/boot/dts/qcom-ipq8064-r7500.dts
|
+++ b/arch/arm/boot/dts/qcom-ipq8064-r7500.dts
|
||||||
@@ -258,6 +258,9 @@
|
@@ -274,6 +274,9 @@
|
||||||
|
|
||||||
&gmac1 {
|
&gmac1 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
@@ -297,7 +297,7 @@
|
|||||||
phy-mode = "rgmii";
|
phy-mode = "rgmii";
|
||||||
qcom,id = <1>;
|
qcom,id = <1>;
|
||||||
|
|
||||||
@@ -275,6 +278,9 @@
|
@@ -291,6 +294,9 @@
|
||||||
|
|
||||||
&gmac2 {
|
&gmac2 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
@@ -309,7 +309,7 @@
|
|||||||
|
|
||||||
--- a/arch/arm/boot/dts/qcom-ipq8064-r7500v2.dts
|
--- a/arch/arm/boot/dts/qcom-ipq8064-r7500v2.dts
|
||||||
+++ b/arch/arm/boot/dts/qcom-ipq8064-r7500v2.dts
|
+++ b/arch/arm/boot/dts/qcom-ipq8064-r7500v2.dts
|
||||||
@@ -341,6 +341,9 @@
|
@@ -357,6 +357,9 @@
|
||||||
|
|
||||||
&gmac1 {
|
&gmac1 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
@@ -319,7 +319,7 @@
|
|||||||
phy-mode = "rgmii";
|
phy-mode = "rgmii";
|
||||||
qcom,id = <1>;
|
qcom,id = <1>;
|
||||||
|
|
||||||
@@ -358,6 +361,9 @@
|
@@ -374,6 +377,9 @@
|
||||||
|
|
||||||
&gmac2 {
|
&gmac2 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
@@ -331,7 +331,7 @@
|
|||||||
|
|
||||||
--- a/arch/arm/boot/dts/qcom-ipq8064-d7800.dts
|
--- a/arch/arm/boot/dts/qcom-ipq8064-d7800.dts
|
||||||
+++ b/arch/arm/boot/dts/qcom-ipq8064-d7800.dts
|
+++ b/arch/arm/boot/dts/qcom-ipq8064-d7800.dts
|
||||||
@@ -344,6 +344,9 @@
|
@@ -360,6 +360,9 @@
|
||||||
|
|
||||||
&gmac1 {
|
&gmac1 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
@@ -341,7 +341,7 @@
|
|||||||
phy-mode = "rgmii";
|
phy-mode = "rgmii";
|
||||||
qcom,id = <1>;
|
qcom,id = <1>;
|
||||||
|
|
||||||
@@ -361,6 +364,9 @@
|
@@ -377,6 +380,9 @@
|
||||||
|
|
||||||
&gmac2 {
|
&gmac2 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
@@ -416,9 +416,9 @@
|
|||||||
|
|
||||||
pinctrl-0 = <&mdio0_pins>;
|
pinctrl-0 = <&mdio0_pins>;
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
@@ -224,10 +252,14 @@
|
@@ -170,10 +198,14 @@
|
||||||
*/
|
0x00094 0x4e /* PORT6_STATUS */
|
||||||
};
|
>;
|
||||||
};
|
};
|
||||||
+
|
+
|
||||||
};
|
};
|
||||||
@@ -431,7 +431,7 @@
|
|||||||
|
|
||||||
nand@0 {
|
nand@0 {
|
||||||
reg = <0>;
|
reg = <0>;
|
||||||
@@ -261,6 +293,7 @@
|
@@ -207,6 +239,7 @@
|
||||||
qcom,ath10k-calibration-variant = "ASRock-G10";
|
qcom,ath10k-calibration-variant = "ASRock-G10";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -578,7 +578,7 @@
|
|||||||
|
|
||||||
--- a/arch/arm/boot/dts/qcom-ipq8065-nbg6817.dts
|
--- a/arch/arm/boot/dts/qcom-ipq8065-nbg6817.dts
|
||||||
+++ b/arch/arm/boot/dts/qcom-ipq8065-nbg6817.dts
|
+++ b/arch/arm/boot/dts/qcom-ipq8065-nbg6817.dts
|
||||||
@@ -268,13 +268,23 @@
|
@@ -284,13 +284,23 @@
|
||||||
|
|
||||||
&gmac1 {
|
&gmac1 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
@@ -602,7 +602,7 @@
|
|||||||
qcom,irq = <255>;
|
qcom,irq = <255>;
|
||||||
mdiobus = <&mdio0>;
|
mdiobus = <&mdio0>;
|
||||||
|
|
||||||
@@ -289,13 +299,23 @@
|
@@ -305,13 +315,23 @@
|
||||||
|
|
||||||
&gmac2 {
|
&gmac2 {
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
--- a/drivers/soc/qcom/socinfo.c 2022-11-07 08:55:57.097003500 +0900
|
--- a/drivers/soc/qcom/socinfo.c
|
||||||
+++ b/drivers/soc/qcom/socinfo.c 2022-11-07 09:03:58.447003500 +0900
|
+++ b/drivers/soc/qcom/socinfo.c
|
||||||
@@ -230,6 +230,7 @@ static const struct soc_id soc_id[] = {
|
@@ -230,6 +230,7 @@ static const struct soc_id soc_id[] = {
|
||||||
{ 198, "MSM8126" },
|
{ 198, "MSM8126" },
|
||||||
{ 199, "APQ8026" },
|
{ 199, "APQ8026" },
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--- a/include/linux/if_bridge.h
|
--- a/include/linux/if_bridge.h
|
||||||
+++ b/include/linux/if_bridge.h
|
+++ b/include/linux/if_bridge.h
|
||||||
@@ -69,6 +69,7 @@ void brioctl_set(int (*hook)(struct net
|
@@ -68,6 +68,7 @@ void brioctl_set(int (*hook)(struct net
|
||||||
void __user *uarg));
|
void __user *uarg));
|
||||||
int br_ioctl_call(struct net *net, struct net_bridge *br, unsigned int cmd,
|
int br_ioctl_call(struct net *net, struct net_bridge *br, unsigned int cmd,
|
||||||
struct ifreq *ifr, void __user *uarg);
|
struct ifreq *ifr, void __user *uarg);
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
#if IS_ENABLED(CONFIG_BRIDGE) && IS_ENABLED(CONFIG_BRIDGE_IGMP_SNOOPING)
|
#if IS_ENABLED(CONFIG_BRIDGE) && IS_ENABLED(CONFIG_BRIDGE_IGMP_SNOOPING)
|
||||||
int br_multicast_list_adjacent(struct net_device *dev,
|
int br_multicast_list_adjacent(struct net_device *dev,
|
||||||
@@ -192,4 +193,42 @@ static inline clock_t br_get_ageing_time
|
@@ -191,4 +192,42 @@ static inline clock_t br_get_ageing_time
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -53,7 +53,7 @@
|
|||||||
#endif
|
#endif
|
||||||
--- a/include/linux/if_vlan.h
|
--- a/include/linux/if_vlan.h
|
||||||
+++ b/include/linux/if_vlan.h
|
+++ b/include/linux/if_vlan.h
|
||||||
@@ -222,7 +222,12 @@ extern void vlan_vids_del_by_dev(struct
|
@@ -230,7 +230,12 @@ extern void vlan_vids_del_by_dev(struct
|
||||||
|
|
||||||
extern bool vlan_uses_dev(const struct net_device *dev);
|
extern bool vlan_uses_dev(const struct net_device *dev);
|
||||||
|
|
||||||
@@ -68,7 +68,7 @@
|
|||||||
__be16 vlan_proto, u16 vlan_id)
|
__be16 vlan_proto, u16 vlan_id)
|
||||||
--- a/include/linux/netdevice.h
|
--- a/include/linux/netdevice.h
|
||||||
+++ b/include/linux/netdevice.h
|
+++ b/include/linux/netdevice.h
|
||||||
@@ -1713,6 +1713,27 @@ enum netdev_ml_priv_type {
|
@@ -1725,6 +1725,27 @@ enum netdev_ml_priv_type {
|
||||||
ML_PRIV_CAN,
|
ML_PRIV_CAN,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -96,7 +96,7 @@
|
|||||||
/**
|
/**
|
||||||
* struct net_device - The DEVICE structure.
|
* struct net_device - The DEVICE structure.
|
||||||
*
|
*
|
||||||
@@ -2848,6 +2869,10 @@ enum netdev_cmd {
|
@@ -2856,6 +2877,10 @@ enum netdev_cmd {
|
||||||
NETDEV_CVLAN_FILTER_DROP_INFO,
|
NETDEV_CVLAN_FILTER_DROP_INFO,
|
||||||
NETDEV_SVLAN_FILTER_PUSH_INFO,
|
NETDEV_SVLAN_FILTER_PUSH_INFO,
|
||||||
NETDEV_SVLAN_FILTER_DROP_INFO,
|
NETDEV_SVLAN_FILTER_DROP_INFO,
|
||||||
@@ -123,7 +123,7 @@
|
|||||||
const struct dst_entry *dst = skb_dst(skb);
|
const struct dst_entry *dst = skb_dst(skb);
|
||||||
--- a/include/net/neighbour.h
|
--- a/include/net/neighbour.h
|
||||||
+++ b/include/net/neighbour.h
|
+++ b/include/net/neighbour.h
|
||||||
@@ -574,4 +574,15 @@ static inline void neigh_update_is_route
|
@@ -567,4 +567,15 @@ static inline void neigh_update_is_route
|
||||||
*notify = 1;
|
*notify = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -155,7 +155,7 @@
|
|||||||
void fib_del_ifaddr(struct in_ifaddr *, struct in_ifaddr *);
|
void fib_del_ifaddr(struct in_ifaddr *, struct in_ifaddr *);
|
||||||
--- a/net/8021q/vlan_core.c
|
--- a/net/8021q/vlan_core.c
|
||||||
+++ b/net/8021q/vlan_core.c
|
+++ b/net/8021q/vlan_core.c
|
||||||
@@ -556,4 +556,12 @@ static int __init vlan_offload_init(void
|
@@ -563,4 +563,12 @@ static int __init vlan_offload_init(void
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -170,7 +170,7 @@
|
|||||||
fs_initcall(vlan_offload_init);
|
fs_initcall(vlan_offload_init);
|
||||||
--- a/net/bridge/br_fdb.c
|
--- a/net/bridge/br_fdb.c
|
||||||
+++ b/net/bridge/br_fdb.c
|
+++ b/net/bridge/br_fdb.c
|
||||||
@@ -38,6 +38,35 @@ static int fdb_insert(struct net_bridge
|
@@ -37,6 +37,35 @@ static int fdb_insert(struct net_bridge
|
||||||
static void fdb_notify(struct net_bridge *br,
|
static void fdb_notify(struct net_bridge *br,
|
||||||
const struct net_bridge_fdb_entry *, int, bool);
|
const struct net_bridge_fdb_entry *, int, bool);
|
||||||
|
|
||||||
@@ -206,7 +206,7 @@
|
|||||||
int __init br_fdb_init(void)
|
int __init br_fdb_init(void)
|
||||||
{
|
{
|
||||||
br_fdb_cache = kmem_cache_create("bridge_fdb_cache",
|
br_fdb_cache = kmem_cache_create("bridge_fdb_cache",
|
||||||
@@ -343,6 +372,7 @@ void br_fdb_cleanup(struct work_struct *
|
@@ -342,6 +371,7 @@ void br_fdb_cleanup(struct work_struct *
|
||||||
unsigned long delay = hold_time(br);
|
unsigned long delay = hold_time(br);
|
||||||
unsigned long work_delay = delay;
|
unsigned long work_delay = delay;
|
||||||
unsigned long now = jiffies;
|
unsigned long now = jiffies;
|
||||||
@@ -214,7 +214,7 @@
|
|||||||
|
|
||||||
/* this part is tricky, in order to avoid blocking learning and
|
/* this part is tricky, in order to avoid blocking learning and
|
||||||
* consequently forwarding, we rely on rcu to delete objects with
|
* consequently forwarding, we rely on rcu to delete objects with
|
||||||
@@ -369,8 +399,15 @@ void br_fdb_cleanup(struct work_struct *
|
@@ -368,8 +398,15 @@ void br_fdb_cleanup(struct work_struct *
|
||||||
work_delay = min(work_delay, this_timer - now);
|
work_delay = min(work_delay, this_timer - now);
|
||||||
} else {
|
} else {
|
||||||
spin_lock_bh(&br->hash_lock);
|
spin_lock_bh(&br->hash_lock);
|
||||||
@@ -231,7 +231,7 @@
|
|||||||
spin_unlock_bh(&br->hash_lock);
|
spin_unlock_bh(&br->hash_lock);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -618,6 +655,12 @@ void br_fdb_update(struct net_bridge *br
|
@@ -615,6 +652,12 @@ void br_fdb_update(struct net_bridge *br
|
||||||
&fdb->flags)))
|
&fdb->flags)))
|
||||||
clear_bit(BR_FDB_ADDED_BY_EXT_LEARN,
|
clear_bit(BR_FDB_ADDED_BY_EXT_LEARN,
|
||||||
&fdb->flags);
|
&fdb->flags);
|
||||||
@@ -244,9 +244,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (unlikely(test_bit(BR_FDB_ADDED_BY_USER, &flags)))
|
if (unlikely(test_bit(BR_FDB_ADDED_BY_USER, &flags)))
|
||||||
@@ -799,6 +842,25 @@ static void fdb_notify(struct net_bridge
|
@@ -794,6 +837,25 @@ static void fdb_notify(struct net_bridge
|
||||||
|
struct sk_buff *skb;
|
||||||
br_offload_fdb_update(fdb);
|
int err = -ENOBUFS;
|
||||||
|
|
||||||
+ /* QCA NSS ECM support - Start */
|
+ /* QCA NSS ECM support - Start */
|
||||||
+ if (fdb->dst) {
|
+ if (fdb->dst) {
|
||||||
@@ -270,7 +270,7 @@
|
|||||||
if (swdev_notify)
|
if (swdev_notify)
|
||||||
br_switchdev_fdb_notify(br, fdb, type);
|
br_switchdev_fdb_notify(br, fdb, type);
|
||||||
|
|
||||||
@@ -1382,3 +1444,62 @@ void br_fdb_clear_offload(const struct n
|
@@ -1377,3 +1439,62 @@ void br_fdb_clear_offload(const struct n
|
||||||
spin_unlock_bh(&p->br->hash_lock);
|
spin_unlock_bh(&p->br->hash_lock);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(br_fdb_clear_offload);
|
EXPORT_SYMBOL_GPL(br_fdb_clear_offload);
|
||||||
@@ -343,9 +343,9 @@
|
|||||||
#include <net/dsa.h>
|
#include <net/dsa.h>
|
||||||
#include <net/sock.h>
|
#include <net/sock.h>
|
||||||
#include <linux/if_vlan.h>
|
#include <linux/if_vlan.h>
|
||||||
@@ -27,6 +28,12 @@
|
@@ -26,6 +27,12 @@
|
||||||
|
|
||||||
#include "br_private.h"
|
#include "br_private.h"
|
||||||
#include "br_private_offload.h"
|
|
||||||
|
|
||||||
+/* QCA NSS ECM support - Start */
|
+/* QCA NSS ECM support - Start */
|
||||||
+/* Hook for external forwarding logic */
|
+/* Hook for external forwarding logic */
|
||||||
@@ -374,7 +374,7 @@
|
|||||||
/* Since more than one interface can be attached to a bridge,
|
/* Since more than one interface can be attached to a bridge,
|
||||||
* there still maybe an alternate path for netconsole to use;
|
* there still maybe an alternate path for netconsole to use;
|
||||||
* therefore there is no reason for a NETDEV_RELEASE event.
|
* therefore there is no reason for a NETDEV_RELEASE event.
|
||||||
@@ -788,3 +799,75 @@ bool br_port_flag_is_set(const struct ne
|
@@ -785,3 +796,75 @@ bool br_port_flag_is_set(const struct ne
|
||||||
return p->flags & flag;
|
return p->flags & flag;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(br_port_flag_is_set);
|
EXPORT_SYMBOL_GPL(br_port_flag_is_set);
|
||||||
@@ -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
|
||||||
@@ -2120,4 +2120,9 @@ void br_do_proxy_suppress_arp(struct sk_
|
@@ -2100,4 +2100,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);
|
||||||
@@ -464,7 +464,7 @@
|
|||||||
#endif
|
#endif
|
||||||
--- a/net/core/dev.c
|
--- a/net/core/dev.c
|
||||||
+++ b/net/core/dev.c
|
+++ b/net/core/dev.c
|
||||||
@@ -1685,7 +1685,7 @@ const char *netdev_cmd_to_name(enum netd
|
@@ -1690,7 +1690,7 @@ const char *netdev_cmd_to_name(enum netd
|
||||||
N(UDP_TUNNEL_DROP_INFO) N(CHANGE_TX_QUEUE_LEN)
|
N(UDP_TUNNEL_DROP_INFO) N(CHANGE_TX_QUEUE_LEN)
|
||||||
N(CVLAN_FILTER_PUSH_INFO) N(CVLAN_FILTER_DROP_INFO)
|
N(CVLAN_FILTER_PUSH_INFO) N(CVLAN_FILTER_DROP_INFO)
|
||||||
N(SVLAN_FILTER_PUSH_INFO) N(SVLAN_FILTER_DROP_INFO)
|
N(SVLAN_FILTER_PUSH_INFO) N(SVLAN_FILTER_DROP_INFO)
|
||||||
@@ -475,7 +475,7 @@
|
|||||||
return "UNKNOWN_NETDEV_EVENT";
|
return "UNKNOWN_NETDEV_EVENT";
|
||||||
--- a/net/core/neighbour.c
|
--- a/net/core/neighbour.c
|
||||||
+++ b/net/core/neighbour.c
|
+++ b/net/core/neighbour.c
|
||||||
@@ -1219,7 +1219,21 @@ static void neigh_update_hhs(struct neig
|
@@ -1211,7 +1211,21 @@ static void neigh_update_hhs(struct neig
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -497,7 +497,7 @@
|
|||||||
|
|
||||||
/* Generic update routine.
|
/* Generic update routine.
|
||||||
-- lladdr is new lladdr or NULL, if it is not supplied.
|
-- lladdr is new lladdr or NULL, if it is not supplied.
|
||||||
@@ -1250,6 +1264,7 @@ static int __neigh_update(struct neighbo
|
@@ -1242,6 +1256,7 @@ static int __neigh_update(struct neighbo
|
||||||
int notify = 0;
|
int notify = 0;
|
||||||
struct net_device *dev;
|
struct net_device *dev;
|
||||||
int update_isrouter = 0;
|
int update_isrouter = 0;
|
||||||
@@ -505,7 +505,7 @@
|
|||||||
|
|
||||||
trace_neigh_update(neigh, lladdr, new, flags, nlmsg_pid);
|
trace_neigh_update(neigh, lladdr, new, flags, nlmsg_pid);
|
||||||
|
|
||||||
@@ -1264,6 +1279,8 @@ static int __neigh_update(struct neighbo
|
@@ -1256,6 +1271,8 @@ static int __neigh_update(struct neighbo
|
||||||
new = old;
|
new = old;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
@@ -514,7 +514,7 @@
|
|||||||
if (!(flags & NEIGH_UPDATE_F_ADMIN) &&
|
if (!(flags & NEIGH_UPDATE_F_ADMIN) &&
|
||||||
(old & (NUD_NOARP | NUD_PERMANENT)))
|
(old & (NUD_NOARP | NUD_PERMANENT)))
|
||||||
goto out;
|
goto out;
|
||||||
@@ -1301,6 +1318,11 @@ static int __neigh_update(struct neighbo
|
@@ -1293,6 +1310,11 @@ static int __neigh_update(struct neighbo
|
||||||
- compare new & old
|
- compare new & old
|
||||||
- if they are different, check override flag
|
- if they are different, check override flag
|
||||||
*/
|
*/
|
||||||
@@ -526,7 +526,7 @@
|
|||||||
if ((old & NUD_VALID) &&
|
if ((old & NUD_VALID) &&
|
||||||
!memcmp(lladdr, neigh->ha, dev->addr_len))
|
!memcmp(lladdr, neigh->ha, dev->addr_len))
|
||||||
lladdr = neigh->ha;
|
lladdr = neigh->ha;
|
||||||
@@ -1423,8 +1445,11 @@ out:
|
@@ -1415,8 +1437,11 @@ out:
|
||||||
if (((new ^ old) & NUD_PERMANENT) || ext_learn_change)
|
if (((new ^ old) & NUD_PERMANENT) || ext_learn_change)
|
||||||
neigh_update_gc_list(neigh);
|
neigh_update_gc_list(neigh);
|
||||||
|
|
||||||
@@ -551,7 +551,7 @@
|
|||||||
/* Caller must hold RTNL. */
|
/* Caller must hold RTNL. */
|
||||||
int fib_table_insert(struct net *net, struct fib_table *tb,
|
int fib_table_insert(struct net *net, struct fib_table *tb,
|
||||||
struct fib_config *cfg, struct netlink_ext_ack *extack)
|
struct fib_config *cfg, struct netlink_ext_ack *extack)
|
||||||
@@ -1396,6 +1399,9 @@ int fib_table_insert(struct net *net, st
|
@@ -1398,6 +1401,9 @@ int fib_table_insert(struct net *net, st
|
||||||
rtmsg_fib(RTM_NEWROUTE, htonl(key), new_fa, plen, new_fa->tb_id,
|
rtmsg_fib(RTM_NEWROUTE, htonl(key), new_fa, plen, new_fa->tb_id,
|
||||||
&cfg->fc_nlinfo, nlflags);
|
&cfg->fc_nlinfo, nlflags);
|
||||||
succeeded:
|
succeeded:
|
||||||
@@ -561,7 +561,7 @@
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
out_remove_new_fa:
|
out_remove_new_fa:
|
||||||
@@ -1766,6 +1772,9 @@ int fib_table_delete(struct net *net, st
|
@@ -1769,6 +1775,9 @@ int fib_table_delete(struct net *net, st
|
||||||
if (fa_to_delete->fa_state & FA_S_ACCESSED)
|
if (fa_to_delete->fa_state & FA_S_ACCESSED)
|
||||||
rt_cache_flush(cfg->fc_nlinfo.nl_net);
|
rt_cache_flush(cfg->fc_nlinfo.nl_net);
|
||||||
|
|
||||||
@@ -571,7 +571,7 @@
|
|||||||
fib_release_info(fa_to_delete->fa_info);
|
fib_release_info(fa_to_delete->fa_info);
|
||||||
alias_free_mem_rcu(fa_to_delete);
|
alias_free_mem_rcu(fa_to_delete);
|
||||||
return 0;
|
return 0;
|
||||||
@@ -2394,6 +2403,20 @@ void __init fib_trie_init(void)
|
@@ -2401,6 +2410,20 @@ void __init fib_trie_init(void)
|
||||||
0, SLAB_PANIC | SLAB_ACCOUNT, NULL);
|
0, SLAB_PANIC | SLAB_ACCOUNT, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -594,7 +594,7 @@
|
|||||||
struct fib_table *tb;
|
struct fib_table *tb;
|
||||||
--- a/net/ipv6/addrconf.c
|
--- a/net/ipv6/addrconf.c
|
||||||
+++ b/net/ipv6/addrconf.c
|
+++ b/net/ipv6/addrconf.c
|
||||||
@@ -987,6 +987,7 @@ void inet6_ifa_finish_destroy(struct ine
|
@@ -1003,6 +1003,7 @@ void inet6_ifa_finish_destroy(struct ine
|
||||||
|
|
||||||
kfree_rcu(ifp, rcu);
|
kfree_rcu(ifp, rcu);
|
||||||
}
|
}
|
||||||
@@ -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)
|
||||||
@@ -2048,6 +2049,7 @@ struct inet6_ifaddr *ipv6_get_ifaddr(str
|
@@ -2064,6 +2065,7 @@ struct inet6_ifaddr *ipv6_get_ifaddr(str
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -612,7 +612,7 @@
|
|||||||
|
|
||||||
--- a/net/ipv6/ndisc.c
|
--- a/net/ipv6/ndisc.c
|
||||||
+++ b/net/ipv6/ndisc.c
|
+++ b/net/ipv6/ndisc.c
|
||||||
@@ -649,6 +649,7 @@ void ndisc_send_ns(struct net_device *de
|
@@ -650,6 +650,7 @@ void ndisc_send_ns(struct net_device *de
|
||||||
|
|
||||||
ndisc_send_skb(skb, daddr, saddr);
|
ndisc_send_skb(skb, daddr, saddr);
|
||||||
}
|
}
|
||||||
@@ -622,7 +622,7 @@
|
|||||||
const struct in6_addr *daddr)
|
const struct in6_addr *daddr)
|
||||||
--- a/net/ipv6/route.c
|
--- a/net/ipv6/route.c
|
||||||
+++ b/net/ipv6/route.c
|
+++ b/net/ipv6/route.c
|
||||||
@@ -3878,6 +3878,9 @@ out_free:
|
@@ -3875,6 +3875,9 @@ out_free:
|
||||||
return ERR_PTR(err);
|
return ERR_PTR(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -632,7 +632,7 @@
|
|||||||
int ip6_route_add(struct fib6_config *cfg, gfp_t gfp_flags,
|
int ip6_route_add(struct fib6_config *cfg, gfp_t gfp_flags,
|
||||||
struct netlink_ext_ack *extack)
|
struct netlink_ext_ack *extack)
|
||||||
{
|
{
|
||||||
@@ -3889,6 +3892,10 @@ int ip6_route_add(struct fib6_config *cf
|
@@ -3886,6 +3889,10 @@ int ip6_route_add(struct fib6_config *cf
|
||||||
return PTR_ERR(rt);
|
return PTR_ERR(rt);
|
||||||
|
|
||||||
err = __ip6_ins_rt(rt, &cfg->fc_nlinfo, extack);
|
err = __ip6_ins_rt(rt, &cfg->fc_nlinfo, extack);
|
||||||
@@ -643,7 +643,7 @@
|
|||||||
fib6_info_release(rt);
|
fib6_info_release(rt);
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
@@ -3910,6 +3917,9 @@ static int __ip6_del_rt(struct fib6_info
|
@@ -3907,6 +3914,9 @@ static int __ip6_del_rt(struct fib6_info
|
||||||
err = fib6_del(rt, info);
|
err = fib6_del(rt, info);
|
||||||
spin_unlock_bh(&table->tb6_lock);
|
spin_unlock_bh(&table->tb6_lock);
|
||||||
|
|
||||||
@@ -653,7 +653,7 @@
|
|||||||
out:
|
out:
|
||||||
fib6_info_release(rt);
|
fib6_info_release(rt);
|
||||||
return err;
|
return err;
|
||||||
@@ -6352,6 +6362,20 @@ static int ip6_route_dev_notify(struct n
|
@@ -6343,6 +6353,20 @@ static int ip6_route_dev_notify(struct n
|
||||||
return NOTIFY_OK;
|
return NOTIFY_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -676,7 +676,7 @@
|
|||||||
*/
|
*/
|
||||||
--- a/net/ipv6/ip6_gre.c
|
--- a/net/ipv6/ip6_gre.c
|
||||||
+++ b/net/ipv6/ip6_gre.c
|
+++ b/net/ipv6/ip6_gre.c
|
||||||
@@ -1934,6 +1934,7 @@ static void ip6gre_tap_setup(struct net_
|
@@ -1943,6 +1943,7 @@ static void ip6gre_tap_setup(struct net_
|
||||||
|
|
||||||
dev->priv_flags &= ~IFF_TX_SKB_SHARING;
|
dev->priv_flags &= ~IFF_TX_SKB_SHARING;
|
||||||
dev->priv_flags |= IFF_LIVE_ADDR_CHANGE;
|
dev->priv_flags |= IFF_LIVE_ADDR_CHANGE;
|
||||||
@@ -686,7 +686,7 @@
|
|||||||
|
|
||||||
--- a/net/ipv4/ip_gre.c
|
--- a/net/ipv4/ip_gre.c
|
||||||
+++ b/net/ipv4/ip_gre.c
|
+++ b/net/ipv4/ip_gre.c
|
||||||
@@ -1333,6 +1333,7 @@ static void ipgre_tap_setup(struct net_d
|
@@ -1341,6 +1341,7 @@ static void ipgre_tap_setup(struct net_d
|
||||||
dev->netdev_ops = &gre_tap_netdev_ops;
|
dev->netdev_ops = &gre_tap_netdev_ops;
|
||||||
dev->priv_flags &= ~IFF_TX_SKB_SHARING;
|
dev->priv_flags &= ~IFF_TX_SKB_SHARING;
|
||||||
dev->priv_flags |= IFF_LIVE_ADDR_CHANGE;
|
dev->priv_flags |= IFF_LIVE_ADDR_CHANGE;
|
||||||
|
|||||||
@@ -91,7 +91,7 @@
|
|||||||
depends on NETFILTER_ADVANCED
|
depends on NETFILTER_ADVANCED
|
||||||
--- a/net/netfilter/nf_conntrack_core.c
|
--- a/net/netfilter/nf_conntrack_core.c
|
||||||
+++ b/net/netfilter/nf_conntrack_core.c
|
+++ b/net/netfilter/nf_conntrack_core.c
|
||||||
@@ -2877,6 +2877,9 @@ int nf_conntrack_init_net(struct net *ne
|
@@ -2899,6 +2899,9 @@ int nf_conntrack_init_net(struct net *ne
|
||||||
nf_conntrack_ecache_pernet_init(net);
|
nf_conntrack_ecache_pernet_init(net);
|
||||||
nf_conntrack_helper_pernet_init(net);
|
nf_conntrack_helper_pernet_init(net);
|
||||||
nf_conntrack_proto_pernet_init(net);
|
nf_conntrack_proto_pernet_init(net);
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ Subject: [PATCH] Update 602-qca-add-pppoe-offload-support.patch for kernel
|
|||||||
/* Prototypes. */
|
/* Prototypes. */
|
||||||
static int ppp_unattached_ioctl(struct net *net, struct ppp_file *pf,
|
static int ppp_unattached_ioctl(struct net *net, struct ppp_file *pf,
|
||||||
struct file *file, unsigned int cmd, unsigned long arg);
|
struct file *file, unsigned int cmd, unsigned long arg);
|
||||||
@@ -3450,7 +3470,10 @@ ppp_connect_channel(struct channel *pch,
|
@@ -3452,7 +3472,10 @@ ppp_connect_channel(struct channel *pch,
|
||||||
struct ppp_net *pn;
|
struct ppp_net *pn;
|
||||||
int ret = -ENXIO;
|
int ret = -ENXIO;
|
||||||
int hdrlen;
|
int hdrlen;
|
||||||
@@ -59,7 +59,7 @@ Subject: [PATCH] Update 602-qca-add-pppoe-offload-support.patch for kernel
|
|||||||
pn = ppp_pernet(pch->chan_net);
|
pn = ppp_pernet(pch->chan_net);
|
||||||
|
|
||||||
mutex_lock(&pn->all_ppp_mutex);
|
mutex_lock(&pn->all_ppp_mutex);
|
||||||
@@ -3482,13 +3505,40 @@ ppp_connect_channel(struct channel *pch,
|
@@ -3484,13 +3507,40 @@ ppp_connect_channel(struct channel *pch,
|
||||||
++ppp->n_channels;
|
++ppp->n_channels;
|
||||||
pch->ppp = ppp;
|
pch->ppp = ppp;
|
||||||
refcount_inc(&ppp->file.refcnt);
|
refcount_inc(&ppp->file.refcnt);
|
||||||
@@ -101,7 +101,7 @@ Subject: [PATCH] Update 602-qca-add-pppoe-offload-support.patch for kernel
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3506,6 +3556,13 @@ ppp_disconnect_channel(struct channel *p
|
@@ -3508,6 +3558,13 @@ ppp_disconnect_channel(struct channel *p
|
||||||
pch->ppp = NULL;
|
pch->ppp = NULL;
|
||||||
write_unlock_bh(&pch->upl);
|
write_unlock_bh(&pch->upl);
|
||||||
if (ppp) {
|
if (ppp) {
|
||||||
@@ -115,7 +115,7 @@ Subject: [PATCH] Update 602-qca-add-pppoe-offload-support.patch for kernel
|
|||||||
/* remove it from the ppp unit's list */
|
/* remove it from the ppp unit's list */
|
||||||
ppp_lock(ppp);
|
ppp_lock(ppp);
|
||||||
list_del(&pch->clist);
|
list_del(&pch->clist);
|
||||||
@@ -3585,6 +3642,222 @@ static void *unit_find(struct idr *p, in
|
@@ -3587,6 +3644,222 @@ static void *unit_find(struct idr *p, in
|
||||||
return idr_find(p, n);
|
return idr_find(p, n);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -338,7 +338,7 @@ Subject: [PATCH] Update 602-qca-add-pppoe-offload-support.patch for kernel
|
|||||||
/* Module/initialization stuff */
|
/* Module/initialization stuff */
|
||||||
|
|
||||||
module_init(ppp_init);
|
module_init(ppp_init);
|
||||||
@@ -3601,6 +3874,7 @@ EXPORT_SYMBOL(ppp_input_error);
|
@@ -3603,6 +3876,7 @@ EXPORT_SYMBOL(ppp_input_error);
|
||||||
EXPORT_SYMBOL(ppp_output_wakeup);
|
EXPORT_SYMBOL(ppp_output_wakeup);
|
||||||
EXPORT_SYMBOL(ppp_register_compressor);
|
EXPORT_SYMBOL(ppp_register_compressor);
|
||||||
EXPORT_SYMBOL(ppp_unregister_compressor);
|
EXPORT_SYMBOL(ppp_unregister_compressor);
|
||||||
@@ -480,7 +480,7 @@ Subject: [PATCH] Update 602-qca-add-pppoe-offload-support.patch for kernel
|
|||||||
#endif /* !(__LINUX_IF_PPPOX_H) */
|
#endif /* !(__LINUX_IF_PPPOX_H) */
|
||||||
--- a/include/linux/netdevice.h
|
--- a/include/linux/netdevice.h
|
||||||
+++ b/include/linux/netdevice.h
|
+++ b/include/linux/netdevice.h
|
||||||
@@ -2029,6 +2029,7 @@ struct net_device {
|
@@ -2040,6 +2040,7 @@ struct net_device {
|
||||||
unsigned int flags;
|
unsigned int flags;
|
||||||
unsigned int priv_flags;
|
unsigned int priv_flags;
|
||||||
unsigned int extra_priv_flags;
|
unsigned int extra_priv_flags;
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ Subject: [PATCH] Update 605-qca-add-add-nss-bridge-mgr-support.patch for
|
|||||||
|
|
||||||
--- a/include/linux/if_bridge.h
|
--- a/include/linux/if_bridge.h
|
||||||
+++ b/include/linux/if_bridge.h
|
+++ b/include/linux/if_bridge.h
|
||||||
@@ -231,4 +231,8 @@ typedef struct net_bridge_port *br_get_d
|
@@ -230,4 +230,8 @@ typedef struct net_bridge_port *br_get_d
|
||||||
extern br_get_dst_hook_t __rcu *br_get_dst_hook;
|
extern br_get_dst_hook_t __rcu *br_get_dst_hook;
|
||||||
/* QCA NSS ECM support - End */
|
/* QCA NSS ECM support - End */
|
||||||
|
|
||||||
@@ -22,7 +22,7 @@ Subject: [PATCH] Update 605-qca-add-add-nss-bridge-mgr-support.patch for
|
|||||||
#endif
|
#endif
|
||||||
--- a/net/bridge/br_fdb.c
|
--- a/net/bridge/br_fdb.c
|
||||||
+++ b/net/bridge/br_fdb.c
|
+++ b/net/bridge/br_fdb.c
|
||||||
@@ -67,6 +67,15 @@ void br_fdb_update_unregister_notify(str
|
@@ -66,6 +66,15 @@ void br_fdb_update_unregister_notify(str
|
||||||
EXPORT_SYMBOL_GPL(br_fdb_update_unregister_notify);
|
EXPORT_SYMBOL_GPL(br_fdb_update_unregister_notify);
|
||||||
/* QCA NSS ECM support - End */
|
/* QCA NSS ECM support - End */
|
||||||
|
|
||||||
@@ -38,7 +38,7 @@ Subject: [PATCH] Update 605-qca-add-add-nss-bridge-mgr-support.patch for
|
|||||||
int __init br_fdb_init(void)
|
int __init br_fdb_init(void)
|
||||||
{
|
{
|
||||||
br_fdb_cache = kmem_cache_create("bridge_fdb_cache",
|
br_fdb_cache = kmem_cache_create("bridge_fdb_cache",
|
||||||
@@ -372,7 +381,7 @@ void br_fdb_cleanup(struct work_struct *
|
@@ -371,7 +380,7 @@ void br_fdb_cleanup(struct work_struct *
|
||||||
unsigned long delay = hold_time(br);
|
unsigned long delay = hold_time(br);
|
||||||
unsigned long work_delay = delay;
|
unsigned long work_delay = delay;
|
||||||
unsigned long now = jiffies;
|
unsigned long now = jiffies;
|
||||||
@@ -47,7 +47,7 @@ Subject: [PATCH] Update 605-qca-add-add-nss-bridge-mgr-support.patch for
|
|||||||
|
|
||||||
/* this part is tricky, in order to avoid blocking learning and
|
/* this part is tricky, in order to avoid blocking learning and
|
||||||
* consequently forwarding, we rely on rcu to delete objects with
|
* consequently forwarding, we rely on rcu to delete objects with
|
||||||
@@ -400,12 +409,13 @@ void br_fdb_cleanup(struct work_struct *
|
@@ -399,12 +408,13 @@ void br_fdb_cleanup(struct work_struct *
|
||||||
} else {
|
} else {
|
||||||
spin_lock_bh(&br->hash_lock);
|
spin_lock_bh(&br->hash_lock);
|
||||||
if (!hlist_unhashed(&f->fdb_node)) {
|
if (!hlist_unhashed(&f->fdb_node)) {
|
||||||
@@ -63,7 +63,7 @@ Subject: [PATCH] Update 605-qca-add-add-nss-bridge-mgr-support.patch for
|
|||||||
/* QCA NSS ECM support - End */
|
/* QCA NSS ECM support - End */
|
||||||
}
|
}
|
||||||
spin_unlock_bh(&br->hash_lock);
|
spin_unlock_bh(&br->hash_lock);
|
||||||
@@ -623,6 +633,7 @@ void br_fdb_update(struct net_bridge *br
|
@@ -620,6 +630,7 @@ void br_fdb_update(struct net_bridge *br
|
||||||
const unsigned char *addr, u16 vid, unsigned long flags)
|
const unsigned char *addr, u16 vid, unsigned long flags)
|
||||||
{
|
{
|
||||||
struct net_bridge_fdb_entry *fdb;
|
struct net_bridge_fdb_entry *fdb;
|
||||||
@@ -71,7 +71,7 @@ Subject: [PATCH] Update 605-qca-add-add-nss-bridge-mgr-support.patch for
|
|||||||
|
|
||||||
/* some users want to always flood. */
|
/* some users want to always flood. */
|
||||||
if (hold_time(br) == 0)
|
if (hold_time(br) == 0)
|
||||||
@@ -648,6 +659,12 @@ void br_fdb_update(struct net_bridge *br
|
@@ -645,6 +656,12 @@ void br_fdb_update(struct net_bridge *br
|
||||||
if (unlikely(source != READ_ONCE(fdb->dst) &&
|
if (unlikely(source != READ_ONCE(fdb->dst) &&
|
||||||
!test_bit(BR_FDB_STICKY, &fdb->flags))) {
|
!test_bit(BR_FDB_STICKY, &fdb->flags))) {
|
||||||
br_switchdev_fdb_notify(br, fdb, RTM_DELNEIGH);
|
br_switchdev_fdb_notify(br, fdb, RTM_DELNEIGH);
|
||||||
@@ -84,7 +84,7 @@ Subject: [PATCH] Update 605-qca-add-add-nss-bridge-mgr-support.patch for
|
|||||||
WRITE_ONCE(fdb->dst, source);
|
WRITE_ONCE(fdb->dst, source);
|
||||||
fdb_modified = true;
|
fdb_modified = true;
|
||||||
/* Take over HW learned entry */
|
/* Take over HW learned entry */
|
||||||
@@ -659,7 +676,7 @@ void br_fdb_update(struct net_bridge *br
|
@@ -656,7 +673,7 @@ void br_fdb_update(struct net_bridge *br
|
||||||
/* QCA NSS ECM support - Start */
|
/* QCA NSS ECM support - Start */
|
||||||
atomic_notifier_call_chain(
|
atomic_notifier_call_chain(
|
||||||
&br_fdb_update_notifier_list,
|
&br_fdb_update_notifier_list,
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
static struct flow_dissector flow_keys_bonding __read_mostly;
|
static struct flow_dissector flow_keys_bonding __read_mostly;
|
||||||
|
|
||||||
/*-------------------------- Forward declarations ---------------------------*/
|
/*-------------------------- Forward declarations ---------------------------*/
|
||||||
@@ -4060,6 +4063,23 @@ static int bond_get_lowest_level_rcu(str
|
@@ -4115,6 +4118,23 @@ static int bond_get_lowest_level_rcu(str
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
static void bond_get_stats(struct net_device *bond_dev,
|
static void bond_get_stats(struct net_device *bond_dev,
|
||||||
struct rtnl_link_stats64 *stats)
|
struct rtnl_link_stats64 *stats)
|
||||||
{
|
{
|
||||||
@@ -5392,6 +5412,10 @@ static void bond_destructor(struct net_d
|
@@ -5447,6 +5467,10 @@ static void bond_destructor(struct net_d
|
||||||
|
|
||||||
if (bond->rr_tx_counter)
|
if (bond->rr_tx_counter)
|
||||||
free_percpu(bond->rr_tx_counter);
|
free_percpu(bond->rr_tx_counter);
|
||||||
@@ -45,7 +45,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
void bond_setup(struct net_device *bond_dev)
|
void bond_setup(struct net_device *bond_dev)
|
||||||
@@ -5969,7 +5993,14 @@ int bond_create(struct net *net, const c
|
@@ -6020,7 +6044,14 @@ int bond_create(struct net *net, const c
|
||||||
|
|
||||||
bond_work_init_all(bond);
|
bond_work_init_all(bond);
|
||||||
|
|
||||||
@@ -63,7 +63,7 @@
|
|||||||
|
|
||||||
--- a/include/net/bonding.h
|
--- a/include/net/bonding.h
|
||||||
+++ b/include/net/bonding.h
|
+++ b/include/net/bonding.h
|
||||||
@@ -255,6 +255,7 @@ struct bonding {
|
@@ -257,6 +257,7 @@ struct bonding {
|
||||||
spinlock_t ipsec_lock;
|
spinlock_t ipsec_lock;
|
||||||
#endif /* CONFIG_XFRM_OFFLOAD */
|
#endif /* CONFIG_XFRM_OFFLOAD */
|
||||||
struct bpf_prog *xdp_prog;
|
struct bpf_prog *xdp_prog;
|
||||||
@@ -71,7 +71,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
#define bond_slave_get_rcu(dev) \
|
#define bond_slave_get_rcu(dev) \
|
||||||
@@ -629,6 +630,7 @@ struct bond_net {
|
@@ -631,6 +632,7 @@ struct bond_net {
|
||||||
|
|
||||||
int bond_arp_rcv(const struct sk_buff *skb, struct bonding *bond, struct slave *slave);
|
int bond_arp_rcv(const struct sk_buff *skb, struct bonding *bond, struct slave *slave);
|
||||||
netdev_tx_t bond_dev_queue_xmit(struct bonding *bond, struct sk_buff *skb, struct net_device *slave_dev);
|
netdev_tx_t bond_dev_queue_xmit(struct bonding *bond, struct sk_buff *skb, struct net_device *slave_dev);
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--- a/include/linux/skbuff.h
|
--- a/include/linux/skbuff.h
|
||||||
+++ b/include/linux/skbuff.h
|
+++ b/include/linux/skbuff.h
|
||||||
@@ -687,6 +687,7 @@ typedef unsigned char *sk_buff_data_t;
|
@@ -689,6 +689,7 @@ typedef unsigned char *sk_buff_data_t;
|
||||||
* @offload_fwd_mark: Packet was L2-forwarded in hardware
|
* @offload_fwd_mark: Packet was L2-forwarded in hardware
|
||||||
* @offload_l3_fwd_mark: Packet was L3-forwarded in hardware
|
* @offload_l3_fwd_mark: Packet was L3-forwarded in hardware
|
||||||
* @tc_skip_classify: do not classify packet. set by IFB device
|
* @tc_skip_classify: do not classify packet. set by IFB device
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
* @tc_at_ingress: used within tc_classify to distinguish in/egress
|
* @tc_at_ingress: used within tc_classify to distinguish in/egress
|
||||||
* @redirected: packet was redirected by packet classifier
|
* @redirected: packet was redirected by packet classifier
|
||||||
* @from_ingress: packet was redirected from the ingress path
|
* @from_ingress: packet was redirected from the ingress path
|
||||||
@@ -902,6 +903,8 @@ struct sk_buff {
|
@@ -905,6 +906,8 @@ struct sk_buff {
|
||||||
#ifdef CONFIG_NET_CLS_ACT
|
#ifdef CONFIG_NET_CLS_ACT
|
||||||
__u8 tc_skip_classify:1;
|
__u8 tc_skip_classify:1;
|
||||||
__u8 tc_at_ingress:1;
|
__u8 tc_at_ingress:1;
|
||||||
|
|||||||
@@ -52,7 +52,7 @@
|
|||||||
dev->needs_free_netdev = true;
|
dev->needs_free_netdev = true;
|
||||||
--- a/include/linux/netdevice.h
|
--- a/include/linux/netdevice.h
|
||||||
+++ b/include/linux/netdevice.h
|
+++ b/include/linux/netdevice.h
|
||||||
@@ -4749,6 +4749,15 @@ void dev_uc_flush(struct net_device *dev
|
@@ -4759,6 +4759,15 @@ void dev_uc_flush(struct net_device *dev
|
||||||
void dev_uc_init(struct net_device *dev);
|
void dev_uc_init(struct net_device *dev);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -68,7 +68,7 @@
|
|||||||
* __dev_uc_sync - Synchonize device's unicast list
|
* __dev_uc_sync - Synchonize device's unicast list
|
||||||
* @dev: device to sync
|
* @dev: device to sync
|
||||||
* @sync: function to call if address should be added
|
* @sync: function to call if address should be added
|
||||||
@@ -5298,6 +5307,11 @@ static inline bool netif_is_failover_sla
|
@@ -5317,6 +5326,11 @@ static inline bool netif_is_failover_sla
|
||||||
return dev->priv_flags & IFF_FAILOVER_SLAVE;
|
return dev->priv_flags & IFF_FAILOVER_SLAVE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -333,7 +333,7 @@
|
|||||||
#endif
|
#endif
|
||||||
--- a/net/sched/sch_api.c
|
--- a/net/sched/sch_api.c
|
||||||
+++ b/net/sched/sch_api.c
|
+++ b/net/sched/sch_api.c
|
||||||
@@ -2304,4 +2304,26 @@ static int __init pktsched_init(void)
|
@@ -2351,4 +2351,26 @@ static int __init pktsched_init(void)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -430,9 +430,9 @@
|
|||||||
/* Reset all TX qdiscs greater than index of a device. */
|
/* Reset all TX qdiscs greater than index of a device. */
|
||||||
static inline void qdisc_reset_all_tx_gt(struct net_device *dev, unsigned int i)
|
static inline void qdisc_reset_all_tx_gt(struct net_device *dev, unsigned int i)
|
||||||
{
|
{
|
||||||
@@ -1336,4 +1371,9 @@ void mini_qdisc_pair_block_init(struct m
|
@@ -1342,4 +1377,9 @@ static inline void qdisc_synchronize(con
|
||||||
|
msleep(1);
|
||||||
int sch_frag_xmit_hook(struct sk_buff *skb, int (*xmit)(struct sk_buff *skb));
|
}
|
||||||
|
|
||||||
+/* QCA NSS Qdisc Support - Start */
|
+/* QCA NSS Qdisc Support - Start */
|
||||||
+void qdisc_destroy(struct Qdisc *qdisc);
|
+void qdisc_destroy(struct Qdisc *qdisc);
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--- a/net/l2tp/l2tp_core.c
|
--- a/net/l2tp/l2tp_core.c
|
||||||
+++ b/net/l2tp/l2tp_core.c
|
+++ b/net/l2tp/l2tp_core.c
|
||||||
@@ -400,6 +400,31 @@ err_tlock:
|
@@ -398,6 +398,31 @@ err_tlock:
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(l2tp_session_register);
|
EXPORT_SYMBOL_GPL(l2tp_session_register);
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -531,4 +531,9 @@ static inline void ip_tunnel_info_opts_s
|
@@ -534,4 +534,9 @@ static inline void ip_tunnel_info_opts_s
|
||||||
|
|
||||||
#endif /* CONFIG_INET */
|
#endif /* CONFIG_INET */
|
||||||
|
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
#endif /* __NET_IP_TUNNELS_H */
|
#endif /* __NET_IP_TUNNELS_H */
|
||||||
--- a/net/ipv6/ip6_tunnel.c
|
--- a/net/ipv6/ip6_tunnel.c
|
||||||
+++ b/net/ipv6/ip6_tunnel.c
|
+++ b/net/ipv6/ip6_tunnel.c
|
||||||
@@ -2429,6 +2429,26 @@ nla_put_failure:
|
@@ -2440,6 +2440,26 @@ nla_put_failure:
|
||||||
return -EMSGSIZE;
|
return -EMSGSIZE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -51,7 +51,7 @@
|
|||||||
struct ip6_tnl *tunnel = netdev_priv(dev);
|
struct ip6_tnl *tunnel = netdev_priv(dev);
|
||||||
--- a/net/ipv6/sit.c
|
--- a/net/ipv6/sit.c
|
||||||
+++ b/net/ipv6/sit.c
|
+++ b/net/ipv6/sit.c
|
||||||
@@ -1794,6 +1794,23 @@ nla_put_failure:
|
@@ -1798,6 +1798,23 @@ nla_put_failure:
|
||||||
return -EMSGSIZE;
|
return -EMSGSIZE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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,
|
||||||
@@ -2744,6 +2775,9 @@ static void vxlan_xmit_one(struct sk_buf
|
@@ -2746,6 +2777,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),
|
||||||
@@ -2814,6 +2848,9 @@ static void vxlan_xmit_one(struct sk_buf
|
@@ -2817,6 +2851,9 @@ static void vxlan_xmit_one(struct sk_buf
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
goto tx_error;
|
goto tx_error;
|
||||||
|
|
||||||
@@ -101,7 +101,7 @@
|
|||||||
struct net_device *vxlan_dev_create(struct net *net, const char *name,
|
struct net_device *vxlan_dev_create(struct net *net, const char *name,
|
||||||
u8 name_assign_type, struct vxlan_config *conf);
|
u8 name_assign_type, struct vxlan_config *conf);
|
||||||
|
|
||||||
@@ -376,6 +389,15 @@ static inline __be32 vxlan_compute_rco(u
|
@@ -381,6 +394,15 @@ static inline __be32 vxlan_compute_rco(u
|
||||||
return vni_field;
|
return vni_field;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--- a/include/linux/ppp_channel.h
|
--- a/include/linux/ppp_channel.h
|
||||||
+++ b/include/linux/ppp_channel.h
|
+++ b/include/linux/ppp_channel.h
|
||||||
@@ -45,6 +56,47 @@ struct ppp_channel {
|
@@ -59,6 +59,51 @@ struct ppp_channel {
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef __KERNEL__
|
#ifdef __KERNEL__
|
||||||
@@ -32,9 +32,13 @@
|
|||||||
+extern int ppp_hold_channels(struct net_device *dev,
|
+extern int ppp_hold_channels(struct net_device *dev,
|
||||||
+ struct ppp_channel *channels[],
|
+ struct ppp_channel *channels[],
|
||||||
+ unsigned int chan_sz);
|
+ unsigned int chan_sz);
|
||||||
|
+extern int __ppp_hold_channels(struct net_device *dev,
|
||||||
|
+ struct ppp_channel *channels[],
|
||||||
|
+ unsigned int chan_sz);
|
||||||
+
|
+
|
||||||
+/* Test if the ppp device is a multi-link ppp device */
|
+/* Test if the ppp device is a multi-link ppp device */
|
||||||
+extern int ppp_is_multilink(struct net_device *dev);
|
+extern int ppp_is_multilink(struct net_device *dev);
|
||||||
|
+extern int __ppp_is_multilink(struct net_device *dev);
|
||||||
+
|
+
|
||||||
+/* Update statistics of the PPP net_device by incrementing related
|
+/* Update statistics of the PPP net_device by incrementing related
|
||||||
+ * statistics field value with corresponding parameter
|
+ * statistics field value with corresponding parameter
|
||||||
@@ -48,7 +52,7 @@
|
|||||||
/* Called by the channel when it can send some more data. */
|
/* Called by the channel when it can send some more data. */
|
||||||
extern void ppp_output_wakeup(struct ppp_channel *);
|
extern void ppp_output_wakeup(struct ppp_channel *);
|
||||||
|
|
||||||
@@ -83,5 +135,17 @@ extern char *ppp_dev_name(struct ppp_cha
|
@@ -146,5 +191,17 @@ extern void ppp_update_stats(struct net_
|
||||||
* that ppp_unregister_channel returns.
|
* that ppp_unregister_channel returns.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -101,7 +105,28 @@
|
|||||||
#endif
|
#endif
|
||||||
--- a/net/l2tp/l2tp_ppp.c
|
--- a/net/l2tp/l2tp_ppp.c
|
||||||
+++ b/net/l2tp/l2tp_ppp.c
|
+++ b/net/l2tp/l2tp_ppp.c
|
||||||
@@ -380,6 +392,13 @@ static int pppol2tp_xmit(struct ppp_chan
|
@@ -123,9 +123,17 @@ struct pppol2tp_session {
|
||||||
|
};
|
||||||
|
|
||||||
|
static int pppol2tp_xmit(struct ppp_channel *chan, struct sk_buff *skb);
|
||||||
|
-
|
||||||
|
-static const struct ppp_channel_ops pppol2tp_chan_ops = {
|
||||||
|
- .start_xmit = pppol2tp_xmit,
|
||||||
|
+static int pppol2tp_get_channel_protocol(struct ppp_channel *);
|
||||||
|
+static int pppol2tp_get_channel_protocol_ver(struct ppp_channel *);
|
||||||
|
+static void pppol2tp_hold_chan(struct ppp_channel *);
|
||||||
|
+static void pppol2tp_release_chan(struct ppp_channel *);
|
||||||
|
+
|
||||||
|
+static const struct pppol2tp_channel_ops pppol2tp_chan_ops = {
|
||||||
|
+ .ops.start_xmit = pppol2tp_xmit,
|
||||||
|
+ .ops.get_channel_protocol = pppol2tp_get_channel_protocol,
|
||||||
|
+ .ops.get_channel_protocol_ver = pppol2tp_get_channel_protocol_ver,
|
||||||
|
+ .ops.hold = pppol2tp_hold_chan,
|
||||||
|
+ .ops.release = pppol2tp_release_chan,
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct proto_ops pppol2tp_ops;
|
||||||
|
@@ -374,6 +382,13 @@ static int pppol2tp_xmit(struct ppp_chan
|
||||||
skb->data[0] = PPP_ALLSTATIONS;
|
skb->data[0] = PPP_ALLSTATIONS;
|
||||||
skb->data[1] = PPP_UI;
|
skb->data[1] = PPP_UI;
|
||||||
|
|
||||||
@@ -113,9 +138,18 @@
|
|||||||
+ /* QCA NSS ECM support - End */
|
+ /* QCA NSS ECM support - End */
|
||||||
+
|
+
|
||||||
local_bh_disable();
|
local_bh_disable();
|
||||||
l2tp_xmit_skb(session, skb, session->hdr_len);
|
l2tp_xmit_skb(session, skb);
|
||||||
local_bh_enable();
|
local_bh_enable();
|
||||||
@@ -1749,6 +1768,109 @@ static void __exit pppol2tp_exit(void)
|
@@ -819,7 +834,7 @@ static int pppol2tp_connect(struct socke
|
||||||
|
po->chan.hdrlen = PPPOL2TP_L2TP_HDR_SIZE_NOSEQ;
|
||||||
|
|
||||||
|
po->chan.private = sk;
|
||||||
|
- po->chan.ops = &pppol2tp_chan_ops;
|
||||||
|
+ po->chan.ops = (struct ppp_channel_ops *)&pppol2tp_chan_ops.ops;
|
||||||
|
po->chan.mtu = pppol2tp_tunnel_mtu(tunnel);
|
||||||
|
|
||||||
|
error = ppp_register_net_channel(sock_net(sk), &po->chan);
|
||||||
|
@@ -1733,6 +1748,109 @@ static void __exit pppol2tp_exit(void)
|
||||||
unregister_pernet_device(&pppol2tp_net_ops);
|
unregister_pernet_device(&pppol2tp_net_ops);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -225,21 +259,19 @@
|
|||||||
module_init(pppol2tp_init);
|
module_init(pppol2tp_init);
|
||||||
module_exit(pppol2tp_exit);
|
module_exit(pppol2tp_exit);
|
||||||
|
|
||||||
*** a/drivers/net/ppp/ppp_generic.c 2022-04-06 17:25:52.144576100 +0900
|
--- a/drivers/net/ppp/ppp_generic.c
|
||||||
--- b/drivers/net/ppp/ppp_generic.c 2022-04-06 17:32:55.164576100 +0900
|
+++ b/drivers/net/ppp/ppp_generic.c
|
||||||
*************** int ppp_is_multilink(struct net_device *
|
@@ -3742,6 +3742,32 @@ int ppp_is_multilink(struct net_device *
|
||||||
*** 3502,3507 ****
|
|
||||||
--- 3502,3533 ----
|
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(ppp_is_multilink);
|
EXPORT_SYMBOL(ppp_is_multilink);
|
||||||
|
|
||||||
+ /* __ppp_is_multilink()
|
+/* __ppp_is_multilink()
|
||||||
+ * Returns >0 if the device is a multilink PPP netdevice, 0 if not or < 0
|
+ * Returns >0 if the device is a multilink PPP netdevice, 0 if not or < 0
|
||||||
+ * if the device is not PPP. Caller should acquire ppp_lock before calling
|
+ * if the device is not PPP. Caller should acquire ppp_lock before calling
|
||||||
+ * this function
|
+ * this function
|
||||||
+ */
|
+ */
|
||||||
+ int __ppp_is_multilink(struct net_device *dev)
|
+int __ppp_is_multilink(struct net_device *dev)
|
||||||
+ {
|
+{
|
||||||
+ struct ppp *ppp;
|
+ struct ppp *ppp;
|
||||||
+ unsigned int flags;
|
+ unsigned int flags;
|
||||||
+
|
+
|
||||||
@@ -256,19 +288,17 @@
|
|||||||
+ return 1;
|
+ return 1;
|
||||||
+
|
+
|
||||||
+ return 0;
|
+ return 0;
|
||||||
+ }
|
+}
|
||||||
+ EXPORT_SYMBOL(__ppp_is_multilink);
|
+EXPORT_SYMBOL(__ppp_is_multilink);
|
||||||
+
|
+
|
||||||
/* ppp_channel_get_protocol()
|
/* ppp_channel_get_protocol()
|
||||||
* Call this to obtain the underlying protocol of the PPP channel,
|
* Call this to obtain the underlying protocol of the PPP channel,
|
||||||
* e.g. PX_PROTO_OE
|
* e.g. PX_PROTO_OE
|
||||||
*************** int ppp_hold_channels(struct net_device
|
@@ -3880,6 +3906,59 @@ int ppp_hold_channels(struct net_device
|
||||||
*** 3606,3611 ****
|
|
||||||
--- 3632,3690 ----
|
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(ppp_hold_channels);
|
EXPORT_SYMBOL(ppp_hold_channels);
|
||||||
|
|
||||||
+ /* __ppp_hold_channels()
|
+/* __ppp_hold_channels()
|
||||||
+ * Returns the PPP channels of the PPP device, storing each one into
|
+ * Returns the PPP channels of the PPP device, storing each one into
|
||||||
+ * channels[].
|
+ * channels[].
|
||||||
+ *
|
+ *
|
||||||
@@ -278,9 +308,9 @@
|
|||||||
+ *
|
+ *
|
||||||
+ * You MUST release the channels using ppp_release_channels().
|
+ * You MUST release the channels using ppp_release_channels().
|
||||||
+ */
|
+ */
|
||||||
+ int __ppp_hold_channels(struct net_device *dev, struct ppp_channel *channels[],
|
+int __ppp_hold_channels(struct net_device *dev, struct ppp_channel *channels[],
|
||||||
+ unsigned int chan_sz)
|
+ unsigned int chan_sz)
|
||||||
+ {
|
+{
|
||||||
+ struct ppp *ppp;
|
+ struct ppp *ppp;
|
||||||
+ int c;
|
+ int c;
|
||||||
+ struct channel *pch;
|
+ struct channel *pch;
|
||||||
@@ -318,17 +348,17 @@
|
|||||||
+ channels[c++] = chan;
|
+ channels[c++] = chan;
|
||||||
+ }
|
+ }
|
||||||
+ return c;
|
+ return c;
|
||||||
+ }
|
+}
|
||||||
+ EXPORT_SYMBOL(__ppp_hold_channels);
|
+EXPORT_SYMBOL(__ppp_hold_channels);
|
||||||
+
|
+
|
||||||
/* ppp_release_channels()
|
/* ppp_release_channels()
|
||||||
* Releases channels
|
* Releases channels
|
||||||
*/
|
*/
|
||||||
--- a/net/l2tp/l2tp_core.h
|
--- a/net/l2tp/l2tp_core.h
|
||||||
+++ b/net/l2tp/l2tp_core.h
|
+++ b/net/l2tp/l2tp_core.h
|
||||||
@@ -232,6 +232,9 @@ struct l2tp_session *l2tp_session_get_nt
|
@@ -235,6 +235,9 @@ struct l2tp_session *l2tp_session_get_by
|
||||||
struct l2tp_session *l2tp_session_get_by_ifname(const struct net *net,
|
void l2tp_stats_update(struct l2tp_tunnel *tunnel, struct l2tp_session *session,
|
||||||
const char *ifname);
|
struct l2tp_stats *stats);
|
||||||
|
|
||||||
+void l2tp_stats_update(struct l2tp_tunnel *tunnel, struct l2tp_session *session,
|
+void l2tp_stats_update(struct l2tp_tunnel *tunnel, struct l2tp_session *session,
|
||||||
+ struct l2tp_stats *stats);
|
+ struct l2tp_stats *stats);
|
||||||
@@ -336,67 +366,3 @@
|
|||||||
/* Tunnel and session lifetime management.
|
/* Tunnel and session lifetime management.
|
||||||
* Creation of a new instance is a two-step process: create, then register.
|
* Creation of a new instance is a two-step process: create, then register.
|
||||||
* Destruction is triggered using the *_delete functions, and completes asynchronously.
|
* Destruction is triggered using the *_delete functions, and completes asynchronously.
|
||||||
*** a/net/l2tp/l2tp_ppp.c 2022-08-20 11:19:37.748454800 +0900
|
|
||||||
--- b/net/l2tp/l2tp_ppp.c 2022-08-20 11:24:40.138454800 +0900
|
|
||||||
*************** struct pppol2tp_session {
|
|
||||||
*** 123,131 ****
|
|
||||||
};
|
|
||||||
|
|
||||||
static int pppol2tp_xmit(struct ppp_channel *chan, struct sk_buff *skb);
|
|
||||||
!
|
|
||||||
! static const struct ppp_channel_ops pppol2tp_chan_ops = {
|
|
||||||
! .start_xmit = pppol2tp_xmit,
|
|
||||||
};
|
|
||||||
|
|
||||||
static const struct proto_ops pppol2tp_ops;
|
|
||||||
--- 123,139 ----
|
|
||||||
};
|
|
||||||
|
|
||||||
static int pppol2tp_xmit(struct ppp_channel *chan, struct sk_buff *skb);
|
|
||||||
! static int pppol2tp_get_channel_protocol(struct ppp_channel *);
|
|
||||||
! static int pppol2tp_get_channel_protocol_ver(struct ppp_channel *);
|
|
||||||
! static void pppol2tp_hold_chan(struct ppp_channel *);
|
|
||||||
! static void pppol2tp_release_chan(struct ppp_channel *);
|
|
||||||
!
|
|
||||||
! static const struct pppol2tp_channel_ops pppol2tp_chan_ops = {
|
|
||||||
! .ops.start_xmit = pppol2tp_xmit,
|
|
||||||
! .ops.get_channel_protocol = pppol2tp_get_channel_protocol,
|
|
||||||
! .ops.get_channel_protocol_ver = pppol2tp_get_channel_protocol_ver,
|
|
||||||
! .ops.hold = pppol2tp_hold_chan,
|
|
||||||
! .ops.release = pppol2tp_release_chan,
|
|
||||||
};
|
|
||||||
|
|
||||||
static const struct proto_ops pppol2tp_ops;
|
|
||||||
*************** static int pppol2tp_connect(struct socke
|
|
||||||
*** 809,815 ****
|
|
||||||
po->chan.hdrlen = PPPOL2TP_L2TP_HDR_SIZE_NOSEQ;
|
|
||||||
|
|
||||||
po->chan.private = sk;
|
|
||||||
! po->chan.ops = &pppol2tp_chan_ops;
|
|
||||||
po->chan.mtu = pppol2tp_tunnel_mtu(tunnel);
|
|
||||||
|
|
||||||
error = ppp_register_net_channel(sock_net(sk), &po->chan);
|
|
||||||
--- 875,881 ----
|
|
||||||
po->chan.hdrlen = PPPOL2TP_L2TP_HDR_SIZE_NOSEQ;
|
|
||||||
|
|
||||||
po->chan.private = sk;
|
|
||||||
! po->chan.ops = (struct ppp_channel_ops *)&pppol2tp_chan_ops.ops;
|
|
||||||
po->chan.mtu = pppol2tp_tunnel_mtu(tunnel);
|
|
||||||
|
|
||||||
error = ppp_register_net_channel(sock_net(sk), &po->chan);
|
|
||||||
--- a/include/linux/ppp_channel.h 2022-11-08 21:01:55.607003500 +0900
|
|
||||||
+++ b/include/linux/ppp_channel.h 2022-11-08 21:03:40.027003500 +0900
|
|
||||||
@@ -87,9 +87,13 @@ extern int ppp_dev_index(struct ppp_chan
|
|
||||||
extern int ppp_hold_channels(struct net_device *dev,
|
|
||||||
struct ppp_channel *channels[],
|
|
||||||
unsigned int chan_sz);
|
|
||||||
+extern int __ppp_hold_channels(struct net_device *dev,
|
|
||||||
+ struct ppp_channel *channels[],
|
|
||||||
+ unsigned int chan_sz);
|
|
||||||
|
|
||||||
/* Test if the ppp device is a multi-link ppp device */
|
|
||||||
extern int ppp_is_multilink(struct net_device *dev);
|
|
||||||
+extern int __ppp_is_multilink(struct net_device *dev);
|
|
||||||
|
|
||||||
/* Update statistics of the PPP net_device by incrementing related
|
|
||||||
* statistics field value with corresponding parameter
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--- a/net/ipv6/ip6_tunnel.c 2022-11-08 20:48:53.057003500 +0900
|
--- a/net/ipv6/ip6_tunnel.c
|
||||||
+++ b/net/ipv6/ip6_tunnel.c 2022-11-08 20:49:15.247003500 +0900
|
+++ b/net/ipv6/ip6_tunnel.c
|
||||||
@@ -2435,7 +2435,7 @@ nla_put_failure:
|
@@ -2446,7 +2446,7 @@ nla_put_failure:
|
||||||
*/
|
*/
|
||||||
void ip6_update_offload_stats(struct net_device *dev, void *ptr)
|
void ip6_update_offload_stats(struct net_device *dev, void *ptr)
|
||||||
{
|
{
|
||||||
@@ -9,9 +9,9 @@
|
|||||||
const struct pcpu_sw_netstats *offload_stats =
|
const struct pcpu_sw_netstats *offload_stats =
|
||||||
(struct pcpu_sw_netstats *)ptr;
|
(struct pcpu_sw_netstats *)ptr;
|
||||||
|
|
||||||
--- a/net/ipv6/sit.c 2022-11-08 20:49:54.917003500 +0900
|
--- a/net/ipv6/sit.c
|
||||||
+++ b/net/ipv6/sit.c 2022-11-08 20:50:05.637003500 +0900
|
+++ b/net/ipv6/sit.c
|
||||||
@@ -1797,7 +1797,7 @@ nla_put_failure:
|
@@ -1801,7 +1801,7 @@ nla_put_failure:
|
||||||
/* QCA NSS Clients Support - Start */
|
/* QCA NSS Clients Support - Start */
|
||||||
void ipip6_update_offload_stats(struct net_device *dev, void *ptr)
|
void ipip6_update_offload_stats(struct net_device *dev, void *ptr)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--- a/include/linux/if_bridge.h
|
--- a/include/linux/if_bridge.h
|
||||||
+++ b/include/linux/if_bridge.h
|
+++ b/include/linux/if_bridge.h
|
||||||
@@ -235,4 +235,17 @@ extern br_get_dst_hook_t __rcu *br_get_d
|
@@ -234,4 +234,17 @@ extern br_get_dst_hook_t __rcu *br_get_d
|
||||||
extern struct net_device *br_fdb_bridge_dev_get_and_hold(struct net_bridge *br);
|
extern struct net_device *br_fdb_bridge_dev_get_and_hold(struct net_bridge *br);
|
||||||
/* QCA NSS bridge-mgr support - End */
|
/* QCA NSS bridge-mgr support - End */
|
||||||
|
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
#endif
|
#endif
|
||||||
--- a/net/bridge/br_fdb.c
|
--- a/net/bridge/br_fdb.c
|
||||||
+++ b/net/bridge/br_fdb.c
|
+++ b/net/bridge/br_fdb.c
|
||||||
@@ -186,6 +186,7 @@ struct net_bridge_fdb_entry *br_fdb_find
|
@@ -185,6 +185,7 @@ struct net_bridge_fdb_entry *br_fdb_find
|
||||||
{
|
{
|
||||||
return fdb_find_rcu(&br->fdb_hash_tbl, addr, vid);
|
return fdb_find_rcu(&br->fdb_hash_tbl, addr, vid);
|
||||||
}
|
}
|
||||||
@@ -28,7 +28,7 @@
|
|||||||
|
|
||||||
/* When a static FDB entry is added, the mac address from the entry is
|
/* When a static FDB entry is added, the mac address from the entry is
|
||||||
* added to the bridge private HW address list and all required ports
|
* added to the bridge private HW address list and all required ports
|
||||||
@@ -892,6 +893,7 @@ static void fdb_notify(struct net_bridge
|
@@ -887,6 +888,7 @@ static void fdb_notify(struct net_bridge
|
||||||
kfree_skb(skb);
|
kfree_skb(skb);
|
||||||
goto errout;
|
goto errout;
|
||||||
}
|
}
|
||||||
@@ -38,7 +38,7 @@
|
|||||||
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
|
||||||
@@ -853,6 +853,7 @@ void br_manage_promisc(struct net_bridge
|
@@ -833,6 +833,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 */
|
||||||
@@ -46,7 +46,7 @@
|
|||||||
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);
|
||||||
|
|
||||||
@@ -2125,4 +2126,14 @@ struct nd_msg *br_is_nd_neigh_msg(struct
|
@@ -2105,4 +2106,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 */
|
||||||
@@ -73,7 +73,7 @@
|
|||||||
errout:
|
errout:
|
||||||
--- a/net/bridge/br.c
|
--- a/net/bridge/br.c
|
||||||
+++ b/net/bridge/br.c
|
+++ b/net/bridge/br.c
|
||||||
@@ -463,6 +463,12 @@ static void __exit br_deinit(void)
|
@@ -455,6 +455,12 @@ static void __exit br_deinit(void)
|
||||||
br_fdb_fini();
|
br_fdb_fini();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -103,9 +103,9 @@
|
|||||||
goto out;
|
goto out;
|
||||||
--- a/net/bridge/br_input.c
|
--- a/net/bridge/br_input.c
|
||||||
+++ b/net/bridge/br_input.c
|
+++ b/net/bridge/br_input.c
|
||||||
@@ -24,6 +24,16 @@
|
@@ -23,6 +23,16 @@
|
||||||
|
#include "br_private.h"
|
||||||
#include "br_private_tunnel.h"
|
#include "br_private_tunnel.h"
|
||||||
#include "br_private_offload.h"
|
|
||||||
|
|
||||||
+/* QCA qca-mcs support - Start */
|
+/* QCA qca-mcs support - Start */
|
||||||
+/* Hook for external Multicast handler */
|
+/* Hook for external Multicast handler */
|
||||||
@@ -120,7 +120,7 @@
|
|||||||
static int
|
static int
|
||||||
br_netif_receive_skb(struct net *net, struct sock *sk, struct sk_buff *skb)
|
br_netif_receive_skb(struct net *net, struct sock *sk, struct sk_buff *skb)
|
||||||
{
|
{
|
||||||
@@ -31,7 +41,7 @@ br_netif_receive_skb(struct net *net, st
|
@@ -30,7 +40,7 @@ br_netif_receive_skb(struct net *net, st
|
||||||
return netif_receive_skb(skb);
|
return netif_receive_skb(skb);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -129,7 +129,7 @@
|
|||||||
{
|
{
|
||||||
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);
|
||||||
@@ -70,6 +80,7 @@ static int br_pass_frame_up(struct sk_bu
|
@@ -69,6 +79,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,7 +137,7 @@
|
|||||||
|
|
||||||
/* 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)
|
||||||
@@ -85,6 +96,11 @@ int br_handle_frame_finish(struct net *n
|
@@ -84,6 +95,11 @@ int br_handle_frame_finish(struct net *n
|
||||||
struct net_bridge *br;
|
struct net_bridge *br;
|
||||||
u16 vid = 0;
|
u16 vid = 0;
|
||||||
u8 state;
|
u8 state;
|
||||||
@@ -149,7 +149,7 @@
|
|||||||
|
|
||||||
if (!p || p->state == BR_STATE_DISABLED)
|
if (!p || p->state == BR_STATE_DISABLED)
|
||||||
goto drop;
|
goto drop;
|
||||||
@@ -141,6 +157,11 @@ int br_handle_frame_finish(struct net *n
|
@@ -140,6 +156,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)) {
|
||||||
@@ -156,8 +177,15 @@ int br_handle_frame_finish(struct net *n
|
@@ -155,8 +176,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;
|
||||||
}
|
}
|
||||||
@@ -172,12 +200,19 @@ int br_handle_frame_finish(struct net *n
|
@@ -171,12 +199,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 {
|
||||||
|
|||||||
@@ -45,7 +45,7 @@
|
|||||||
esp.tfclen = 0;
|
esp.tfclen = 0;
|
||||||
if (x->tfcpad) {
|
if (x->tfcpad) {
|
||||||
struct xfrm_dst *dst = (struct xfrm_dst *)skb_dst(skb);
|
struct xfrm_dst *dst = (struct xfrm_dst *)skb_dst(skb);
|
||||||
@@ -895,6 +901,7 @@ static int esp_input(struct xfrm_state *
|
@@ -897,6 +903,7 @@ static int esp_input(struct xfrm_state *
|
||||||
u8 *iv;
|
u8 *iv;
|
||||||
struct scatterlist *sg;
|
struct scatterlist *sg;
|
||||||
int err = -EINVAL;
|
int err = -EINVAL;
|
||||||
@@ -53,7 +53,7 @@
|
|||||||
|
|
||||||
if (!pskb_may_pull(skb, sizeof(struct ip_esp_hdr) + ivlen))
|
if (!pskb_may_pull(skb, sizeof(struct ip_esp_hdr) + ivlen))
|
||||||
goto out;
|
goto out;
|
||||||
@@ -902,6 +909,12 @@ static int esp_input(struct xfrm_state *
|
@@ -904,6 +911,12 @@ static int esp_input(struct xfrm_state *
|
||||||
if (elen <= 0)
|
if (elen <= 0)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
@@ -88,7 +88,7 @@
|
|||||||
esp.tfclen = 0;
|
esp.tfclen = 0;
|
||||||
if (x->tfcpad) {
|
if (x->tfcpad) {
|
||||||
struct xfrm_dst *dst = (struct xfrm_dst *)skb_dst(skb);
|
struct xfrm_dst *dst = (struct xfrm_dst *)skb_dst(skb);
|
||||||
@@ -938,6 +944,7 @@ static int esp6_input(struct xfrm_state
|
@@ -940,6 +946,7 @@ static int esp6_input(struct xfrm_state
|
||||||
__be32 *seqhi;
|
__be32 *seqhi;
|
||||||
u8 *iv;
|
u8 *iv;
|
||||||
struct scatterlist *sg;
|
struct scatterlist *sg;
|
||||||
@@ -96,7 +96,7 @@
|
|||||||
|
|
||||||
if (!pskb_may_pull(skb, sizeof(struct ip_esp_hdr) + ivlen)) {
|
if (!pskb_may_pull(skb, sizeof(struct ip_esp_hdr) + ivlen)) {
|
||||||
ret = -EINVAL;
|
ret = -EINVAL;
|
||||||
@@ -949,6 +956,12 @@ static int esp6_input(struct xfrm_state
|
@@ -951,6 +958,12 @@ static int esp6_input(struct xfrm_state
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--- a/arch/arm/boot/dts/qcom-ipq8064.dtsi
|
--- a/arch/arm/boot/dts/qcom-ipq8064.dtsi
|
||||||
+++ b/arch/arm/boot/dts/qcom-ipq8064.dtsi
|
+++ b/arch/arm/boot/dts/qcom-ipq8064.dtsi
|
||||||
@@ -1513,7 +1513,6 @@
|
@@ -1523,7 +1523,6 @@
|
||||||
qcom,load-addr = <0x40000000>;
|
qcom,load-addr = <0x40000000>;
|
||||||
qcom,turbo-frequency;
|
qcom,turbo-frequency;
|
||||||
|
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
qcom,gre-enabled;
|
qcom,gre-enabled;
|
||||||
qcom,gre-redir-enabled;
|
qcom,gre-redir-enabled;
|
||||||
qcom,gre_tunnel_enabled;
|
qcom,gre_tunnel_enabled;
|
||||||
@@ -1532,12 +1531,10 @@
|
@@ -1542,12 +1541,10 @@
|
||||||
qcom,vlan-enabled;
|
qcom,vlan-enabled;
|
||||||
qcom,wlan-dataplane-offload-enabled;
|
qcom,wlan-dataplane-offload-enabled;
|
||||||
qcom,wlanredirect-enabled;
|
qcom,wlanredirect-enabled;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--- a/include/linux/if_bridge.h
|
--- a/include/linux/if_bridge.h
|
||||||
+++ b/include/linux/if_bridge.h
|
+++ b/include/linux/if_bridge.h
|
||||||
@@ -198,7 +198,6 @@ extern struct net_device *br_port_dev_ge
|
@@ -197,7 +197,6 @@ extern struct net_device *br_port_dev_ge
|
||||||
unsigned char *addr,
|
unsigned char *addr,
|
||||||
struct sk_buff *skb,
|
struct sk_buff *skb,
|
||||||
unsigned int cookie);
|
unsigned int cookie);
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
const char *addr,
|
const char *addr,
|
||||||
--- a/net/bridge/br_fdb.c
|
--- a/net/bridge/br_fdb.c
|
||||||
+++ b/net/bridge/br_fdb.c
|
+++ b/net/bridge/br_fdb.c
|
||||||
@@ -1465,26 +1465,6 @@ void br_fdb_clear_offload(const struct n
|
@@ -1460,26 +1460,6 @@ void br_fdb_clear_offload(const struct n
|
||||||
EXPORT_SYMBOL_GPL(br_fdb_clear_offload);
|
EXPORT_SYMBOL_GPL(br_fdb_clear_offload);
|
||||||
|
|
||||||
/* QCA NSS ECM support - Start */
|
/* QCA NSS ECM support - Start */
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
{
|
{
|
||||||
--- a/drivers/net/ppp/ppp_generic.c
|
--- a/drivers/net/ppp/ppp_generic.c
|
||||||
+++ b/drivers/net/ppp/ppp_generic.c
|
+++ b/drivers/net/ppp/ppp_generic.c
|
||||||
@@ -3772,34 +3772,6 @@ int ppp_channel_get_proto_version(struct
|
@@ -3800,34 +3800,6 @@ int ppp_channel_get_proto_version(struct
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(ppp_channel_get_proto_version);
|
EXPORT_SYMBOL(ppp_channel_get_proto_version);
|
||||||
|
|
||||||
@@ -76,7 +76,7 @@
|
|||||||
{
|
{
|
||||||
--- a/include/linux/ppp_channel.h
|
--- a/include/linux/ppp_channel.h
|
||||||
+++ b/include/linux/ppp_channel.h
|
+++ b/include/linux/ppp_channel.h
|
||||||
@@ -99,12 +99,6 @@ extern int ppp_channel_get_protocol(stru
|
@@ -144,12 +144,6 @@ extern int ppp_channel_get_protocol(stru
|
||||||
/* Call this get protocol version */
|
/* Call this get protocol version */
|
||||||
extern int ppp_channel_get_proto_version(struct ppp_channel *);
|
extern int ppp_channel_get_proto_version(struct ppp_channel *);
|
||||||
|
|
||||||
@@ -91,7 +91,7 @@
|
|||||||
unsigned int chan_sz);
|
unsigned int chan_sz);
|
||||||
--- a/drivers/net/ppp/pptp.c
|
--- a/drivers/net/ppp/pptp.c
|
||||||
+++ b/drivers/net/ppp/pptp.c
|
+++ b/drivers/net/ppp/pptp.c
|
||||||
@@ -92,32 +92,6 @@ static int lookup_chan_dst(u16 call_id,
|
@@ -93,32 +93,6 @@ static int lookup_chan_dst(u16 call_id,
|
||||||
return i < MAX_CALLID;
|
return i < MAX_CALLID;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -124,7 +124,7 @@
|
|||||||
/* Search a pptp session based on peer call id and peer ip address */
|
/* Search a pptp session based on peer call id and peer ip address */
|
||||||
static int lookup_session_dst(struct pptp_opt *opt, u16 call_id, __be32 d_addr)
|
static int lookup_session_dst(struct pptp_opt *opt, u16 call_id, __be32 d_addr)
|
||||||
{
|
{
|
||||||
@@ -748,20 +722,6 @@ int pptp_session_find(struct pptp_opt *o
|
@@ -758,20 +732,6 @@ int pptp_session_find(struct pptp_opt *o
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(pptp_session_find);
|
EXPORT_SYMBOL(pptp_session_find);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user