diff --git a/target/linux/ipq806x/patches-6.6/990-0013-qca-nss-drv-add-qdisc-support.patch b/target/linux/ipq806x/patches-6.6/990-0013-qca-nss-drv-add-qdisc-support.patch index e9638dc616..38c358fa47 100644 --- a/target/linux/ipq806x/patches-6.6/990-0013-qca-nss-drv-add-qdisc-support.patch +++ b/target/linux/ipq806x/patches-6.6/990-0013-qca-nss-drv-add-qdisc-support.patch @@ -62,7 +62,7 @@ { --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h -@@ -4692,6 +4692,15 @@ void dev_uc_flush(struct net_device *dev +@@ -4693,6 +4693,15 @@ void dev_uc_flush(struct net_device *dev void dev_uc_init(struct net_device *dev); /** diff --git a/target/linux/ipq806x/patches-6.6/990-0085-OpenWRT-644-bridge_optimize_netfilter_hooks.patch.patch b/target/linux/ipq806x/patches-6.6/990-0085-OpenWRT-644-bridge_optimize_netfilter_hooks.patch.patch index 8676cdbc7d..378cb8d460 100644 --- a/target/linux/ipq806x/patches-6.6/990-0085-OpenWRT-644-bridge_optimize_netfilter_hooks.patch.patch +++ b/target/linux/ipq806x/patches-6.6/990-0085-OpenWRT-644-bridge_optimize_netfilter_hooks.patch.patch @@ -144,7 +144,7 @@ Signed-off-by: Murat Sezgin #define BR_HASH_BITS 8 #define BR_HASH_SIZE (1 << BR_HASH_BITS) -@@ -1933,12 +1934,25 @@ extern const struct nf_br_ops __rcu *nf_ +@@ -1942,12 +1943,25 @@ extern const struct nf_br_ops __rcu *nf_ int br_nf_core_init(void); void br_nf_core_fini(void); void br_netfilter_rtable_init(struct net_bridge *); diff --git a/target/linux/ipq806x/patches-6.6/990-0184-net-add-fast-xmit-api.patch b/target/linux/ipq806x/patches-6.6/990-0184-net-add-fast-xmit-api.patch index 6d8de1ba50..767b68140c 100644 --- a/target/linux/ipq806x/patches-6.6/990-0184-net-add-fast-xmit-api.patch +++ b/target/linux/ipq806x/patches-6.6/990-0184-net-add-fast-xmit-api.patch @@ -15,7 +15,7 @@ Signed-off-by: Ken Zhu --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h -@@ -3163,6 +3163,8 @@ static inline int dev_direct_xmit(struct +@@ -3164,6 +3164,8 @@ static inline int dev_direct_xmit(struct return ret; } diff --git a/target/linux/ipq806x/patches-6.6/990-0201-linux-bridge-add-patch-for-IGMP-MLD-snooping.patch b/target/linux/ipq806x/patches-6.6/990-0201-linux-bridge-add-patch-for-IGMP-MLD-snooping.patch index 301ae23cd1..17ac908af9 100644 --- a/target/linux/ipq806x/patches-6.6/990-0201-linux-bridge-add-patch-for-IGMP-MLD-snooping.patch +++ b/target/linux/ipq806x/patches-6.6/990-0201-linux-bridge-add-patch-for-IGMP-MLD-snooping.patch @@ -112,7 +112,7 @@ Signed-off-by: Murat Sezgin 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); -@@ -2283,4 +2284,8 @@ void br_do_suppress_nd(struct sk_buff *s +@@ -2292,4 +2293,8 @@ void br_do_suppress_nd(struct sk_buff *s 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); bool br_is_neigh_suppress_enabled(const struct net_bridge_port *p, u16 vid); diff --git a/target/linux/ipq806x/patches-6.6/990-0204-bridge-Port-Hy-Fi-bridging-hooks.patch b/target/linux/ipq806x/patches-6.6/990-0204-bridge-Port-Hy-Fi-bridging-hooks.patch index 5bf425bc57..5c370cd294 100644 --- a/target/linux/ipq806x/patches-6.6/990-0204-bridge-Port-Hy-Fi-bridging-hooks.patch +++ b/target/linux/ipq806x/patches-6.6/990-0204-bridge-Port-Hy-Fi-bridging-hooks.patch @@ -201,7 +201,7 @@ Signed-off-by: Amitesh Anand #define BR_HASH_BITS 8 #define BR_HASH_SIZE (1 << BR_HASH_BITS) -@@ -2288,4 +2289,12 @@ bool br_is_neigh_suppress_enabled(const +@@ -2297,4 +2298,12 @@ bool br_is_neigh_suppress_enabled(const #define __br_get(__hook, __default, __args ...) \ (__hook ? (__hook(__args)) : (__default)) diff --git a/target/linux/ipq806x/patches-6.6/990-0224-net-Add-extra-priv_flag-support-in-netdevice.patch b/target/linux/ipq806x/patches-6.6/990-0224-net-Add-extra-priv_flag-support-in-netdevice.patch index f84db78c03..578ef686ab 100644 --- a/target/linux/ipq806x/patches-6.6/990-0224-net-Add-extra-priv_flag-support-in-netdevice.patch +++ b/target/linux/ipq806x/patches-6.6/990-0224-net-Add-extra-priv_flag-support-in-netdevice.patch @@ -104,7 +104,7 @@ Signed-off-by: Murat Sezgin const struct net_device_ops *netdev_ops; const struct xdp_metadata_ops *xdp_metadata_ops; int ifindex; -@@ -4297,7 +4326,6 @@ static inline bool netif_dormant(const s +@@ -4298,7 +4327,6 @@ static inline bool netif_dormant(const s return test_bit(__LINK_STATE_DORMANT, &dev->state); } @@ -112,7 +112,7 @@ Signed-off-by: Murat Sezgin /** * netif_testing_on - mark device as under test. * @dev: network device -@@ -5249,6 +5277,11 @@ static inline bool netif_is_failover_sla +@@ -5250,6 +5278,11 @@ static inline bool netif_is_failover_sla return dev->priv_flags & IFF_FAILOVER_SLAVE; } diff --git a/target/linux/ipq806x/patches-6.6/990-0316-net-Add-DSCP-remarking-feature-for-HW-acceleration.patch b/target/linux/ipq806x/patches-6.6/990-0316-net-Add-DSCP-remarking-feature-for-HW-acceleration.patch index 354dd5181d..115a9947b7 100644 --- a/target/linux/ipq806x/patches-6.6/990-0316-net-Add-DSCP-remarking-feature-for-HW-acceleration.patch +++ b/target/linux/ipq806x/patches-6.6/990-0316-net-Add-DSCP-remarking-feature-for-HW-acceleration.patch @@ -68,7 +68,7 @@ Signed-off-by: Murat Sezgin #include #include #include -@@ -1740,6 +1743,9 @@ init_conntrack(struct net *net, struct n +@@ -1754,6 +1757,9 @@ init_conntrack(struct net *net, struct n nf_ct_acct_ext_add(ct, GFP_ATOMIC); nf_ct_tstamp_ext_add(ct, GFP_ATOMIC); nf_ct_labels_ext_add(ct); diff --git a/target/linux/ipq806x/patches-6.6/990-0317-net-bonding-Added-acceleration-support-over-LAG-inte.patch b/target/linux/ipq806x/patches-6.6/990-0317-net-bonding-Added-acceleration-support-over-LAG-inte.patch index c5c9d65420..f8c4e2d0cb 100644 --- a/target/linux/ipq806x/patches-6.6/990-0317-net-bonding-Added-acceleration-support-over-LAG-inte.patch +++ b/target/linux/ipq806x/patches-6.6/990-0317-net-bonding-Added-acceleration-support-over-LAG-inte.patch @@ -302,7 +302,7 @@ Signed-off-by: Pavithra R int link_reporting; int res = 0, i; -@@ -2325,6 +2355,13 @@ int bond_enslave(struct net_device *bond +@@ -2336,6 +2366,13 @@ skip_mac_set: bond_is_active_slave(new_slave) ? "an active" : "a backup", new_slave->link != BOND_LINK_DOWN ? "an up" : "a down"); @@ -316,7 +316,7 @@ Signed-off-by: Pavithra R /* enslave is successful */ bond_queue_slave_event(new_slave); return 0; -@@ -2390,6 +2427,13 @@ err_undo_flags: +@@ -2401,6 +2438,13 @@ err_undo_flags: } } @@ -330,7 +330,7 @@ Signed-off-by: Pavithra R return res; } -@@ -2411,6 +2455,7 @@ static int __bond_release_one(struct net +@@ -2422,6 +2466,7 @@ static int __bond_release_one(struct net struct bonding *bond = netdev_priv(bond_dev); struct slave *slave, *oldcurrent; struct sockaddr_storage ss; @@ -338,7 +338,7 @@ Signed-off-by: Pavithra R int old_flags = bond_dev->flags; netdev_features_t old_features = bond_dev->features; -@@ -2433,6 +2478,13 @@ static int __bond_release_one(struct net +@@ -2444,6 +2489,13 @@ static int __bond_release_one(struct net bond_set_slave_inactive_flags(slave, BOND_SLAVE_NOTIFY_NOW); @@ -352,7 +352,7 @@ Signed-off-by: Pavithra R bond_sysfs_slave_del(slave); /* recompute stats just before removing the slave */ -@@ -2761,8 +2813,8 @@ static void bond_miimon_commit(struct bo +@@ -2772,8 +2824,8 @@ static void bond_miimon_commit(struct bo struct slave *slave, *primary, *active; bool do_failover = false; struct list_head *iter; @@ -363,7 +363,7 @@ Signed-off-by: Pavithra R bond_for_each_slave(bond, slave, iter) { switch (slave->link_new_state) { -@@ -2800,6 +2852,10 @@ static void bond_miimon_commit(struct bo +@@ -2811,6 +2863,10 @@ static void bond_miimon_commit(struct bo bond_set_active_slave(slave); } @@ -374,7 +374,7 @@ Signed-off-by: Pavithra R slave_info(bond->dev, slave->dev, "link status definitely up, %u Mbps %s duplex\n", slave->speed == SPEED_UNKNOWN ? 0 : slave->speed, slave->duplex ? "full" : "half"); -@@ -2848,6 +2904,14 @@ static void bond_miimon_commit(struct bo +@@ -2859,6 +2915,14 @@ static void bond_miimon_commit(struct bo unblock_netpoll_tx(); } @@ -389,7 +389,7 @@ Signed-off-by: Pavithra R bond_set_carrier(bond); } -@@ -4100,11 +4164,221 @@ static inline u32 bond_eth_hash(struct s +@@ -4111,11 +4175,221 @@ static inline u32 bond_eth_hash(struct s return 0; ep = (struct ethhdr *)(data + mhoff); @@ -612,7 +612,7 @@ Signed-off-by: Pavithra R { const struct ipv6hdr *iph6; const struct iphdr *iph; -@@ -5230,15 +5504,16 @@ static netdev_tx_t bond_3ad_xor_xmit(str +@@ -5241,15 +5515,16 @@ static netdev_tx_t bond_3ad_xor_xmit(str struct net_device *dev) { struct bonding *bond = netdev_priv(dev); @@ -636,7 +636,7 @@ Signed-off-by: Pavithra R } /* in broadcast mode, we send everything to all usable interfaces. */ -@@ -5488,8 +5763,9 @@ static netdev_tx_t __bond_start_xmit(str +@@ -5499,8 +5774,9 @@ static netdev_tx_t __bond_start_xmit(str return bond_xmit_roundrobin(skb, dev); case BOND_MODE_ACTIVEBACKUP: return bond_xmit_activebackup(skb, dev); @@ -647,7 +647,7 @@ Signed-off-by: Pavithra R return bond_3ad_xor_xmit(skb, dev); case BOND_MODE_BROADCAST: return bond_xmit_broadcast(skb, dev); -@@ -5926,6 +6202,9 @@ static void bond_destructor(struct net_d +@@ -5937,6 +6213,9 @@ static void bond_destructor(struct net_d if (bond->wq) destroy_workqueue(bond->wq); @@ -657,7 +657,7 @@ Signed-off-by: Pavithra R free_percpu(bond->rr_tx_counter); } -@@ -6479,6 +6758,11 @@ int bond_create(struct net *net, const c +@@ -6490,6 +6769,11 @@ int bond_create(struct net *net, const c bond_work_init_all(bond); diff --git a/target/linux/ipq806x/patches-6.6/990-0336-net-conntrack-events-support-multiple-registrant.patch b/target/linux/ipq806x/patches-6.6/990-0336-net-conntrack-events-support-multiple-registrant.patch index c67ceba4d8..c1f0853f96 100644 --- a/target/linux/ipq806x/patches-6.6/990-0336-net-conntrack-events-support-multiple-registrant.patch +++ b/target/linux/ipq806x/patches-6.6/990-0336-net-conntrack-events-support-multiple-registrant.patch @@ -117,7 +117,7 @@ Signed-off-by: Murat Sezgin depends on NETFILTER_ADVANCED --- a/net/netfilter/nf_conntrack_core.c +++ b/net/netfilter/nf_conntrack_core.c -@@ -2810,6 +2810,9 @@ int nf_conntrack_init_net(struct net *ne +@@ -2824,6 +2824,9 @@ int nf_conntrack_init_net(struct net *ne nf_conntrack_ecache_pernet_init(net); nf_conntrack_proto_pernet_init(net); diff --git a/target/linux/ipq806x/patches-6.6/990-0340-ppp-Add-PPP-channel-specific-methods-for-PPTP-and-L2.patch b/target/linux/ipq806x/patches-6.6/990-0340-ppp-Add-PPP-channel-specific-methods-for-PPTP-and-L2.patch index 7ee5964ffd..bb6d415e7c 100644 --- a/target/linux/ipq806x/patches-6.6/990-0340-ppp-Add-PPP-channel-specific-methods-for-PPTP-and-L2.patch +++ b/target/linux/ipq806x/patches-6.6/990-0340-ppp-Add-PPP-channel-specific-methods-for-PPTP-and-L2.patch @@ -16,7 +16,7 @@ Signed-off-by: Murat Sezgin --- a/drivers/net/ppp/pptp.c +++ b/drivers/net/ppp/pptp.c -@@ -603,9 +603,36 @@ static int pptp_ppp_ioctl(struct ppp_cha +@@ -604,9 +604,36 @@ static int pptp_ppp_ioctl(struct ppp_cha return err; } diff --git a/target/linux/ipq806x/patches-6.6/990-0341-ppp-PPPoE-acceleration-support.patch b/target/linux/ipq806x/patches-6.6/990-0341-ppp-PPPoE-acceleration-support.patch index 985a239f33..caf5d257f2 100644 --- a/target/linux/ipq806x/patches-6.6/990-0341-ppp-PPPoE-acceleration-support.patch +++ b/target/linux/ipq806x/patches-6.6/990-0341-ppp-PPPoE-acceleration-support.patch @@ -90,7 +90,7 @@ Signed-off-by: Murat Sezgin pn = ppp_pernet(pch->chan_net); -@@ -3510,6 +3529,8 @@ ppp_connect_channel(struct channel *pch, +@@ -3514,6 +3533,8 @@ ppp_connect_channel(struct channel *pch, ++ppp->n_channels; pch->ppp = ppp; refcount_inc(&ppp->file.refcnt); @@ -99,7 +99,7 @@ Signed-off-by: Murat Sezgin ppp_unlock(ppp); ret = 0; -@@ -3517,6 +3538,14 @@ ppp_connect_channel(struct channel *pch, +@@ -3521,6 +3542,14 @@ ppp_connect_channel(struct channel *pch, write_unlock_bh(&pch->upl); out: mutex_unlock(&pn->all_ppp_mutex); @@ -114,7 +114,7 @@ Signed-off-by: Murat Sezgin return ret; } -@@ -3534,6 +3563,13 @@ ppp_disconnect_channel(struct channel *p +@@ -3538,6 +3567,13 @@ ppp_disconnect_channel(struct channel *p pch->ppp = NULL; write_unlock_bh(&pch->upl); if (ppp) { @@ -128,7 +128,7 @@ Signed-off-by: Murat Sezgin /* remove it from the ppp unit's list */ ppp_lock(ppp); list_del(&pch->clist); -@@ -3613,6 +3649,188 @@ static void *unit_find(struct idr *p, in +@@ -3617,6 +3653,188 @@ static void *unit_find(struct idr *p, in return idr_find(p, n); } @@ -317,7 +317,7 @@ Signed-off-by: Murat Sezgin /* Module/initialization stuff */ module_init(ppp_init); -@@ -3629,6 +3847,8 @@ EXPORT_SYMBOL(ppp_input_error); +@@ -3633,6 +3851,8 @@ EXPORT_SYMBOL(ppp_input_error); EXPORT_SYMBOL(ppp_output_wakeup); EXPORT_SYMBOL(ppp_register_compressor); EXPORT_SYMBOL(ppp_unregister_compressor); @@ -336,7 +336,7 @@ Signed-off-by: Murat Sezgin #include #include #include -@@ -87,7 +88,7 @@ +@@ -88,7 +89,7 @@ static int __pppoe_xmit(struct sock *sk, struct sk_buff *skb); static const struct proto_ops pppoe_ops; @@ -345,7 +345,7 @@ Signed-off-by: Murat Sezgin /* per-net private data for this module */ static unsigned int pppoe_net_id __read_mostly; -@@ -645,6 +646,7 @@ static int pppoe_connect(struct socket * +@@ -646,6 +647,7 @@ static int pppoe_connect(struct socket * if (stage_session(po->pppoe_pa.sid)) { pppox_unbind_sock(sk); pn = pppoe_pernet(sock_net(sk)); @@ -353,16 +353,16 @@ Signed-off-by: Murat Sezgin delete_item(pn, po->pppoe_pa.sid, po->pppoe_pa.remote, po->pppoe_ifindex); if (po->pppoe_dev) { -@@ -692,7 +694,7 @@ static int pppoe_connect(struct socket * +@@ -693,7 +695,7 @@ static int pppoe_connect(struct socket * po->chan.mtu = dev->mtu - sizeof(struct pppoe_hdr) - 2; po->chan.private = sk; - po->chan.ops = &pppoe_chan_ops; + po->chan.ops = (struct ppp_channel_ops *)&pppoe_chan_ops; + po->chan.direct_xmit = true; error = ppp_register_net_channel(dev_net(dev), &po->chan); - if (error) { -@@ -995,9 +997,80 @@ static int pppoe_fill_forward_path(struc +@@ -997,9 +999,80 @@ static int pppoe_fill_forward_path(struc return 0; } @@ -510,7 +510,7 @@ Signed-off-by: Murat Sezgin }; struct ppp_channel { -@@ -47,6 +61,38 @@ struct ppp_channel { +@@ -46,6 +60,38 @@ struct ppp_channel { }; #ifdef __KERNEL__ @@ -549,7 +549,7 @@ Signed-off-by: Murat Sezgin /* Called by the channel when it can send some more data. */ extern void ppp_output_wakeup(struct ppp_channel *); -@@ -76,6 +122,12 @@ extern int ppp_unit_number(struct ppp_ch +@@ -75,6 +121,12 @@ extern int ppp_unit_number(struct ppp_ch /* Get the device name associated with a channel, or NULL if none */ extern char *ppp_dev_name(struct ppp_channel *); diff --git a/target/linux/ipq806x/patches-6.6/990-0342-inet-pptp-Added-API-to-get-PPTP-session-info-for-NSS.patch b/target/linux/ipq806x/patches-6.6/990-0342-inet-pptp-Added-API-to-get-PPTP-session-info-for-NSS.patch index c1a1c07e7d..f8eb755d6a 100644 --- a/target/linux/ipq806x/patches-6.6/990-0342-inet-pptp-Added-API-to-get-PPTP-session-info-for-NSS.patch +++ b/target/linux/ipq806x/patches-6.6/990-0342-inet-pptp-Added-API-to-get-PPTP-session-info-for-NSS.patch @@ -71,7 +71,7 @@ Signed-off-by: Murat Sezgin return sk_receive_skb(sk_pppox(po), skb, 0); } drop: -@@ -603,6 +634,50 @@ static int pptp_ppp_ioctl(struct ppp_cha +@@ -604,6 +635,50 @@ static int pptp_ppp_ioctl(struct ppp_cha return err; } diff --git a/target/linux/ipq806x/patches-6.6/990-0344-net-ppp-API-to-check-compression-enabled-on-PPP-devi.patch b/target/linux/ipq806x/patches-6.6/990-0344-net-ppp-API-to-check-compression-enabled-on-PPP-devi.patch index 3806692115..a203612bea 100644 --- a/target/linux/ipq806x/patches-6.6/990-0344-net-ppp-API-to-check-compression-enabled-on-PPP-devi.patch +++ b/target/linux/ipq806x/patches-6.6/990-0344-net-ppp-API-to-check-compression-enabled-on-PPP-devi.patch @@ -14,7 +14,7 @@ Signed-off-by: Pavithra R --- a/drivers/net/ppp/ppp_generic.c +++ b/drivers/net/ppp/ppp_generic.c -@@ -3685,6 +3685,28 @@ void ppp_update_stats(struct net_device +@@ -3689,6 +3689,28 @@ void ppp_update_stats(struct net_device ppp_recv_unlock(ppp); } @@ -45,7 +45,7 @@ Signed-off-by: Pavithra R */ --- a/include/linux/ppp_channel.h +++ b/include/linux/ppp_channel.h -@@ -81,6 +81,8 @@ extern int ppp_hold_channels(struct net_ +@@ -80,6 +80,8 @@ extern int ppp_hold_channels(struct net_ struct ppp_channel *channels[], unsigned int chan_sz); diff --git a/target/linux/ipq806x/patches-6.6/990-0345-net-ppp-Use-flag-to-detect-TX-RX-compression.patch b/target/linux/ipq806x/patches-6.6/990-0345-net-ppp-Use-flag-to-detect-TX-RX-compression.patch index 7cb252f3ed..ebf20d98ca 100644 --- a/target/linux/ipq806x/patches-6.6/990-0345-net-ppp-Use-flag-to-detect-TX-RX-compression.patch +++ b/target/linux/ipq806x/patches-6.6/990-0345-net-ppp-Use-flag-to-detect-TX-RX-compression.patch @@ -12,7 +12,7 @@ Signed-off-by: Pavithra R --- a/drivers/net/ppp/ppp_generic.c +++ b/drivers/net/ppp/ppp_generic.c -@@ -3700,7 +3700,7 @@ bool ppp_is_cp_enabled(struct net_device +@@ -3704,7 +3704,7 @@ bool ppp_is_cp_enabled(struct net_device ppp = netdev_priv(dev); ppp_lock(ppp); diff --git a/target/linux/ipq806x/patches-6.6/990-0346-net-l2tp-set-skb-iif-for-pkt-thru-l2tp-interface.patch b/target/linux/ipq806x/patches-6.6/990-0346-net-l2tp-set-skb-iif-for-pkt-thru-l2tp-interface.patch index 88cfaf5c9d..446d449cd0 100644 --- a/target/linux/ipq806x/patches-6.6/990-0346-net-l2tp-set-skb-iif-for-pkt-thru-l2tp-interface.patch +++ b/target/linux/ipq806x/patches-6.6/990-0346-net-l2tp-set-skb-iif-for-pkt-thru-l2tp-interface.patch @@ -34,7 +34,7 @@ Signed-off-by: ratheesh kannoth /* * Disconnect a channel from the generic layer. -@@ -3864,6 +3878,7 @@ EXPORT_SYMBOL(ppp_unregister_channel); +@@ -3868,6 +3882,7 @@ EXPORT_SYMBOL(ppp_unregister_channel); EXPORT_SYMBOL(ppp_channel_index); EXPORT_SYMBOL(ppp_unit_number); EXPORT_SYMBOL(ppp_dev_name); @@ -52,7 +52,7 @@ Signed-off-by: ratheesh kannoth #include /* PPP channel connection event types */ -@@ -118,6 +119,9 @@ extern void ppp_unregister_channel(struc +@@ -117,6 +118,9 @@ extern void ppp_unregister_channel(struc /* Get the channel number for a channel */ extern int ppp_channel_index(struct ppp_channel *); diff --git a/target/linux/ipq806x/patches-6.6/990-0347-net-l2tp-l2tp-chan-ops-support-get_addressing.patch b/target/linux/ipq806x/patches-6.6/990-0347-net-l2tp-l2tp-chan-ops-support-get_addressing.patch index 58208af8e5..7db68a8802 100644 --- a/target/linux/ipq806x/patches-6.6/990-0347-net-l2tp-l2tp-chan-ops-support-get_addressing.patch +++ b/target/linux/ipq806x/patches-6.6/990-0347-net-l2tp-l2tp-chan-ops-support-get_addressing.patch @@ -18,7 +18,7 @@ Signed-off-by: Murat Sezgin --- a/drivers/net/ppp/ppp_generic.c +++ b/drivers/net/ppp/ppp_generic.c -@@ -3747,6 +3747,32 @@ int ppp_is_multilink(struct net_device * +@@ -3751,6 +3751,32 @@ int ppp_is_multilink(struct net_device * } EXPORT_SYMBOL(ppp_is_multilink); @@ -51,7 +51,7 @@ Signed-off-by: Murat Sezgin /* ppp_channel_get_protocol() * Call this to obtain the underlying protocol of the PPP channel, * e.g. PX_PROTO_OE -@@ -3851,6 +3877,59 @@ int ppp_hold_channels(struct net_device +@@ -3855,6 +3881,59 @@ int ppp_hold_channels(struct net_device } EXPORT_SYMBOL(ppp_hold_channels); @@ -143,7 +143,7 @@ Signed-off-by: Murat Sezgin #endif --- a/include/linux/ppp_channel.h +++ b/include/linux/ppp_channel.h -@@ -83,10 +83,17 @@ extern int ppp_hold_channels(struct net_ +@@ -82,10 +82,17 @@ extern int ppp_hold_channels(struct net_ unsigned int chan_sz); bool ppp_is_cp_enabled(struct net_device *dev); @@ -235,5 +235,5 @@ Signed-off-by: Murat Sezgin - po->chan.ops = &pppol2tp_chan_ops; + po->chan.ops = &pppol2tp_chan_ops.ops; po->chan.mtu = pppol2tp_tunnel_mtu(tunnel); + po->chan.direct_xmit = true; - error = ppp_register_net_channel(sock_net(sk), &po->chan); diff --git a/target/linux/ipq806x/patches-6.6/990-0348-net-l2tp-ppp_channel_proto_version-API.patch b/target/linux/ipq806x/patches-6.6/990-0348-net-l2tp-ppp_channel_proto_version-API.patch index 65e6988c6d..b139585e30 100644 --- a/target/linux/ipq806x/patches-6.6/990-0348-net-l2tp-ppp_channel_proto_version-API.patch +++ b/target/linux/ipq806x/patches-6.6/990-0348-net-l2tp-ppp_channel_proto_version-API.patch @@ -43,7 +43,7 @@ Signed-off-by: Amruth S int notify = 0; pn = ppp_pernet(pch->chan_net); -@@ -3543,6 +3546,30 @@ ppp_connect_channel(struct channel *pch, +@@ -3547,6 +3550,30 @@ ppp_connect_channel(struct channel *pch, ++ppp->n_channels; pch->ppp = ppp; refcount_inc(&ppp->file.refcnt); @@ -74,7 +74,7 @@ Signed-off-by: Amruth S notify = 1; ppp_unlock(ppp); -@@ -3793,6 +3820,18 @@ int ppp_channel_get_protocol(struct ppp_ +@@ -3797,6 +3824,18 @@ int ppp_channel_get_protocol(struct ppp_ } EXPORT_SYMBOL(ppp_channel_get_protocol); @@ -93,7 +93,7 @@ Signed-off-by: Amruth S /* ppp_channel_hold() * Call this to hold a channel. * -@@ -3946,6 +3985,28 @@ void ppp_release_channels(struct ppp_cha +@@ -3950,6 +3989,28 @@ void ppp_release_channels(struct ppp_cha } EXPORT_SYMBOL(ppp_release_channels); @@ -143,7 +143,7 @@ Signed-off-by: Amruth S /* Hold the channel from being destroyed */ void (*hold)(struct ppp_channel *); /* Release hold on the channel */ -@@ -67,6 +69,9 @@ struct ppp_channel { +@@ -66,6 +68,9 @@ struct ppp_channel { */ extern int ppp_channel_get_protocol(struct ppp_channel *); @@ -153,7 +153,7 @@ Signed-off-by: Amruth S /* Call this to hold a channel */ extern bool ppp_channel_hold(struct ppp_channel *); -@@ -83,6 +88,10 @@ extern int ppp_hold_channels(struct net_ +@@ -82,6 +87,10 @@ extern int ppp_hold_channels(struct net_ unsigned int chan_sz); bool ppp_is_cp_enabled(struct net_device *dev); diff --git a/target/linux/ipq806x/patches-6.6/990-0349-inet-pptp-Enable-offload-mode-for-PPTP-GRE-sequence-.patch b/target/linux/ipq806x/patches-6.6/990-0349-inet-pptp-Enable-offload-mode-for-PPTP-GRE-sequence-.patch index 6aedf5870f..adb6743cf6 100644 --- a/target/linux/ipq806x/patches-6.6/990-0349-inet-pptp-Enable-offload-mode-for-PPTP-GRE-sequence-.patch +++ b/target/linux/ipq806x/patches-6.6/990-0349-inet-pptp-Enable-offload-mode-for-PPTP-GRE-sequence-.patch @@ -119,7 +119,7 @@ Signed-off-by: Murat Sezgin /* check for expected sequence number */ if (seq < opt->seq_recv + 1 || WRAPPED(opt->seq_recv, seq)) { if ((payload[0] == PPP_ALLSTATIONS) && (payload[1] == PPP_UI) && -@@ -504,7 +557,7 @@ static int pptp_connect(struct socket *s +@@ -505,7 +558,7 @@ static int pptp_connect(struct socket *s opt->dst_addr = sp->sa_addr.pptp; sk->sk_state |= PPPOX_CONNECTED; @@ -128,7 +128,7 @@ Signed-off-by: Murat Sezgin end: release_sock(sk); return error; -@@ -678,6 +731,81 @@ int pptp_session_find(struct pptp_opt *o +@@ -679,6 +732,81 @@ int pptp_session_find(struct pptp_opt *o } EXPORT_SYMBOL(pptp_session_find);