net: remove EXPORT_IPV6_MOD() and EXPORT_IPV6_MOD_GPL() macros
As IPv6 is built-in only, the macro is always evaluating to an empty one. Remove it completely from the code. Signed-off-by: Fernando Fernandez Mancera <fmancera@suse.de> Link: https://patch.msgid.link/20260325120928.15848-3-fmancera@suse.de Signed-off-by: Jakub Kicinski <kuba@kernel.org>master
parent
309b905dee
commit
0557a34487
|
|
@ -692,14 +692,6 @@ static __inline__ void inet_reset_saddr(struct sock *sk)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if IS_MODULE(CONFIG_IPV6)
|
|
||||||
#define EXPORT_IPV6_MOD(X) EXPORT_SYMBOL(X)
|
|
||||||
#define EXPORT_IPV6_MOD_GPL(X) EXPORT_SYMBOL_GPL(X)
|
|
||||||
#else
|
|
||||||
#define EXPORT_IPV6_MOD(X)
|
|
||||||
#define EXPORT_IPV6_MOD_GPL(X)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static inline unsigned int ipv4_addr_hash(__be32 ip)
|
static inline unsigned int ipv4_addr_hash(__be32 ip)
|
||||||
{
|
{
|
||||||
return (__force unsigned int) ip;
|
return (__force unsigned int) ip;
|
||||||
|
|
|
||||||
|
|
@ -1182,7 +1182,6 @@ void netdev_copy_name(struct net_device *dev, char *name)
|
||||||
strscpy(name, dev->name, IFNAMSIZ);
|
strscpy(name, dev->name, IFNAMSIZ);
|
||||||
} while (read_seqretry(&netdev_rename_lock, seq));
|
} while (read_seqretry(&netdev_rename_lock, seq));
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD_GPL(netdev_copy_name);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* netdev_get_name - get a netdevice name, knowing its ifindex.
|
* netdev_get_name - get a netdevice name, knowing its ifindex.
|
||||||
|
|
@ -1312,7 +1311,6 @@ struct net_device *netdev_get_by_flags_rcu(struct net *net, netdevice_tracker *t
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(netdev_get_by_flags_rcu);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dev_valid_name - check if name is okay for network device
|
* dev_valid_name - check if name is okay for network device
|
||||||
|
|
@ -1838,7 +1836,6 @@ void netif_disable_lro(struct net_device *dev)
|
||||||
netdev_unlock_ops(lower_dev);
|
netdev_unlock_ops(lower_dev);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(netif_disable_lro);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dev_disable_gro_hw - disable HW Generic Receive Offload on a device
|
* dev_disable_gro_hw - disable HW Generic Receive Offload on a device
|
||||||
|
|
|
||||||
|
|
@ -27,4 +27,3 @@ struct net_hotdata net_hotdata __cacheline_aligned = {
|
||||||
EXPORT_SYMBOL(net_hotdata);
|
EXPORT_SYMBOL(net_hotdata);
|
||||||
|
|
||||||
struct net_aligned_data net_aligned_data;
|
struct net_aligned_data net_aligned_data;
|
||||||
EXPORT_IPV6_MOD(net_aligned_data);
|
|
||||||
|
|
|
||||||
|
|
@ -778,7 +778,6 @@ struct pneigh_entry *pneigh_lookup(struct neigh_table *tbl,
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(pneigh_lookup);
|
|
||||||
|
|
||||||
int pneigh_create(struct neigh_table *tbl, struct net *net,
|
int pneigh_create(struct neigh_table *tbl, struct net *net,
|
||||||
const void *pkey, struct net_device *dev,
|
const void *pkey, struct net_device *dev,
|
||||||
|
|
|
||||||
|
|
@ -709,7 +709,6 @@ out_err:
|
||||||
arg->err = error;
|
arg->err = error;
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(inet_csk_accept);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Using different timers for retransmit, delayed acks and probes
|
* Using different timers for retransmit, delayed acks and probes
|
||||||
|
|
@ -1021,7 +1020,6 @@ void inet_csk_reqsk_queue_drop_and_put(struct sock *sk, struct request_sock *req
|
||||||
inet_csk_reqsk_queue_drop(sk, req);
|
inet_csk_reqsk_queue_drop(sk, req);
|
||||||
reqsk_put(req);
|
reqsk_put(req);
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(inet_csk_reqsk_queue_drop_and_put);
|
|
||||||
|
|
||||||
static void reqsk_timer_handler(struct timer_list *t)
|
static void reqsk_timer_handler(struct timer_list *t)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -758,7 +758,6 @@ bool inet_ehash_nolisten(struct sock *sk, struct sock *osk, bool *found_dup_sk)
|
||||||
}
|
}
|
||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(inet_ehash_nolisten);
|
|
||||||
|
|
||||||
static int inet_reuseport_add_sock(struct sock *sk,
|
static int inet_reuseport_add_sock(struct sock *sk,
|
||||||
struct inet_listen_hashbucket *ilb)
|
struct inet_listen_hashbucket *ilb)
|
||||||
|
|
@ -826,7 +825,6 @@ unlock:
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(inet_hash);
|
|
||||||
|
|
||||||
void inet_unhash(struct sock *sk)
|
void inet_unhash(struct sock *sk)
|
||||||
{
|
{
|
||||||
|
|
@ -859,7 +857,6 @@ void inet_unhash(struct sock *sk)
|
||||||
spin_unlock_bh(lock);
|
spin_unlock_bh(lock);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(inet_unhash);
|
|
||||||
|
|
||||||
static bool inet_bind2_bucket_match(const struct inet_bind2_bucket *tb,
|
static bool inet_bind2_bucket_match(const struct inet_bind2_bucket *tb,
|
||||||
const struct net *net, unsigned short port,
|
const struct net *net, unsigned short port,
|
||||||
|
|
@ -1022,14 +1019,12 @@ int inet_bhash2_update_saddr(struct sock *sk, void *saddr, int family)
|
||||||
{
|
{
|
||||||
return __inet_bhash2_update_saddr(sk, saddr, family, false);
|
return __inet_bhash2_update_saddr(sk, saddr, family, false);
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(inet_bhash2_update_saddr);
|
|
||||||
|
|
||||||
void inet_bhash2_reset_saddr(struct sock *sk)
|
void inet_bhash2_reset_saddr(struct sock *sk)
|
||||||
{
|
{
|
||||||
if (!(sk->sk_userlocks & SOCK_BINDADDR_LOCK))
|
if (!(sk->sk_userlocks & SOCK_BINDADDR_LOCK))
|
||||||
__inet_bhash2_update_saddr(sk, NULL, 0, true);
|
__inet_bhash2_update_saddr(sk, NULL, 0, true);
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(inet_bhash2_reset_saddr);
|
|
||||||
|
|
||||||
/* RFC 6056 3.3.4. Algorithm 4: Double-Hash Port Selection Algorithm
|
/* RFC 6056 3.3.4. Algorithm 4: Double-Hash Port Selection Algorithm
|
||||||
* Note that we use 32bit integers (vs RFC 'short integers')
|
* Note that we use 32bit integers (vs RFC 'short integers')
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,6 @@ void inet_peer_base_init(struct inet_peer_base *bp)
|
||||||
seqlock_init(&bp->lock);
|
seqlock_init(&bp->lock);
|
||||||
bp->total = 0;
|
bp->total = 0;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD_GPL(inet_peer_base_init);
|
|
||||||
|
|
||||||
#define PEER_MAX_GC 32
|
#define PEER_MAX_GC 32
|
||||||
|
|
||||||
|
|
@ -217,7 +216,6 @@ struct inet_peer *inet_getpeer(struct inet_peer_base *base,
|
||||||
|
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD_GPL(inet_getpeer);
|
|
||||||
|
|
||||||
void inet_putpeer(struct inet_peer *p)
|
void inet_putpeer(struct inet_peer *p)
|
||||||
{
|
{
|
||||||
|
|
@ -268,7 +266,6 @@ bool inet_peer_xrlim_allow(struct inet_peer *peer, int timeout)
|
||||||
WRITE_ONCE(peer->rate_tokens, token);
|
WRITE_ONCE(peer->rate_tokens, token);
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(inet_peer_xrlim_allow);
|
|
||||||
|
|
||||||
void inetpeer_invalidate_tree(struct inet_peer_base *base)
|
void inetpeer_invalidate_tree(struct inet_peer_base *base)
|
||||||
{
|
{
|
||||||
|
|
@ -285,4 +282,3 @@ void inetpeer_invalidate_tree(struct inet_peer_base *base)
|
||||||
|
|
||||||
base->total = 0;
|
base->total = 0;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(inetpeer_invalidate_tree);
|
|
||||||
|
|
|
||||||
|
|
@ -88,4 +88,3 @@ struct dst_metrics *ip_fib_metrics_init(struct nlattr *fc_mx,
|
||||||
|
|
||||||
return fib_metrics;
|
return fib_metrics;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD_GPL(ip_fib_metrics_init);
|
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,6 @@ struct ping_table {
|
||||||
|
|
||||||
static struct ping_table ping_table;
|
static struct ping_table ping_table;
|
||||||
struct pingv6_ops pingv6_ops;
|
struct pingv6_ops pingv6_ops;
|
||||||
EXPORT_IPV6_MOD_GPL(pingv6_ops);
|
|
||||||
|
|
||||||
static inline u32 ping_hashfn(const struct net *net, u32 num, u32 mask)
|
static inline u32 ping_hashfn(const struct net *net, u32 num, u32 mask)
|
||||||
{
|
{
|
||||||
|
|
@ -139,7 +138,6 @@ fail:
|
||||||
spin_unlock(&ping_table.lock);
|
spin_unlock(&ping_table.lock);
|
||||||
return -EADDRINUSE;
|
return -EADDRINUSE;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD_GPL(ping_get_port);
|
|
||||||
|
|
||||||
void ping_unhash(struct sock *sk)
|
void ping_unhash(struct sock *sk)
|
||||||
{
|
{
|
||||||
|
|
@ -154,7 +152,6 @@ void ping_unhash(struct sock *sk)
|
||||||
}
|
}
|
||||||
spin_unlock(&ping_table.lock);
|
spin_unlock(&ping_table.lock);
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD_GPL(ping_unhash);
|
|
||||||
|
|
||||||
/* Called under rcu_read_lock() */
|
/* Called under rcu_read_lock() */
|
||||||
static struct sock *ping_lookup(struct net *net, struct sk_buff *skb, u16 ident)
|
static struct sock *ping_lookup(struct net *net, struct sk_buff *skb, u16 ident)
|
||||||
|
|
@ -278,7 +275,6 @@ out_release_group:
|
||||||
put_group_info(group_info);
|
put_group_info(group_info);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD_GPL(ping_init_sock);
|
|
||||||
|
|
||||||
void ping_close(struct sock *sk, long timeout)
|
void ping_close(struct sock *sk, long timeout)
|
||||||
{
|
{
|
||||||
|
|
@ -288,7 +284,6 @@ void ping_close(struct sock *sk, long timeout)
|
||||||
|
|
||||||
sk_common_release(sk);
|
sk_common_release(sk);
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD_GPL(ping_close);
|
|
||||||
|
|
||||||
static int ping_pre_connect(struct sock *sk, struct sockaddr_unsized *uaddr,
|
static int ping_pre_connect(struct sock *sk, struct sockaddr_unsized *uaddr,
|
||||||
int addr_len)
|
int addr_len)
|
||||||
|
|
@ -468,7 +463,6 @@ out:
|
||||||
pr_debug("ping_v4_bind -> %d\n", err);
|
pr_debug("ping_v4_bind -> %d\n", err);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD_GPL(ping_bind);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Is this a supported type of ICMP message?
|
* Is this a supported type of ICMP message?
|
||||||
|
|
@ -601,7 +595,6 @@ void ping_err(struct sk_buff *skb, int offset, u32 info)
|
||||||
out:
|
out:
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD_GPL(ping_err);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copy and checksum an ICMP Echo packet from user space into a buffer
|
* Copy and checksum an ICMP Echo packet from user space into a buffer
|
||||||
|
|
@ -631,7 +624,6 @@ int ping_getfrag(void *from, char *to,
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD_GPL(ping_getfrag);
|
|
||||||
|
|
||||||
static int ping_v4_push_pending_frames(struct sock *sk, struct pingfakehdr *pfh,
|
static int ping_v4_push_pending_frames(struct sock *sk, struct pingfakehdr *pfh,
|
||||||
struct flowi4 *fl4)
|
struct flowi4 *fl4)
|
||||||
|
|
@ -692,7 +684,6 @@ int ping_common_sendmsg(int family, struct msghdr *msg, size_t len,
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD_GPL(ping_common_sendmsg);
|
|
||||||
|
|
||||||
static int ping_v4_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
|
static int ping_v4_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
|
||||||
{
|
{
|
||||||
|
|
@ -936,7 +927,6 @@ out:
|
||||||
pr_debug("ping_recvmsg -> %d\n", err);
|
pr_debug("ping_recvmsg -> %d\n", err);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD_GPL(ping_recvmsg);
|
|
||||||
|
|
||||||
static enum skb_drop_reason __ping_queue_rcv_skb(struct sock *sk,
|
static enum skb_drop_reason __ping_queue_rcv_skb(struct sock *sk,
|
||||||
struct sk_buff *skb)
|
struct sk_buff *skb)
|
||||||
|
|
@ -957,7 +947,6 @@ int ping_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
|
||||||
{
|
{
|
||||||
return __ping_queue_rcv_skb(sk, skb) ? -1 : 0;
|
return __ping_queue_rcv_skb(sk, skb) ? -1 : 0;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD_GPL(ping_queue_rcv_skb);
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -985,7 +974,6 @@ enum skb_drop_reason ping_rcv(struct sk_buff *skb)
|
||||||
kfree_skb_reason(skb, SKB_DROP_REASON_NO_SOCKET);
|
kfree_skb_reason(skb, SKB_DROP_REASON_NO_SOCKET);
|
||||||
return SKB_DROP_REASON_NO_SOCKET;
|
return SKB_DROP_REASON_NO_SOCKET;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD_GPL(ping_rcv);
|
|
||||||
|
|
||||||
struct proto ping_prot = {
|
struct proto ping_prot = {
|
||||||
.name = "PING",
|
.name = "PING",
|
||||||
|
|
@ -1007,7 +995,6 @@ struct proto ping_prot = {
|
||||||
.put_port = ping_unhash,
|
.put_port = ping_unhash,
|
||||||
.obj_size = sizeof(struct inet_sock),
|
.obj_size = sizeof(struct inet_sock),
|
||||||
};
|
};
|
||||||
EXPORT_IPV6_MOD(ping_prot);
|
|
||||||
|
|
||||||
#ifdef CONFIG_PROC_FS
|
#ifdef CONFIG_PROC_FS
|
||||||
|
|
||||||
|
|
@ -1072,7 +1059,6 @@ void *ping_seq_start(struct seq_file *seq, loff_t *pos, sa_family_t family)
|
||||||
|
|
||||||
return *pos ? ping_get_idx(seq, *pos-1) : SEQ_START_TOKEN;
|
return *pos ? ping_get_idx(seq, *pos-1) : SEQ_START_TOKEN;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD_GPL(ping_seq_start);
|
|
||||||
|
|
||||||
static void *ping_v4_seq_start(struct seq_file *seq, loff_t *pos)
|
static void *ping_v4_seq_start(struct seq_file *seq, loff_t *pos)
|
||||||
{
|
{
|
||||||
|
|
@ -1091,14 +1077,12 @@ void *ping_seq_next(struct seq_file *seq, void *v, loff_t *pos)
|
||||||
++*pos;
|
++*pos;
|
||||||
return sk;
|
return sk;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD_GPL(ping_seq_next);
|
|
||||||
|
|
||||||
void ping_seq_stop(struct seq_file *seq, void *v)
|
void ping_seq_stop(struct seq_file *seq, void *v)
|
||||||
__releases(ping_table.lock)
|
__releases(ping_table.lock)
|
||||||
{
|
{
|
||||||
spin_unlock(&ping_table.lock);
|
spin_unlock(&ping_table.lock);
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD_GPL(ping_seq_stop);
|
|
||||||
|
|
||||||
static void ping_v4_format_sock(struct sock *sp, struct seq_file *f,
|
static void ping_v4_format_sock(struct sock *sp, struct seq_file *f,
|
||||||
int bucket)
|
int bucket)
|
||||||
|
|
|
||||||
|
|
@ -223,7 +223,6 @@ struct sock *tcp_get_cookie_sock(struct sock *sk, struct sk_buff *skb,
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_get_cookie_sock);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* when syncookies are in effect and tcp timestamps are enabled we stored
|
* when syncookies are in effect and tcp timestamps are enabled we stored
|
||||||
|
|
@ -260,7 +259,6 @@ bool cookie_timestamp_decode(const struct net *net,
|
||||||
|
|
||||||
return READ_ONCE(net->ipv4.sysctl_tcp_window_scaling) != 0;
|
return READ_ONCE(net->ipv4.sysctl_tcp_window_scaling) != 0;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(cookie_timestamp_decode);
|
|
||||||
|
|
||||||
static int cookie_tcp_reqsk_init(struct sock *sk, struct sk_buff *skb,
|
static int cookie_tcp_reqsk_init(struct sock *sk, struct sk_buff *skb,
|
||||||
struct request_sock *req)
|
struct request_sock *req)
|
||||||
|
|
@ -312,7 +310,6 @@ struct request_sock *cookie_bpf_check(struct sock *sk, struct sk_buff *skb)
|
||||||
|
|
||||||
return req;
|
return req;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD_GPL(cookie_bpf_check);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
struct request_sock *cookie_tcp_reqsk_alloc(const struct request_sock_ops *ops,
|
struct request_sock *cookie_tcp_reqsk_alloc(const struct request_sock_ops *ops,
|
||||||
|
|
@ -353,7 +350,6 @@ struct request_sock *cookie_tcp_reqsk_alloc(const struct request_sock_ops *ops,
|
||||||
|
|
||||||
return req;
|
return req;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD_GPL(cookie_tcp_reqsk_alloc);
|
|
||||||
|
|
||||||
static struct request_sock *cookie_tcp_check(struct net *net, struct sock *sk,
|
static struct request_sock *cookie_tcp_check(struct net *net, struct sock *sk,
|
||||||
struct sk_buff *skb)
|
struct sk_buff *skb)
|
||||||
|
|
|
||||||
|
|
@ -303,7 +303,6 @@ DEFINE_PER_CPU(u32, tcp_tw_isn);
|
||||||
EXPORT_PER_CPU_SYMBOL_GPL(tcp_tw_isn);
|
EXPORT_PER_CPU_SYMBOL_GPL(tcp_tw_isn);
|
||||||
|
|
||||||
long sysctl_tcp_mem[3] __read_mostly;
|
long sysctl_tcp_mem[3] __read_mostly;
|
||||||
EXPORT_IPV6_MOD(sysctl_tcp_mem);
|
|
||||||
|
|
||||||
DEFINE_PER_CPU(int, tcp_memory_per_cpu_fw_alloc);
|
DEFINE_PER_CPU(int, tcp_memory_per_cpu_fw_alloc);
|
||||||
EXPORT_PER_CPU_SYMBOL_GPL(tcp_memory_per_cpu_fw_alloc);
|
EXPORT_PER_CPU_SYMBOL_GPL(tcp_memory_per_cpu_fw_alloc);
|
||||||
|
|
@ -317,7 +316,6 @@ EXPORT_SYMBOL(tcp_have_smc);
|
||||||
* Current number of TCP sockets.
|
* Current number of TCP sockets.
|
||||||
*/
|
*/
|
||||||
struct percpu_counter tcp_sockets_allocated ____cacheline_aligned_in_smp;
|
struct percpu_counter tcp_sockets_allocated ____cacheline_aligned_in_smp;
|
||||||
EXPORT_IPV6_MOD(tcp_sockets_allocated);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Pressure flag: try to collapse.
|
* Pressure flag: try to collapse.
|
||||||
|
|
@ -341,7 +339,6 @@ void tcp_enter_memory_pressure(struct sock *sk)
|
||||||
if (!cmpxchg(&tcp_memory_pressure, 0, val))
|
if (!cmpxchg(&tcp_memory_pressure, 0, val))
|
||||||
NET_INC_STATS(sock_net(sk), LINUX_MIB_TCPMEMORYPRESSURES);
|
NET_INC_STATS(sock_net(sk), LINUX_MIB_TCPMEMORYPRESSURES);
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD_GPL(tcp_enter_memory_pressure);
|
|
||||||
|
|
||||||
void tcp_leave_memory_pressure(struct sock *sk)
|
void tcp_leave_memory_pressure(struct sock *sk)
|
||||||
{
|
{
|
||||||
|
|
@ -354,7 +351,6 @@ void tcp_leave_memory_pressure(struct sock *sk)
|
||||||
NET_ADD_STATS(sock_net(sk), LINUX_MIB_TCPMEMORYPRESSURESCHRONO,
|
NET_ADD_STATS(sock_net(sk), LINUX_MIB_TCPMEMORYPRESSURESCHRONO,
|
||||||
jiffies_to_msecs(jiffies - val));
|
jiffies_to_msecs(jiffies - val));
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD_GPL(tcp_leave_memory_pressure);
|
|
||||||
|
|
||||||
/* Convert seconds to retransmits based on initial and max timeout */
|
/* Convert seconds to retransmits based on initial and max timeout */
|
||||||
static u8 secs_to_retrans(int seconds, int timeout, int rto_max)
|
static u8 secs_to_retrans(int seconds, int timeout, int rto_max)
|
||||||
|
|
@ -418,7 +414,6 @@ void tcp_md5_destruct_sock(struct sock *sk)
|
||||||
static_branch_slow_dec_deferred(&tcp_md5_needed);
|
static_branch_slow_dec_deferred(&tcp_md5_needed);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD_GPL(tcp_md5_destruct_sock);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Address-family independent initialization for a tcp_sock.
|
/* Address-family independent initialization for a tcp_sock.
|
||||||
|
|
@ -486,7 +481,6 @@ void tcp_init_sock(struct sock *sk)
|
||||||
sk_sockets_allocated_inc(sk);
|
sk_sockets_allocated_inc(sk);
|
||||||
xa_init_flags(&sk->sk_user_frags, XA_FLAGS_ALLOC1);
|
xa_init_flags(&sk->sk_user_frags, XA_FLAGS_ALLOC1);
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_init_sock);
|
|
||||||
|
|
||||||
static void tcp_tx_timestamp(struct sock *sk, struct sockcm_cookie *sockc)
|
static void tcp_tx_timestamp(struct sock *sk, struct sockcm_cookie *sockc)
|
||||||
{
|
{
|
||||||
|
|
@ -691,7 +685,6 @@ int tcp_ioctl(struct sock *sk, int cmd, int *karg)
|
||||||
*karg = answ;
|
*karg = answ;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_ioctl);
|
|
||||||
|
|
||||||
void tcp_mark_push(struct tcp_sock *tp, struct sk_buff *skb)
|
void tcp_mark_push(struct tcp_sock *tp, struct sk_buff *skb)
|
||||||
{
|
{
|
||||||
|
|
@ -908,7 +901,6 @@ ssize_t tcp_splice_read(struct socket *sock, loff_t *ppos,
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_splice_read);
|
|
||||||
|
|
||||||
/* We allow to exceed memory limits for FIN packets to expedite
|
/* We allow to exceed memory limits for FIN packets to expedite
|
||||||
* connection tear down and (memory) recovery.
|
* connection tear down and (memory) recovery.
|
||||||
|
|
@ -1483,7 +1475,6 @@ void tcp_splice_eof(struct socket *sock)
|
||||||
tcp_push(sk, 0, mss_now, tp->nonagle, size_goal);
|
tcp_push(sk, 0, mss_now, tp->nonagle, size_goal);
|
||||||
release_sock(sk);
|
release_sock(sk);
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD_GPL(tcp_splice_eof);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Handle reading urgent data. BSD has very simple semantics for
|
* Handle reading urgent data. BSD has very simple semantics for
|
||||||
|
|
@ -1795,7 +1786,6 @@ int tcp_read_skb(struct sock *sk, skb_read_actor_t recv_actor)
|
||||||
}
|
}
|
||||||
return copied;
|
return copied;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_read_skb);
|
|
||||||
|
|
||||||
void tcp_read_done(struct sock *sk, size_t len)
|
void tcp_read_done(struct sock *sk, size_t len)
|
||||||
{
|
{
|
||||||
|
|
@ -1840,7 +1830,6 @@ int tcp_peek_len(struct socket *sock)
|
||||||
{
|
{
|
||||||
return tcp_inq(sock->sk);
|
return tcp_inq(sock->sk);
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_peek_len);
|
|
||||||
|
|
||||||
/* Make sure sk_rcvbuf is big enough to satisfy SO_RCVLOWAT hint */
|
/* Make sure sk_rcvbuf is big enough to satisfy SO_RCVLOWAT hint */
|
||||||
int tcp_set_rcvlowat(struct sock *sk, int val)
|
int tcp_set_rcvlowat(struct sock *sk, int val)
|
||||||
|
|
@ -1870,7 +1859,6 @@ int tcp_set_rcvlowat(struct sock *sk, int val)
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_set_rcvlowat);
|
|
||||||
|
|
||||||
#ifdef CONFIG_MMU
|
#ifdef CONFIG_MMU
|
||||||
static const struct vm_operations_struct tcp_vm_ops = {
|
static const struct vm_operations_struct tcp_vm_ops = {
|
||||||
|
|
@ -1889,7 +1877,6 @@ int tcp_mmap(struct file *file, struct socket *sock,
|
||||||
vma->vm_ops = &tcp_vm_ops;
|
vma->vm_ops = &tcp_vm_ops;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_mmap);
|
|
||||||
|
|
||||||
static skb_frag_t *skb_advance_to_frag(struct sk_buff *skb, u32 offset_skb,
|
static skb_frag_t *skb_advance_to_frag(struct sk_buff *skb, u32 offset_skb,
|
||||||
u32 *offset_frag)
|
u32 *offset_frag)
|
||||||
|
|
@ -2974,7 +2961,6 @@ int tcp_recvmsg(struct sock *sk, struct msghdr *msg, size_t len, int flags)
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_recvmsg);
|
|
||||||
|
|
||||||
void tcp_set_state(struct sock *sk, int state)
|
void tcp_set_state(struct sock *sk, int state)
|
||||||
{
|
{
|
||||||
|
|
@ -3104,7 +3090,6 @@ void tcp_shutdown(struct sock *sk, int how)
|
||||||
tcp_send_fin(sk);
|
tcp_send_fin(sk);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_shutdown);
|
|
||||||
|
|
||||||
int tcp_orphan_count_sum(void)
|
int tcp_orphan_count_sum(void)
|
||||||
{
|
{
|
||||||
|
|
@ -3617,7 +3602,6 @@ static int tcp_repair_options_est(struct sock *sk, sockptr_t optbuf,
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFINE_STATIC_KEY_FALSE(tcp_tx_delay_enabled);
|
DEFINE_STATIC_KEY_FALSE(tcp_tx_delay_enabled);
|
||||||
EXPORT_IPV6_MOD(tcp_tx_delay_enabled);
|
|
||||||
|
|
||||||
static void tcp_enable_tx_delay(struct sock *sk, int val)
|
static void tcp_enable_tx_delay(struct sock *sk, int val)
|
||||||
{
|
{
|
||||||
|
|
@ -4202,7 +4186,6 @@ int tcp_setsockopt(struct sock *sk, int level, int optname, sockptr_t optval,
|
||||||
optval, optlen);
|
optval, optlen);
|
||||||
return do_tcp_setsockopt(sk, level, optname, optval, optlen);
|
return do_tcp_setsockopt(sk, level, optname, optval, optlen);
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_setsockopt);
|
|
||||||
|
|
||||||
static void tcp_get_info_chrono_stats(const struct tcp_sock *tp,
|
static void tcp_get_info_chrono_stats(const struct tcp_sock *tp,
|
||||||
struct tcp_info *info)
|
struct tcp_info *info)
|
||||||
|
|
@ -4865,7 +4848,6 @@ bool tcp_bpf_bypass_getsockopt(int level, int optname)
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_bpf_bypass_getsockopt);
|
|
||||||
|
|
||||||
int tcp_getsockopt(struct sock *sk, int level, int optname, char __user *optval,
|
int tcp_getsockopt(struct sock *sk, int level, int optname, char __user *optval,
|
||||||
int __user *optlen)
|
int __user *optlen)
|
||||||
|
|
@ -4879,7 +4861,6 @@ int tcp_getsockopt(struct sock *sk, int level, int optname, char __user *optval,
|
||||||
return do_tcp_getsockopt(sk, level, optname, USER_SOCKPTR(optval),
|
return do_tcp_getsockopt(sk, level, optname, USER_SOCKPTR(optval),
|
||||||
USER_SOCKPTR(optlen));
|
USER_SOCKPTR(optlen));
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_getsockopt);
|
|
||||||
|
|
||||||
#ifdef CONFIG_TCP_MD5SIG
|
#ifdef CONFIG_TCP_MD5SIG
|
||||||
void tcp_md5_hash_skb_data(struct md5_ctx *ctx, const struct sk_buff *skb,
|
void tcp_md5_hash_skb_data(struct md5_ctx *ctx, const struct sk_buff *skb,
|
||||||
|
|
@ -4910,7 +4891,6 @@ void tcp_md5_hash_skb_data(struct md5_ctx *ctx, const struct sk_buff *skb,
|
||||||
skb_walk_frags(skb, frag_iter)
|
skb_walk_frags(skb, frag_iter)
|
||||||
tcp_md5_hash_skb_data(ctx, frag_iter, 0);
|
tcp_md5_hash_skb_data(ctx, frag_iter, 0);
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_md5_hash_skb_data);
|
|
||||||
|
|
||||||
void tcp_md5_hash_key(struct md5_ctx *ctx,
|
void tcp_md5_hash_key(struct md5_ctx *ctx,
|
||||||
const struct tcp_md5sig_key *key)
|
const struct tcp_md5sig_key *key)
|
||||||
|
|
@ -4922,7 +4902,6 @@ void tcp_md5_hash_key(struct md5_ctx *ctx,
|
||||||
*/
|
*/
|
||||||
data_race(({ md5_update(ctx, key->key, keylen), 0; }));
|
data_race(({ md5_update(ctx, key->key, keylen), 0; }));
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_md5_hash_key);
|
|
||||||
|
|
||||||
/* Called with rcu_read_lock() */
|
/* Called with rcu_read_lock() */
|
||||||
static enum skb_drop_reason
|
static enum skb_drop_reason
|
||||||
|
|
@ -5023,7 +5002,6 @@ int tcp_do_parse_auth_options(const struct tcphdr *th,
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_do_parse_auth_options);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Called with rcu_read_lock() */
|
/* Called with rcu_read_lock() */
|
||||||
|
|
@ -5092,7 +5070,6 @@ tcp_inbound_hash(struct sock *sk, const struct request_sock *req,
|
||||||
return tcp_inbound_md5_hash(sk, skb, saddr, daddr, family,
|
return tcp_inbound_md5_hash(sk, skb, saddr, daddr, family,
|
||||||
l3index, md5_location);
|
l3index, md5_location);
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD_GPL(tcp_inbound_hash);
|
|
||||||
|
|
||||||
void tcp_done(struct sock *sk)
|
void tcp_done(struct sock *sk)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -559,7 +559,6 @@ bool tcp_fastopen_defer_connect(struct sock *sk, int *err)
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_fastopen_defer_connect);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The following code block is to deal with middle box issues with TFO:
|
* The following code block is to deal with middle box issues with TFO:
|
||||||
|
|
|
||||||
|
|
@ -814,7 +814,6 @@ void tcp_initialize_rcv_mss(struct sock *sk)
|
||||||
|
|
||||||
inet_csk(sk)->icsk_ack.rcv_mss = hint;
|
inet_csk(sk)->icsk_ack.rcv_mss = hint;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_initialize_rcv_mss);
|
|
||||||
|
|
||||||
/* Receiver "autotuning" code.
|
/* Receiver "autotuning" code.
|
||||||
*
|
*
|
||||||
|
|
@ -3172,7 +3171,6 @@ void tcp_simple_retransmit(struct sock *sk)
|
||||||
*/
|
*/
|
||||||
tcp_non_congestion_loss_retransmit(sk);
|
tcp_non_congestion_loss_retransmit(sk);
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_simple_retransmit);
|
|
||||||
|
|
||||||
void tcp_enter_recovery(struct sock *sk, bool ece_ack)
|
void tcp_enter_recovery(struct sock *sk, bool ece_ack)
|
||||||
{
|
{
|
||||||
|
|
@ -4843,7 +4841,6 @@ void tcp_done_with_error(struct sock *sk, int err)
|
||||||
if (!sock_flag(sk, SOCK_DEAD))
|
if (!sock_flag(sk, SOCK_DEAD))
|
||||||
sk_error_report(sk);
|
sk_error_report(sk);
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_done_with_error);
|
|
||||||
|
|
||||||
/* When we get a reset we do this. */
|
/* When we get a reset we do this. */
|
||||||
void tcp_reset(struct sock *sk, struct sk_buff *skb)
|
void tcp_reset(struct sock *sk, struct sk_buff *skb)
|
||||||
|
|
@ -6665,7 +6662,6 @@ csum_error:
|
||||||
discard:
|
discard:
|
||||||
tcp_drop_reason(sk, skb, reason);
|
tcp_drop_reason(sk, skb, reason);
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_rcv_established);
|
|
||||||
|
|
||||||
void tcp_init_transfer(struct sock *sk, int bpf_op, struct sk_buff *skb)
|
void tcp_init_transfer(struct sock *sk, int bpf_op, struct sk_buff *skb)
|
||||||
{
|
{
|
||||||
|
|
@ -7384,7 +7380,6 @@ consume:
|
||||||
__kfree_skb(skb);
|
__kfree_skb(skb);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_rcv_state_process);
|
|
||||||
|
|
||||||
static inline void pr_drop_req(struct request_sock *req, __u16 port, int family)
|
static inline void pr_drop_req(struct request_sock *req, __u16 port, int family)
|
||||||
{
|
{
|
||||||
|
|
@ -7582,7 +7577,6 @@ u16 tcp_get_syncookie_mss(struct request_sock_ops *rsk_ops,
|
||||||
|
|
||||||
return mss;
|
return mss;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD_GPL(tcp_get_syncookie_mss);
|
|
||||||
|
|
||||||
int tcp_conn_request(struct request_sock_ops *rsk_ops,
|
int tcp_conn_request(struct request_sock_ops *rsk_ops,
|
||||||
const struct tcp_request_sock_ops *af_ops,
|
const struct tcp_request_sock_ops *af_ops,
|
||||||
|
|
@ -7762,4 +7756,3 @@ drop:
|
||||||
tcp_listendrop(sk);
|
tcp_listendrop(sk);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_conn_request);
|
|
||||||
|
|
|
||||||
|
|
@ -201,7 +201,6 @@ int tcp_twsk_unique(struct sock *sk, struct sock *sktw, void *twp)
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD_GPL(tcp_twsk_unique);
|
|
||||||
|
|
||||||
static int tcp_v4_pre_connect(struct sock *sk, struct sockaddr_unsized *uaddr,
|
static int tcp_v4_pre_connect(struct sock *sk, struct sockaddr_unsized *uaddr,
|
||||||
int addr_len)
|
int addr_len)
|
||||||
|
|
@ -362,7 +361,6 @@ failure:
|
||||||
inet->inet_dport = 0;
|
inet->inet_dport = 0;
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_v4_connect);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This routine reacts to ICMP_FRAG_NEEDED mtu indications as defined in RFC1191.
|
* This routine reacts to ICMP_FRAG_NEEDED mtu indications as defined in RFC1191.
|
||||||
|
|
@ -402,7 +400,6 @@ void tcp_v4_mtu_reduced(struct sock *sk)
|
||||||
tcp_simple_retransmit(sk);
|
tcp_simple_retransmit(sk);
|
||||||
} /* else let the usual retransmit timer handle it */
|
} /* else let the usual retransmit timer handle it */
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_v4_mtu_reduced);
|
|
||||||
|
|
||||||
static void do_redirect(struct sk_buff *skb, struct sock *sk)
|
static void do_redirect(struct sk_buff *skb, struct sock *sk)
|
||||||
{
|
{
|
||||||
|
|
@ -436,7 +433,6 @@ void tcp_req_err(struct sock *sk, u32 seq, bool abort)
|
||||||
}
|
}
|
||||||
reqsk_put(req);
|
reqsk_put(req);
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_req_err);
|
|
||||||
|
|
||||||
/* TCP-LD (RFC 6069) logic */
|
/* TCP-LD (RFC 6069) logic */
|
||||||
void tcp_ld_RTO_revert(struct sock *sk, u32 seq)
|
void tcp_ld_RTO_revert(struct sock *sk, u32 seq)
|
||||||
|
|
@ -475,7 +471,6 @@ void tcp_ld_RTO_revert(struct sock *sk, u32 seq)
|
||||||
tcp_retransmit_timer(sk);
|
tcp_retransmit_timer(sk);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_ld_RTO_revert);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This routine is called by the ICMP module when it gets some
|
* This routine is called by the ICMP module when it gets some
|
||||||
|
|
@ -1222,7 +1217,6 @@ static void tcp_v4_reqsk_destructor(struct request_sock *req)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
DEFINE_STATIC_KEY_DEFERRED_FALSE(tcp_md5_needed, HZ);
|
DEFINE_STATIC_KEY_DEFERRED_FALSE(tcp_md5_needed, HZ);
|
||||||
EXPORT_IPV6_MOD(tcp_md5_needed);
|
|
||||||
|
|
||||||
static bool better_md5_match(struct tcp_md5sig_key *old, struct tcp_md5sig_key *new)
|
static bool better_md5_match(struct tcp_md5sig_key *old, struct tcp_md5sig_key *new)
|
||||||
{
|
{
|
||||||
|
|
@ -1281,7 +1275,6 @@ struct tcp_md5sig_key *__tcp_md5_do_lookup(const struct sock *sk, int l3index,
|
||||||
}
|
}
|
||||||
return best_match;
|
return best_match;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(__tcp_md5_do_lookup);
|
|
||||||
|
|
||||||
static struct tcp_md5sig_key *tcp_md5_do_lookup_exact(const struct sock *sk,
|
static struct tcp_md5sig_key *tcp_md5_do_lookup_exact(const struct sock *sk,
|
||||||
const union tcp_md5_addr *addr,
|
const union tcp_md5_addr *addr,
|
||||||
|
|
@ -1328,7 +1321,6 @@ struct tcp_md5sig_key *tcp_v4_md5_lookup(const struct sock *sk,
|
||||||
addr = (const union tcp_md5_addr *)&addr_sk->sk_daddr;
|
addr = (const union tcp_md5_addr *)&addr_sk->sk_daddr;
|
||||||
return tcp_md5_do_lookup(sk, l3index, addr, AF_INET);
|
return tcp_md5_do_lookup(sk, l3index, addr, AF_INET);
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_v4_md5_lookup);
|
|
||||||
|
|
||||||
static int tcp_md5sig_info_add(struct sock *sk, gfp_t gfp)
|
static int tcp_md5sig_info_add(struct sock *sk, gfp_t gfp)
|
||||||
{
|
{
|
||||||
|
|
@ -1423,7 +1415,6 @@ int tcp_md5_do_add(struct sock *sk, const union tcp_md5_addr *addr,
|
||||||
return __tcp_md5_do_add(sk, addr, family, prefixlen, l3index, flags,
|
return __tcp_md5_do_add(sk, addr, family, prefixlen, l3index, flags,
|
||||||
newkey, newkeylen, GFP_KERNEL);
|
newkey, newkeylen, GFP_KERNEL);
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_md5_do_add);
|
|
||||||
|
|
||||||
int tcp_md5_key_copy(struct sock *sk, const union tcp_md5_addr *addr,
|
int tcp_md5_key_copy(struct sock *sk, const union tcp_md5_addr *addr,
|
||||||
int family, u8 prefixlen, int l3index,
|
int family, u8 prefixlen, int l3index,
|
||||||
|
|
@ -1451,7 +1442,6 @@ int tcp_md5_key_copy(struct sock *sk, const union tcp_md5_addr *addr,
|
||||||
key->flags, key->key, key->keylen,
|
key->flags, key->key, key->keylen,
|
||||||
sk_gfp_mask(sk, GFP_ATOMIC));
|
sk_gfp_mask(sk, GFP_ATOMIC));
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_md5_key_copy);
|
|
||||||
|
|
||||||
int tcp_md5_do_del(struct sock *sk, const union tcp_md5_addr *addr, int family,
|
int tcp_md5_do_del(struct sock *sk, const union tcp_md5_addr *addr, int family,
|
||||||
u8 prefixlen, int l3index, u8 flags)
|
u8 prefixlen, int l3index, u8 flags)
|
||||||
|
|
@ -1466,7 +1456,6 @@ int tcp_md5_do_del(struct sock *sk, const union tcp_md5_addr *addr, int family,
|
||||||
kfree_rcu(key, rcu);
|
kfree_rcu(key, rcu);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_md5_do_del);
|
|
||||||
|
|
||||||
void tcp_clear_md5_list(struct sock *sk)
|
void tcp_clear_md5_list(struct sock *sk)
|
||||||
{
|
{
|
||||||
|
|
@ -1604,7 +1593,6 @@ tcp_v4_md5_hash_skb(char *md5_hash, const struct tcp_md5sig_key *key,
|
||||||
tcp_md5_hash_key(&ctx, key);
|
tcp_md5_hash_key(&ctx, key);
|
||||||
md5_final(&ctx, md5_hash);
|
md5_final(&ctx, md5_hash);
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_v4_md5_hash_skb);
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
@ -1674,7 +1662,6 @@ drop:
|
||||||
tcp_listendrop(sk);
|
tcp_listendrop(sk);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_v4_conn_request);
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -1800,7 +1787,6 @@ put_and_exit:
|
||||||
tcp_done(newsk);
|
tcp_done(newsk);
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_v4_syn_recv_sock);
|
|
||||||
|
|
||||||
static struct sock *tcp_v4_cookie_check(struct sock *sk, struct sk_buff *skb)
|
static struct sock *tcp_v4_cookie_check(struct sock *sk, struct sk_buff *skb)
|
||||||
{
|
{
|
||||||
|
|
@ -2055,7 +2041,6 @@ no_coalesce:
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_add_backlog);
|
|
||||||
|
|
||||||
static void tcp_v4_restore_cb(struct sk_buff *skb)
|
static void tcp_v4_restore_cb(struct sk_buff *skb)
|
||||||
{
|
{
|
||||||
|
|
@ -2367,7 +2352,6 @@ void inet_sk_rx_dst_set(struct sock *sk, const struct sk_buff *skb)
|
||||||
sk->sk_rx_dst_ifindex = skb->skb_iif;
|
sk->sk_rx_dst_ifindex = skb->skb_iif;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(inet_sk_rx_dst_set);
|
|
||||||
|
|
||||||
const struct inet_connection_sock_af_ops ipv4_specific = {
|
const struct inet_connection_sock_af_ops ipv4_specific = {
|
||||||
.queue_xmit = ip_queue_xmit,
|
.queue_xmit = ip_queue_xmit,
|
||||||
|
|
@ -2380,7 +2364,6 @@ const struct inet_connection_sock_af_ops ipv4_specific = {
|
||||||
.getsockopt = ip_getsockopt,
|
.getsockopt = ip_getsockopt,
|
||||||
.mtu_reduced = tcp_v4_mtu_reduced,
|
.mtu_reduced = tcp_v4_mtu_reduced,
|
||||||
};
|
};
|
||||||
EXPORT_IPV6_MOD(ipv4_specific);
|
|
||||||
|
|
||||||
#if defined(CONFIG_TCP_MD5SIG) || defined(CONFIG_TCP_AO)
|
#if defined(CONFIG_TCP_MD5SIG) || defined(CONFIG_TCP_AO)
|
||||||
static const struct tcp_sock_af_ops tcp_sock_ipv4_specific = {
|
static const struct tcp_sock_af_ops tcp_sock_ipv4_specific = {
|
||||||
|
|
@ -2473,7 +2456,6 @@ void tcp_v4_destroy_sock(struct sock *sk)
|
||||||
|
|
||||||
sk_sockets_allocated_dec(sk);
|
sk_sockets_allocated_dec(sk);
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_v4_destroy_sock);
|
|
||||||
|
|
||||||
#ifdef CONFIG_PROC_FS
|
#ifdef CONFIG_PROC_FS
|
||||||
/* Proc filesystem TCP sock list dumping. */
|
/* Proc filesystem TCP sock list dumping. */
|
||||||
|
|
@ -2709,7 +2691,6 @@ out:
|
||||||
st->last_pos = *pos;
|
st->last_pos = *pos;
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_seq_start);
|
|
||||||
|
|
||||||
void *tcp_seq_next(struct seq_file *seq, void *v, loff_t *pos)
|
void *tcp_seq_next(struct seq_file *seq, void *v, loff_t *pos)
|
||||||
{
|
{
|
||||||
|
|
@ -2740,7 +2721,6 @@ out:
|
||||||
st->last_pos = *pos;
|
st->last_pos = *pos;
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_seq_next);
|
|
||||||
|
|
||||||
void tcp_seq_stop(struct seq_file *seq, void *v)
|
void tcp_seq_stop(struct seq_file *seq, void *v)
|
||||||
{
|
{
|
||||||
|
|
@ -2758,7 +2738,6 @@ void tcp_seq_stop(struct seq_file *seq, void *v)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_seq_stop);
|
|
||||||
|
|
||||||
static void get_openreq4(const struct request_sock *req,
|
static void get_openreq4(const struct request_sock *req,
|
||||||
struct seq_file *f, int i)
|
struct seq_file *f, int i)
|
||||||
|
|
|
||||||
|
|
@ -287,7 +287,6 @@ out_put:
|
||||||
inet_twsk_put(tw);
|
inet_twsk_put(tw);
|
||||||
return TCP_TW_SUCCESS;
|
return TCP_TW_SUCCESS;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_timewait_state_process);
|
|
||||||
|
|
||||||
static void tcp_time_wait_init(struct sock *sk, struct tcp_timewait_sock *tcptw)
|
static void tcp_time_wait_init(struct sock *sk, struct tcp_timewait_sock *tcptw)
|
||||||
{
|
{
|
||||||
|
|
@ -523,7 +522,6 @@ void tcp_ca_openreq_child(struct sock *sk, const struct dst_entry *dst)
|
||||||
|
|
||||||
tcp_set_ca_state(sk, TCP_CA_Open);
|
tcp_set_ca_state(sk, TCP_CA_Open);
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD_GPL(tcp_ca_openreq_child);
|
|
||||||
|
|
||||||
static void smc_check_reset_syn_req(const struct tcp_sock *oldtp,
|
static void smc_check_reset_syn_req(const struct tcp_sock *oldtp,
|
||||||
struct request_sock *req,
|
struct request_sock *req,
|
||||||
|
|
@ -976,7 +974,6 @@ embryonic_reset:
|
||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_check_req);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Queue segment on the new socket if the new socket is active,
|
* Queue segment on the new socket if the new socket is active,
|
||||||
|
|
@ -1018,4 +1015,3 @@ enum skb_drop_reason tcp_child_process(struct sock *parent, struct sock *child,
|
||||||
sock_put(child);
|
sock_put(child);
|
||||||
return reason;
|
return reason;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_child_process);
|
|
||||||
|
|
|
||||||
|
|
@ -272,7 +272,6 @@ void tcp_select_initial_window(const struct sock *sk, int __space, __u32 mss,
|
||||||
WRITE_ONCE(*__window_clamp,
|
WRITE_ONCE(*__window_clamp,
|
||||||
min_t(__u32, U16_MAX << (*rcv_wscale), window_clamp));
|
min_t(__u32, U16_MAX << (*rcv_wscale), window_clamp));
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_select_initial_window);
|
|
||||||
|
|
||||||
/* Chose a new window to advertise, update state in tcp_sock for the
|
/* Chose a new window to advertise, update state in tcp_sock for the
|
||||||
* socket, and return result with RFC1323 scaling applied. The return
|
* socket, and return result with RFC1323 scaling applied. The return
|
||||||
|
|
@ -1361,7 +1360,6 @@ void tcp_release_cb(struct sock *sk)
|
||||||
if ((flags & TCPF_ACK_DEFERRED) && inet_csk_ack_scheduled(sk))
|
if ((flags & TCPF_ACK_DEFERRED) && inet_csk_ack_scheduled(sk))
|
||||||
tcp_send_ack(sk);
|
tcp_send_ack(sk);
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_release_cb);
|
|
||||||
|
|
||||||
void __init tcp_tsq_work_init(void)
|
void __init tcp_tsq_work_init(void)
|
||||||
{
|
{
|
||||||
|
|
@ -2023,7 +2021,6 @@ int tcp_mtu_to_mss(struct sock *sk, int pmtu)
|
||||||
return __tcp_mtu_to_mss(sk, pmtu) -
|
return __tcp_mtu_to_mss(sk, pmtu) -
|
||||||
(tcp_sk(sk)->tcp_header_len - sizeof(struct tcphdr));
|
(tcp_sk(sk)->tcp_header_len - sizeof(struct tcphdr));
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_mtu_to_mss);
|
|
||||||
|
|
||||||
/* Inverse of above */
|
/* Inverse of above */
|
||||||
int tcp_mss_to_mtu(struct sock *sk, int mss)
|
int tcp_mss_to_mtu(struct sock *sk, int mss)
|
||||||
|
|
@ -2096,7 +2093,6 @@ unsigned int tcp_sync_mss(struct sock *sk, u32 pmtu)
|
||||||
|
|
||||||
return mss_now;
|
return mss_now;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_sync_mss);
|
|
||||||
|
|
||||||
/* Compute the current effective MSS, taking SACKs and IP options,
|
/* Compute the current effective MSS, taking SACKs and IP options,
|
||||||
* and even PMTU discovery events into account.
|
* and even PMTU discovery events into account.
|
||||||
|
|
@ -4077,7 +4073,6 @@ struct sk_buff *tcp_make_synack(const struct sock *sk, struct dst_entry *dst,
|
||||||
|
|
||||||
return skb;
|
return skb;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_make_synack);
|
|
||||||
|
|
||||||
static void tcp_ca_dst_init(struct sock *sk, const struct dst_entry *dst)
|
static void tcp_ca_dst_init(struct sock *sk, const struct dst_entry *dst)
|
||||||
{
|
{
|
||||||
|
|
@ -4658,4 +4653,3 @@ int tcp_rtx_synack(const struct sock *sk, struct request_sock *req)
|
||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(tcp_rtx_synack);
|
|
||||||
|
|
|
||||||
|
|
@ -774,7 +774,6 @@ void tcp_set_keepalive(struct sock *sk, int val)
|
||||||
else if (!val)
|
else if (!val)
|
||||||
tcp_delete_keepalive_timer(sk);
|
tcp_delete_keepalive_timer(sk);
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD_GPL(tcp_set_keepalive);
|
|
||||||
|
|
||||||
static void tcp_keepalive_timer(struct timer_list *t)
|
static void tcp_keepalive_timer(struct timer_list *t)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -126,7 +126,6 @@
|
||||||
struct udp_table udp_table __read_mostly;
|
struct udp_table udp_table __read_mostly;
|
||||||
|
|
||||||
long sysctl_udp_mem[3] __read_mostly;
|
long sysctl_udp_mem[3] __read_mostly;
|
||||||
EXPORT_IPV6_MOD(sysctl_udp_mem);
|
|
||||||
|
|
||||||
DEFINE_PER_CPU(int, udp_memory_per_cpu_fw_alloc);
|
DEFINE_PER_CPU(int, udp_memory_per_cpu_fw_alloc);
|
||||||
EXPORT_PER_CPU_SYMBOL_GPL(udp_memory_per_cpu_fw_alloc);
|
EXPORT_PER_CPU_SYMBOL_GPL(udp_memory_per_cpu_fw_alloc);
|
||||||
|
|
@ -349,7 +348,6 @@ fail_unlock:
|
||||||
fail:
|
fail:
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(udp_lib_get_port);
|
|
||||||
|
|
||||||
static int udp_v4_get_port(struct sock *sk, unsigned short snum)
|
static int udp_v4_get_port(struct sock *sk, unsigned short snum)
|
||||||
{
|
{
|
||||||
|
|
@ -415,7 +413,6 @@ u32 udp_ehashfn(const struct net *net, const __be32 laddr, const __u16 lport,
|
||||||
return __inet_ehashfn(laddr, lport, faddr, fport,
|
return __inet_ehashfn(laddr, lport, faddr, fport,
|
||||||
udp_ehash_secret + net_hash_mix(net));
|
udp_ehash_secret + net_hash_mix(net));
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(udp_ehashfn);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* udp4_lib_lookup1() - Simplified lookup using primary hash (destination port)
|
* udp4_lib_lookup1() - Simplified lookup using primary hash (destination port)
|
||||||
|
|
@ -650,7 +647,6 @@ void udp_lib_hash4(struct sock *sk, u16 hash)
|
||||||
|
|
||||||
spin_unlock_bh(&hslot->lock);
|
spin_unlock_bh(&hslot->lock);
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(udp_lib_hash4);
|
|
||||||
|
|
||||||
/* call with sock lock */
|
/* call with sock lock */
|
||||||
void udp4_hash4(struct sock *sk)
|
void udp4_hash4(struct sock *sk)
|
||||||
|
|
@ -666,7 +662,6 @@ void udp4_hash4(struct sock *sk)
|
||||||
|
|
||||||
udp_lib_hash4(sk, hash);
|
udp_lib_hash4(sk, hash);
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(udp4_hash4);
|
|
||||||
#endif /* CONFIG_BASE_SMALL */
|
#endif /* CONFIG_BASE_SMALL */
|
||||||
|
|
||||||
/* UDP is nearly always wildcards out the wazoo, it makes no sense to try
|
/* UDP is nearly always wildcards out the wazoo, it makes no sense to try
|
||||||
|
|
@ -802,11 +797,9 @@ static inline bool __udp_is_mcast_sock(struct net *net, const struct sock *sk,
|
||||||
}
|
}
|
||||||
|
|
||||||
DEFINE_STATIC_KEY_FALSE(udp_encap_needed_key);
|
DEFINE_STATIC_KEY_FALSE(udp_encap_needed_key);
|
||||||
EXPORT_IPV6_MOD(udp_encap_needed_key);
|
|
||||||
|
|
||||||
#if IS_ENABLED(CONFIG_IPV6)
|
#if IS_ENABLED(CONFIG_IPV6)
|
||||||
DEFINE_STATIC_KEY_FALSE(udpv6_encap_needed_key);
|
DEFINE_STATIC_KEY_FALSE(udpv6_encap_needed_key);
|
||||||
EXPORT_IPV6_MOD(udpv6_encap_needed_key);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void udp_encap_enable(void)
|
void udp_encap_enable(void)
|
||||||
|
|
@ -1026,7 +1019,6 @@ void udp_flush_pending_frames(struct sock *sk)
|
||||||
ip_flush_pending_frames(sk);
|
ip_flush_pending_frames(sk);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(udp_flush_pending_frames);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* udp4_hwcsum - handle outgoing HW checksumming
|
* udp4_hwcsum - handle outgoing HW checksumming
|
||||||
|
|
@ -1204,7 +1196,6 @@ out:
|
||||||
WRITE_ONCE(up->pending, 0);
|
WRITE_ONCE(up->pending, 0);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(udp_push_pending_frames);
|
|
||||||
|
|
||||||
static int __udp_cmsg_send(struct cmsghdr *cmsg, u16 *gso_size)
|
static int __udp_cmsg_send(struct cmsghdr *cmsg, u16 *gso_size)
|
||||||
{
|
{
|
||||||
|
|
@ -1241,7 +1232,6 @@ int udp_cmsg_send(struct sock *sk, struct msghdr *msg, u16 *gso_size)
|
||||||
|
|
||||||
return need_ip;
|
return need_ip;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD_GPL(udp_cmsg_send);
|
|
||||||
|
|
||||||
int udp_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
|
int udp_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
|
||||||
{
|
{
|
||||||
|
|
@ -1532,7 +1522,6 @@ void udp_splice_eof(struct socket *sock)
|
||||||
udp_push_pending_frames(sk);
|
udp_push_pending_frames(sk);
|
||||||
release_sock(sk);
|
release_sock(sk);
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD_GPL(udp_splice_eof);
|
|
||||||
|
|
||||||
#define UDP_SKB_IS_STATELESS 0x80000000
|
#define UDP_SKB_IS_STATELESS 0x80000000
|
||||||
|
|
||||||
|
|
@ -1647,7 +1636,6 @@ void udp_skb_destructor(struct sock *sk, struct sk_buff *skb)
|
||||||
prefetch(&skb->data);
|
prefetch(&skb->data);
|
||||||
udp_rmem_release(sk, udp_skb_truesize(skb), 1, false);
|
udp_rmem_release(sk, udp_skb_truesize(skb), 1, false);
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(udp_skb_destructor);
|
|
||||||
|
|
||||||
/* as above, but the caller held the rx queue lock, too */
|
/* as above, but the caller held the rx queue lock, too */
|
||||||
static void udp_skb_dtor_locked(struct sock *sk, struct sk_buff *skb)
|
static void udp_skb_dtor_locked(struct sock *sk, struct sk_buff *skb)
|
||||||
|
|
@ -1800,7 +1788,6 @@ drop:
|
||||||
udp_drops_inc(sk);
|
udp_drops_inc(sk);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD_GPL(__udp_enqueue_schedule_skb);
|
|
||||||
|
|
||||||
void udp_destruct_common(struct sock *sk)
|
void udp_destruct_common(struct sock *sk)
|
||||||
{
|
{
|
||||||
|
|
@ -1817,7 +1804,6 @@ void udp_destruct_common(struct sock *sk)
|
||||||
udp_rmem_release(sk, total, 0, true);
|
udp_rmem_release(sk, total, 0, true);
|
||||||
kfree(up->udp_prod_queue);
|
kfree(up->udp_prod_queue);
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD_GPL(udp_destruct_common);
|
|
||||||
|
|
||||||
static void udp_destruct_sock(struct sock *sk)
|
static void udp_destruct_sock(struct sock *sk)
|
||||||
{
|
{
|
||||||
|
|
@ -1855,7 +1841,6 @@ void skb_consume_udp(struct sock *sk, struct sk_buff *skb, int len)
|
||||||
skb_release_head_state(skb);
|
skb_release_head_state(skb);
|
||||||
__consume_stateless_skb(skb);
|
__consume_stateless_skb(skb);
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD_GPL(skb_consume_udp);
|
|
||||||
|
|
||||||
static struct sk_buff *__first_packet_length(struct sock *sk,
|
static struct sk_buff *__first_packet_length(struct sock *sk,
|
||||||
struct sk_buff_head *rcvq,
|
struct sk_buff_head *rcvq,
|
||||||
|
|
@ -1937,7 +1922,6 @@ int udp_ioctl(struct sock *sk, int cmd, int *karg)
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(udp_ioctl);
|
|
||||||
|
|
||||||
struct sk_buff *__skb_recv_udp(struct sock *sk, unsigned int flags,
|
struct sk_buff *__skb_recv_udp(struct sock *sk, unsigned int flags,
|
||||||
int *off, int *err)
|
int *off, int *err)
|
||||||
|
|
@ -2032,7 +2016,6 @@ try_again:
|
||||||
WARN_ON_ONCE(!skb_set_owner_sk_safe(skb, sk));
|
WARN_ON_ONCE(!skb_set_owner_sk_safe(skb, sk));
|
||||||
return recv_actor(sk, skb);
|
return recv_actor(sk, skb);
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(udp_read_skb);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This should be easy, if there is something there we
|
* This should be easy, if there is something there we
|
||||||
|
|
@ -2154,7 +2137,6 @@ int udp_pre_connect(struct sock *sk, struct sockaddr_unsized *uaddr,
|
||||||
|
|
||||||
return BPF_CGROUP_RUN_PROG_INET4_CONNECT_LOCK(sk, uaddr, &addr_len);
|
return BPF_CGROUP_RUN_PROG_INET4_CONNECT_LOCK(sk, uaddr, &addr_len);
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(udp_pre_connect);
|
|
||||||
|
|
||||||
static int udp_connect(struct sock *sk, struct sockaddr_unsized *uaddr,
|
static int udp_connect(struct sock *sk, struct sockaddr_unsized *uaddr,
|
||||||
int addr_len)
|
int addr_len)
|
||||||
|
|
@ -2204,7 +2186,6 @@ int udp_disconnect(struct sock *sk, int flags)
|
||||||
release_sock(sk);
|
release_sock(sk);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(udp_disconnect);
|
|
||||||
|
|
||||||
void udp_lib_unhash(struct sock *sk)
|
void udp_lib_unhash(struct sock *sk)
|
||||||
{
|
{
|
||||||
|
|
@ -2236,7 +2217,6 @@ void udp_lib_unhash(struct sock *sk)
|
||||||
spin_unlock_bh(&hslot->lock);
|
spin_unlock_bh(&hslot->lock);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(udp_lib_unhash);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* inet_rcv_saddr was changed, we must rehash secondary hash
|
* inet_rcv_saddr was changed, we must rehash secondary hash
|
||||||
|
|
@ -2306,7 +2286,6 @@ void udp_lib_rehash(struct sock *sk, u16 newhash, u16 newhash4)
|
||||||
udp_sk(sk)->udp_portaddr_hash = newhash;
|
udp_sk(sk)->udp_portaddr_hash = newhash;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(udp_lib_rehash);
|
|
||||||
|
|
||||||
static void udp_v4_rehash(struct sock *sk)
|
static void udp_v4_rehash(struct sock *sk)
|
||||||
{
|
{
|
||||||
|
|
@ -2470,7 +2449,6 @@ bool udp_sk_rx_dst_set(struct sock *sk, struct dst_entry *dst)
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(udp_sk_rx_dst_set);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Multicasts and broadcasts go to each listener.
|
* Multicasts and broadcasts go to each listener.
|
||||||
|
|
@ -2999,7 +2977,6 @@ int udp_lib_setsockopt(struct sock *sk, int level, int optname,
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(udp_lib_setsockopt);
|
|
||||||
|
|
||||||
static int udp_setsockopt(struct sock *sk, int level, int optname, sockptr_t optval,
|
static int udp_setsockopt(struct sock *sk, int level, int optname, sockptr_t optval,
|
||||||
unsigned int optlen)
|
unsigned int optlen)
|
||||||
|
|
@ -3060,7 +3037,6 @@ int udp_lib_getsockopt(struct sock *sk, int level, int optname,
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(udp_lib_getsockopt);
|
|
||||||
|
|
||||||
static int udp_getsockopt(struct sock *sk, int level, int optname,
|
static int udp_getsockopt(struct sock *sk, int level, int optname,
|
||||||
char __user *optval, int __user *optlen)
|
char __user *optval, int __user *optlen)
|
||||||
|
|
@ -3102,7 +3078,6 @@ __poll_t udp_poll(struct file *file, struct socket *sock, poll_table *wait)
|
||||||
return mask;
|
return mask;
|
||||||
|
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(udp_poll);
|
|
||||||
|
|
||||||
int udp_abort(struct sock *sk, int err)
|
int udp_abort(struct sock *sk, int err)
|
||||||
{
|
{
|
||||||
|
|
@ -3125,7 +3100,6 @@ out:
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD_GPL(udp_abort);
|
|
||||||
|
|
||||||
struct proto udp_prot = {
|
struct proto udp_prot = {
|
||||||
.name = "UDP",
|
.name = "UDP",
|
||||||
|
|
@ -3245,7 +3219,6 @@ void *udp_seq_start(struct seq_file *seq, loff_t *pos)
|
||||||
|
|
||||||
return *pos ? udp_get_idx(seq, *pos-1) : SEQ_START_TOKEN;
|
return *pos ? udp_get_idx(seq, *pos-1) : SEQ_START_TOKEN;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(udp_seq_start);
|
|
||||||
|
|
||||||
void *udp_seq_next(struct seq_file *seq, void *v, loff_t *pos)
|
void *udp_seq_next(struct seq_file *seq, void *v, loff_t *pos)
|
||||||
{
|
{
|
||||||
|
|
@ -3259,7 +3232,6 @@ void *udp_seq_next(struct seq_file *seq, void *v, loff_t *pos)
|
||||||
++*pos;
|
++*pos;
|
||||||
return sk;
|
return sk;
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(udp_seq_next);
|
|
||||||
|
|
||||||
void udp_seq_stop(struct seq_file *seq, void *v)
|
void udp_seq_stop(struct seq_file *seq, void *v)
|
||||||
{
|
{
|
||||||
|
|
@ -3271,7 +3243,6 @@ void udp_seq_stop(struct seq_file *seq, void *v)
|
||||||
if (state->bucket <= udptable->mask)
|
if (state->bucket <= udptable->mask)
|
||||||
spin_unlock_bh(&udptable->hash[state->bucket].lock);
|
spin_unlock_bh(&udptable->hash[state->bucket].lock);
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD(udp_seq_stop);
|
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------ */
|
/* ------------------------------------------------------------------------ */
|
||||||
static void udp4_format_sock(struct sock *sp, struct seq_file *f,
|
static void udp4_format_sock(struct sock *sp, struct seq_file *f,
|
||||||
|
|
|
||||||
|
|
@ -291,4 +291,3 @@ void psp_reply_set_decrypted(const struct sock *sk, struct sk_buff *skb)
|
||||||
skb->decrypted = 1;
|
skb->decrypted = 1;
|
||||||
rcu_read_unlock();
|
rcu_read_unlock();
|
||||||
}
|
}
|
||||||
EXPORT_IPV6_MOD_GPL(psp_reply_set_decrypted);
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue