ipq806x_nss: update and refresh patches after commit 991dd403d3
This commit is contained in:
@@ -62,7 +62,7 @@
|
|||||||
{
|
{
|
||||||
--- a/include/linux/netdevice.h
|
--- a/include/linux/netdevice.h
|
||||||
+++ b/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);
|
void dev_uc_init(struct net_device *dev);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -144,7 +144,7 @@ Signed-off-by: Murat Sezgin <msezgin@codeaurora.org>
|
|||||||
|
|
||||||
#define BR_HASH_BITS 8
|
#define BR_HASH_BITS 8
|
||||||
#define BR_HASH_SIZE (1 << BR_HASH_BITS)
|
#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);
|
int br_nf_core_init(void);
|
||||||
void br_nf_core_fini(void);
|
void br_nf_core_fini(void);
|
||||||
void br_netfilter_rtable_init(struct net_bridge *);
|
void br_netfilter_rtable_init(struct net_bridge *);
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ Signed-off-by: Ken Zhu <quic_guigenz@quicinc.com>
|
|||||||
|
|
||||||
--- a/include/linux/netdevice.h
|
--- a/include/linux/netdevice.h
|
||||||
+++ b/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;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -112,7 +112,7 @@ Signed-off-by: Murat Sezgin <msezgin@codeaurora.org>
|
|||||||
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);
|
||||||
|
|
||||||
@@ -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);
|
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);
|
||||||
bool br_is_neigh_suppress_enabled(const struct net_bridge_port *p, u16 vid);
|
bool br_is_neigh_suppress_enabled(const struct net_bridge_port *p, u16 vid);
|
||||||
|
|||||||
@@ -201,7 +201,7 @@ Signed-off-by: Amitesh Anand <quic_amitesh@quicinc.com>
|
|||||||
|
|
||||||
#define BR_HASH_BITS 8
|
#define BR_HASH_BITS 8
|
||||||
#define BR_HASH_SIZE (1 << BR_HASH_BITS)
|
#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 ...) \
|
#define __br_get(__hook, __default, __args ...) \
|
||||||
(__hook ? (__hook(__args)) : (__default))
|
(__hook ? (__hook(__args)) : (__default))
|
||||||
|
|
||||||
|
|||||||
@@ -104,7 +104,7 @@ Signed-off-by: Murat Sezgin <quic_msezgin@quicinc.com>
|
|||||||
const struct net_device_ops *netdev_ops;
|
const struct net_device_ops *netdev_ops;
|
||||||
const struct xdp_metadata_ops *xdp_metadata_ops;
|
const struct xdp_metadata_ops *xdp_metadata_ops;
|
||||||
int ifindex;
|
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);
|
return test_bit(__LINK_STATE_DORMANT, &dev->state);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -112,7 +112,7 @@ Signed-off-by: Murat Sezgin <quic_msezgin@quicinc.com>
|
|||||||
/**
|
/**
|
||||||
* netif_testing_on - mark device as under test.
|
* netif_testing_on - mark device as under test.
|
||||||
* @dev: network device
|
* @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;
|
return dev->priv_flags & IFF_FAILOVER_SLAVE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ Signed-off-by: Murat Sezgin <quic_msezgin@quicinc.com>
|
|||||||
#include <net/netfilter/nf_conntrack_labels.h>
|
#include <net/netfilter/nf_conntrack_labels.h>
|
||||||
#include <net/netfilter/nf_conntrack_synproxy.h>
|
#include <net/netfilter/nf_conntrack_synproxy.h>
|
||||||
#include <net/netfilter/nf_nat.h>
|
#include <net/netfilter/nf_nat.h>
|
||||||
@@ -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_acct_ext_add(ct, GFP_ATOMIC);
|
||||||
nf_ct_tstamp_ext_add(ct, GFP_ATOMIC);
|
nf_ct_tstamp_ext_add(ct, GFP_ATOMIC);
|
||||||
nf_ct_labels_ext_add(ct);
|
nf_ct_labels_ext_add(ct);
|
||||||
|
|||||||
@@ -302,7 +302,7 @@ Signed-off-by: Pavithra R <quic_pavir@quicinc.com>
|
|||||||
int link_reporting;
|
int link_reporting;
|
||||||
int res = 0, i;
|
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",
|
bond_is_active_slave(new_slave) ? "an active" : "a backup",
|
||||||
new_slave->link != BOND_LINK_DOWN ? "an up" : "a down");
|
new_slave->link != BOND_LINK_DOWN ? "an up" : "a down");
|
||||||
|
|
||||||
@@ -316,7 +316,7 @@ Signed-off-by: Pavithra R <quic_pavir@quicinc.com>
|
|||||||
/* enslave is successful */
|
/* enslave is successful */
|
||||||
bond_queue_slave_event(new_slave);
|
bond_queue_slave_event(new_slave);
|
||||||
return 0;
|
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 <quic_pavir@quicinc.com>
|
|||||||
return res;
|
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 bonding *bond = netdev_priv(bond_dev);
|
||||||
struct slave *slave, *oldcurrent;
|
struct slave *slave, *oldcurrent;
|
||||||
struct sockaddr_storage ss;
|
struct sockaddr_storage ss;
|
||||||
@@ -338,7 +338,7 @@ Signed-off-by: Pavithra R <quic_pavir@quicinc.com>
|
|||||||
int old_flags = bond_dev->flags;
|
int old_flags = bond_dev->flags;
|
||||||
netdev_features_t old_features = bond_dev->features;
|
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);
|
bond_set_slave_inactive_flags(slave, BOND_SLAVE_NOTIFY_NOW);
|
||||||
|
|
||||||
@@ -352,7 +352,7 @@ Signed-off-by: Pavithra R <quic_pavir@quicinc.com>
|
|||||||
bond_sysfs_slave_del(slave);
|
bond_sysfs_slave_del(slave);
|
||||||
|
|
||||||
/* recompute stats just before removing the 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;
|
struct slave *slave, *primary, *active;
|
||||||
bool do_failover = false;
|
bool do_failover = false;
|
||||||
struct list_head *iter;
|
struct list_head *iter;
|
||||||
@@ -363,7 +363,7 @@ Signed-off-by: Pavithra R <quic_pavir@quicinc.com>
|
|||||||
|
|
||||||
bond_for_each_slave(bond, slave, iter) {
|
bond_for_each_slave(bond, slave, iter) {
|
||||||
switch (slave->link_new_state) {
|
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);
|
bond_set_active_slave(slave);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -374,7 +374,7 @@ Signed-off-by: Pavithra R <quic_pavir@quicinc.com>
|
|||||||
slave_info(bond->dev, slave->dev, "link status definitely up, %u Mbps %s duplex\n",
|
slave_info(bond->dev, slave->dev, "link status definitely up, %u Mbps %s duplex\n",
|
||||||
slave->speed == SPEED_UNKNOWN ? 0 : slave->speed,
|
slave->speed == SPEED_UNKNOWN ? 0 : slave->speed,
|
||||||
slave->duplex ? "full" : "half");
|
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();
|
unblock_netpoll_tx();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -389,7 +389,7 @@ Signed-off-by: Pavithra R <quic_pavir@quicinc.com>
|
|||||||
bond_set_carrier(bond);
|
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;
|
return 0;
|
||||||
|
|
||||||
ep = (struct ethhdr *)(data + mhoff);
|
ep = (struct ethhdr *)(data + mhoff);
|
||||||
@@ -612,7 +612,7 @@ Signed-off-by: Pavithra R <quic_pavir@quicinc.com>
|
|||||||
{
|
{
|
||||||
const struct ipv6hdr *iph6;
|
const struct ipv6hdr *iph6;
|
||||||
const struct iphdr *iph;
|
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 net_device *dev)
|
||||||
{
|
{
|
||||||
struct bonding *bond = netdev_priv(dev);
|
struct bonding *bond = netdev_priv(dev);
|
||||||
@@ -636,7 +636,7 @@ Signed-off-by: Pavithra R <quic_pavir@quicinc.com>
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* in broadcast mode, we send everything to all usable interfaces. */
|
/* 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);
|
return bond_xmit_roundrobin(skb, dev);
|
||||||
case BOND_MODE_ACTIVEBACKUP:
|
case BOND_MODE_ACTIVEBACKUP:
|
||||||
return bond_xmit_activebackup(skb, dev);
|
return bond_xmit_activebackup(skb, dev);
|
||||||
@@ -647,7 +647,7 @@ Signed-off-by: Pavithra R <quic_pavir@quicinc.com>
|
|||||||
return bond_3ad_xor_xmit(skb, dev);
|
return bond_3ad_xor_xmit(skb, dev);
|
||||||
case BOND_MODE_BROADCAST:
|
case BOND_MODE_BROADCAST:
|
||||||
return bond_xmit_broadcast(skb, dev);
|
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)
|
if (bond->wq)
|
||||||
destroy_workqueue(bond->wq);
|
destroy_workqueue(bond->wq);
|
||||||
|
|
||||||
@@ -657,7 +657,7 @@ Signed-off-by: Pavithra R <quic_pavir@quicinc.com>
|
|||||||
free_percpu(bond->rr_tx_counter);
|
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);
|
bond_work_init_all(bond);
|
||||||
|
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ Signed-off-by: Murat Sezgin <msezgin@codeaurora.org>
|
|||||||
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
|
||||||
@@ -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_ecache_pernet_init(net);
|
||||||
nf_conntrack_proto_pernet_init(net);
|
nf_conntrack_proto_pernet_init(net);
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ Signed-off-by: Murat Sezgin <msezgin@codeaurora.org>
|
|||||||
|
|
||||||
--- a/drivers/net/ppp/pptp.c
|
--- a/drivers/net/ppp/pptp.c
|
||||||
+++ b/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;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ Signed-off-by: Murat Sezgin <quic_msezgin@quicinc.com>
|
|||||||
|
|
||||||
pn = ppp_pernet(pch->chan_net);
|
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;
|
++ppp->n_channels;
|
||||||
pch->ppp = ppp;
|
pch->ppp = ppp;
|
||||||
refcount_inc(&ppp->file.refcnt);
|
refcount_inc(&ppp->file.refcnt);
|
||||||
@@ -99,7 +99,7 @@ Signed-off-by: Murat Sezgin <quic_msezgin@quicinc.com>
|
|||||||
ppp_unlock(ppp);
|
ppp_unlock(ppp);
|
||||||
ret = 0;
|
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);
|
write_unlock_bh(&pch->upl);
|
||||||
out:
|
out:
|
||||||
mutex_unlock(&pn->all_ppp_mutex);
|
mutex_unlock(&pn->all_ppp_mutex);
|
||||||
@@ -114,7 +114,7 @@ Signed-off-by: Murat Sezgin <quic_msezgin@quicinc.com>
|
|||||||
return ret;
|
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;
|
pch->ppp = NULL;
|
||||||
write_unlock_bh(&pch->upl);
|
write_unlock_bh(&pch->upl);
|
||||||
if (ppp) {
|
if (ppp) {
|
||||||
@@ -128,7 +128,7 @@ Signed-off-by: Murat Sezgin <quic_msezgin@quicinc.com>
|
|||||||
/* 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);
|
||||||
@@ -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);
|
return idr_find(p, n);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -317,7 +317,7 @@ Signed-off-by: Murat Sezgin <quic_msezgin@quicinc.com>
|
|||||||
/* Module/initialization stuff */
|
/* Module/initialization stuff */
|
||||||
|
|
||||||
module_init(ppp_init);
|
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_output_wakeup);
|
||||||
EXPORT_SYMBOL(ppp_register_compressor);
|
EXPORT_SYMBOL(ppp_register_compressor);
|
||||||
EXPORT_SYMBOL(ppp_unregister_compressor);
|
EXPORT_SYMBOL(ppp_unregister_compressor);
|
||||||
@@ -336,7 +336,7 @@ Signed-off-by: Murat Sezgin <quic_msezgin@quicinc.com>
|
|||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
#include <linux/if_ether.h>
|
#include <linux/if_ether.h>
|
||||||
#include <linux/if_pppox.h>
|
#include <linux/if_pppox.h>
|
||||||
@@ -87,7 +88,7 @@
|
@@ -88,7 +89,7 @@
|
||||||
static int __pppoe_xmit(struct sock *sk, struct sk_buff *skb);
|
static int __pppoe_xmit(struct sock *sk, struct sk_buff *skb);
|
||||||
|
|
||||||
static const struct proto_ops pppoe_ops;
|
static const struct proto_ops pppoe_ops;
|
||||||
@@ -345,7 +345,7 @@ Signed-off-by: Murat Sezgin <quic_msezgin@quicinc.com>
|
|||||||
|
|
||||||
/* per-net private data for this module */
|
/* per-net private data for this module */
|
||||||
static unsigned int pppoe_net_id __read_mostly;
|
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)) {
|
if (stage_session(po->pppoe_pa.sid)) {
|
||||||
pppox_unbind_sock(sk);
|
pppox_unbind_sock(sk);
|
||||||
pn = pppoe_pernet(sock_net(sk));
|
pn = pppoe_pernet(sock_net(sk));
|
||||||
@@ -353,16 +353,16 @@ Signed-off-by: Murat Sezgin <quic_msezgin@quicinc.com>
|
|||||||
delete_item(pn, po->pppoe_pa.sid,
|
delete_item(pn, po->pppoe_pa.sid,
|
||||||
po->pppoe_pa.remote, po->pppoe_ifindex);
|
po->pppoe_pa.remote, po->pppoe_ifindex);
|
||||||
if (po->pppoe_dev) {
|
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.mtu = dev->mtu - sizeof(struct pppoe_hdr) - 2;
|
||||||
po->chan.private = sk;
|
po->chan.private = sk;
|
||||||
- po->chan.ops = &pppoe_chan_ops;
|
- po->chan.ops = &pppoe_chan_ops;
|
||||||
+ po->chan.ops = (struct ppp_channel_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);
|
error = ppp_register_net_channel(dev_net(dev), &po->chan);
|
||||||
if (error) {
|
@@ -997,9 +999,80 @@ static int pppoe_fill_forward_path(struc
|
||||||
@@ -995,9 +997,80 @@ static int pppoe_fill_forward_path(struc
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -510,7 +510,7 @@ Signed-off-by: Murat Sezgin <quic_msezgin@quicinc.com>
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct ppp_channel {
|
struct ppp_channel {
|
||||||
@@ -47,6 +61,38 @@ struct ppp_channel {
|
@@ -46,6 +60,38 @@ struct ppp_channel {
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef __KERNEL__
|
#ifdef __KERNEL__
|
||||||
@@ -549,7 +549,7 @@ Signed-off-by: Murat Sezgin <quic_msezgin@quicinc.com>
|
|||||||
/* 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 *);
|
||||||
|
|
||||||
@@ -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 */
|
/* Get the device name associated with a channel, or NULL if none */
|
||||||
extern char *ppp_dev_name(struct ppp_channel *);
|
extern char *ppp_dev_name(struct ppp_channel *);
|
||||||
|
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ Signed-off-by: Murat Sezgin <msezgin@codeaurora.org>
|
|||||||
return sk_receive_skb(sk_pppox(po), skb, 0);
|
return sk_receive_skb(sk_pppox(po), skb, 0);
|
||||||
}
|
}
|
||||||
drop:
|
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;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ Signed-off-by: Pavithra R <quic_pavir@quicinc.com>
|
|||||||
|
|
||||||
--- 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
|
||||||
@@ -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);
|
ppp_recv_unlock(ppp);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -45,7 +45,7 @@ Signed-off-by: Pavithra R <quic_pavir@quicinc.com>
|
|||||||
*/
|
*/
|
||||||
--- a/include/linux/ppp_channel.h
|
--- a/include/linux/ppp_channel.h
|
||||||
+++ b/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[],
|
struct ppp_channel *channels[],
|
||||||
unsigned int chan_sz);
|
unsigned int chan_sz);
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ Signed-off-by: Pavithra R <quic_pavir@quicinc.com>
|
|||||||
|
|
||||||
--- 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
|
||||||
@@ -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 = netdev_priv(dev);
|
||||||
ppp_lock(ppp);
|
ppp_lock(ppp);
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ Signed-off-by: ratheesh kannoth <rkannoth@codeaurora.org>
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Disconnect a channel from the generic layer.
|
* 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_channel_index);
|
||||||
EXPORT_SYMBOL(ppp_unit_number);
|
EXPORT_SYMBOL(ppp_unit_number);
|
||||||
EXPORT_SYMBOL(ppp_dev_name);
|
EXPORT_SYMBOL(ppp_dev_name);
|
||||||
@@ -52,7 +52,7 @@ Signed-off-by: ratheesh kannoth <rkannoth@codeaurora.org>
|
|||||||
#include <linux/notifier.h>
|
#include <linux/notifier.h>
|
||||||
|
|
||||||
/* PPP channel connection event types */
|
/* 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 */
|
/* Get the channel number for a channel */
|
||||||
extern int ppp_channel_index(struct ppp_channel *);
|
extern int ppp_channel_index(struct ppp_channel *);
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ Signed-off-by: Murat Sezgin <msezgin@codeaurora.org>
|
|||||||
|
|
||||||
--- 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
|
||||||
@@ -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);
|
EXPORT_SYMBOL(ppp_is_multilink);
|
||||||
|
|
||||||
@@ -51,7 +51,7 @@ Signed-off-by: Murat Sezgin <msezgin@codeaurora.org>
|
|||||||
/* 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
|
||||||
@@ -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);
|
EXPORT_SYMBOL(ppp_hold_channels);
|
||||||
|
|
||||||
@@ -143,7 +143,7 @@ Signed-off-by: Murat Sezgin <msezgin@codeaurora.org>
|
|||||||
#endif
|
#endif
|
||||||
--- a/include/linux/ppp_channel.h
|
--- a/include/linux/ppp_channel.h
|
||||||
+++ b/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);
|
unsigned int chan_sz);
|
||||||
|
|
||||||
bool ppp_is_cp_enabled(struct net_device *dev);
|
bool ppp_is_cp_enabled(struct net_device *dev);
|
||||||
@@ -235,5 +235,5 @@ Signed-off-by: Murat Sezgin <msezgin@codeaurora.org>
|
|||||||
- po->chan.ops = &pppol2tp_chan_ops;
|
- po->chan.ops = &pppol2tp_chan_ops;
|
||||||
+ po->chan.ops = &pppol2tp_chan_ops.ops;
|
+ po->chan.ops = &pppol2tp_chan_ops.ops;
|
||||||
po->chan.mtu = pppol2tp_tunnel_mtu(tunnel);
|
po->chan.mtu = pppol2tp_tunnel_mtu(tunnel);
|
||||||
|
po->chan.direct_xmit = true;
|
||||||
|
|
||||||
error = ppp_register_net_channel(sock_net(sk), &po->chan);
|
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ Signed-off-by: Amruth S <quic_amrus@quicinc.com>
|
|||||||
int notify = 0;
|
int notify = 0;
|
||||||
|
|
||||||
pn = ppp_pernet(pch->chan_net);
|
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;
|
++ppp->n_channels;
|
||||||
pch->ppp = ppp;
|
pch->ppp = ppp;
|
||||||
refcount_inc(&ppp->file.refcnt);
|
refcount_inc(&ppp->file.refcnt);
|
||||||
@@ -74,7 +74,7 @@ Signed-off-by: Amruth S <quic_amrus@quicinc.com>
|
|||||||
notify = 1;
|
notify = 1;
|
||||||
|
|
||||||
ppp_unlock(ppp);
|
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);
|
EXPORT_SYMBOL(ppp_channel_get_protocol);
|
||||||
|
|
||||||
@@ -93,7 +93,7 @@ Signed-off-by: Amruth S <quic_amrus@quicinc.com>
|
|||||||
/* ppp_channel_hold()
|
/* ppp_channel_hold()
|
||||||
* Call this to hold a channel.
|
* 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);
|
EXPORT_SYMBOL(ppp_release_channels);
|
||||||
|
|
||||||
@@ -143,7 +143,7 @@ Signed-off-by: Amruth S <quic_amrus@quicinc.com>
|
|||||||
/* Hold the channel from being destroyed */
|
/* Hold the channel from being destroyed */
|
||||||
void (*hold)(struct ppp_channel *);
|
void (*hold)(struct ppp_channel *);
|
||||||
/* Release hold on the 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 *);
|
extern int ppp_channel_get_protocol(struct ppp_channel *);
|
||||||
|
|
||||||
@@ -153,7 +153,7 @@ Signed-off-by: Amruth S <quic_amrus@quicinc.com>
|
|||||||
/* Call this to hold a channel */
|
/* Call this to hold a channel */
|
||||||
extern bool ppp_channel_hold(struct ppp_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);
|
unsigned int chan_sz);
|
||||||
|
|
||||||
bool ppp_is_cp_enabled(struct net_device *dev);
|
bool ppp_is_cp_enabled(struct net_device *dev);
|
||||||
|
|||||||
@@ -119,7 +119,7 @@ Signed-off-by: Murat Sezgin <msezgin@codeaurora.org>
|
|||||||
/* check for expected sequence number */
|
/* check for expected sequence number */
|
||||||
if (seq < opt->seq_recv + 1 || WRAPPED(opt->seq_recv, seq)) {
|
if (seq < opt->seq_recv + 1 || WRAPPED(opt->seq_recv, seq)) {
|
||||||
if ((payload[0] == PPP_ALLSTATIONS) && (payload[1] == PPP_UI) &&
|
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;
|
opt->dst_addr = sp->sa_addr.pptp;
|
||||||
sk->sk_state |= PPPOX_CONNECTED;
|
sk->sk_state |= PPPOX_CONNECTED;
|
||||||
@@ -128,7 +128,7 @@ Signed-off-by: Murat Sezgin <msezgin@codeaurora.org>
|
|||||||
end:
|
end:
|
||||||
release_sock(sk);
|
release_sock(sk);
|
||||||
return error;
|
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);
|
EXPORT_SYMBOL(pptp_session_find);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user