Commit 2f8f4f22 authored by Eric Dumazet's avatar Eric Dumazet Committed by Jakub Kicinski
Browse files

udp: use EXPORT_IPV6_MOD[_GPL]()



Use EXPORT_IPV6_MOD[_GPL]() for symbols that don't need
to be exported unless CONFIG_IPV6=m

udp_table is no longer used from any modules, and does not
need to be exported anyway.

Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
Reviewed-by: default avatarWillem de Bruijn <willemb@google.com>
Reviewed-by: default avatarMateusz Polchlopek <mateusz.polchlopek@intel.com>
Link: https://patch.msgid.link/20250212132418.1524422-5-edumazet@google.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 6dc4c252
Loading
Loading
Loading
Loading
+31 −32
Original line number Diff line number Diff line
@@ -121,13 +121,12 @@
#endif

struct udp_table udp_table __read_mostly;
EXPORT_SYMBOL(udp_table);

long sysctl_udp_mem[3] __read_mostly;
EXPORT_SYMBOL(sysctl_udp_mem);
EXPORT_IPV6_MOD(sysctl_udp_mem);

atomic_long_t udp_memory_allocated ____cacheline_aligned_in_smp;
EXPORT_SYMBOL(udp_memory_allocated);
EXPORT_IPV6_MOD(udp_memory_allocated);
DEFINE_PER_CPU(int, udp_memory_per_cpu_fw_alloc);
EXPORT_PER_CPU_SYMBOL_GPL(udp_memory_per_cpu_fw_alloc);

@@ -352,7 +351,7 @@ int udp_lib_get_port(struct sock *sk, unsigned short snum,
fail:
	return error;
}
EXPORT_SYMBOL(udp_lib_get_port);
EXPORT_IPV6_MOD(udp_lib_get_port);

int udp_v4_get_port(struct sock *sk, unsigned short snum)
{
@@ -418,7 +417,7 @@ u32 udp_ehashfn(const struct net *net, const __be32 laddr, const __u16 lport,
	return __inet_ehashfn(laddr, lport, faddr, fport,
			      udp_ehash_secret + net_hash_mix(net));
}
EXPORT_SYMBOL(udp_ehashfn);
EXPORT_IPV6_MOD(udp_ehashfn);

/**
 * udp4_lib_lookup1() - Simplified lookup using primary hash (destination port)
@@ -653,7 +652,7 @@ void udp_lib_hash4(struct sock *sk, u16 hash)

	spin_unlock_bh(&hslot->lock);
}
EXPORT_SYMBOL(udp_lib_hash4);
EXPORT_IPV6_MOD(udp_lib_hash4);

/* call with sock lock */
void udp4_hash4(struct sock *sk)
@@ -669,7 +668,7 @@ void udp4_hash4(struct sock *sk)

	udp_lib_hash4(sk, hash);
}
EXPORT_SYMBOL(udp4_hash4);
EXPORT_IPV6_MOD(udp4_hash4);
#endif /* CONFIG_BASE_SMALL */

/* UDP is nearly always wildcards out the wazoo, it makes no sense to try
@@ -809,11 +808,11 @@ static inline bool __udp_is_mcast_sock(struct net *net, const struct sock *sk,
}

DEFINE_STATIC_KEY_FALSE(udp_encap_needed_key);
EXPORT_SYMBOL(udp_encap_needed_key);
EXPORT_IPV6_MOD(udp_encap_needed_key);

#if IS_ENABLED(CONFIG_IPV6)
DEFINE_STATIC_KEY_FALSE(udpv6_encap_needed_key);
EXPORT_SYMBOL(udpv6_encap_needed_key);
EXPORT_IPV6_MOD(udpv6_encap_needed_key);
#endif

void udp_encap_enable(void)
@@ -1041,7 +1040,7 @@ void udp_flush_pending_frames(struct sock *sk)
		ip_flush_pending_frames(sk);
	}
}
EXPORT_SYMBOL(udp_flush_pending_frames);
EXPORT_IPV6_MOD(udp_flush_pending_frames);

/**
 * 	udp4_hwcsum  -  handle outgoing HW checksumming
@@ -1229,7 +1228,7 @@ int udp_push_pending_frames(struct sock *sk)
	WRITE_ONCE(up->pending, 0);
	return err;
}
EXPORT_SYMBOL(udp_push_pending_frames);
EXPORT_IPV6_MOD(udp_push_pending_frames);

static int __udp_cmsg_send(struct cmsghdr *cmsg, u16 *gso_size)
{
@@ -1266,7 +1265,7 @@ int udp_cmsg_send(struct sock *sk, struct msghdr *msg, u16 *gso_size)

	return need_ip;
}
EXPORT_SYMBOL_GPL(udp_cmsg_send);
EXPORT_IPV6_MOD_GPL(udp_cmsg_send);

int udp_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
{
@@ -1561,7 +1560,7 @@ void udp_splice_eof(struct socket *sock)
		udp_push_pending_frames(sk);
	release_sock(sk);
}
EXPORT_SYMBOL_GPL(udp_splice_eof);
EXPORT_IPV6_MOD_GPL(udp_splice_eof);

#define UDP_SKB_IS_STATELESS 0x80000000

@@ -1678,7 +1677,7 @@ void udp_skb_destructor(struct sock *sk, struct sk_buff *skb)
	prefetch(&skb->data);
	udp_rmem_release(sk, udp_skb_truesize(skb), 1, false);
}
EXPORT_SYMBOL(udp_skb_destructor);
EXPORT_IPV6_MOD(udp_skb_destructor);

/* as above, but the caller held the rx queue lock, too */
static void udp_skb_dtor_locked(struct sock *sk, struct sk_buff *skb)
@@ -1785,7 +1784,7 @@ int __udp_enqueue_schedule_skb(struct sock *sk, struct sk_buff *skb)
	busylock_release(busy);
	return err;
}
EXPORT_SYMBOL_GPL(__udp_enqueue_schedule_skb);
EXPORT_IPV6_MOD_GPL(__udp_enqueue_schedule_skb);

void udp_destruct_common(struct sock *sk)
{
@@ -1801,7 +1800,7 @@ void udp_destruct_common(struct sock *sk)
	}
	udp_rmem_release(sk, total, 0, true);
}
EXPORT_SYMBOL_GPL(udp_destruct_common);
EXPORT_IPV6_MOD_GPL(udp_destruct_common);

static void udp_destruct_sock(struct sock *sk)
{
@@ -1832,7 +1831,7 @@ void skb_consume_udp(struct sock *sk, struct sk_buff *skb, int len)
		skb_release_head_state(skb);
	__consume_stateless_skb(skb);
}
EXPORT_SYMBOL_GPL(skb_consume_udp);
EXPORT_IPV6_MOD_GPL(skb_consume_udp);

static struct sk_buff *__first_packet_length(struct sock *sk,
					     struct sk_buff_head *rcvq,
@@ -1914,7 +1913,7 @@ int udp_ioctl(struct sock *sk, int cmd, int *karg)

	return 0;
}
EXPORT_SYMBOL(udp_ioctl);
EXPORT_IPV6_MOD(udp_ioctl);

struct sk_buff *__skb_recv_udp(struct sock *sk, unsigned int flags,
			       int *off, int *err)
@@ -2010,7 +2009,7 @@ int udp_read_skb(struct sock *sk, skb_read_actor_t recv_actor)
	WARN_ON_ONCE(!skb_set_owner_sk_safe(skb, sk));
	return recv_actor(sk, skb);
}
EXPORT_SYMBOL(udp_read_skb);
EXPORT_IPV6_MOD(udp_read_skb);

/*
 * 	This should be easy, if there is something there we
@@ -2137,7 +2136,7 @@ int udp_pre_connect(struct sock *sk, struct sockaddr *uaddr, int addr_len)

	return BPF_CGROUP_RUN_PROG_INET4_CONNECT_LOCK(sk, uaddr, &addr_len);
}
EXPORT_SYMBOL(udp_pre_connect);
EXPORT_IPV6_MOD(udp_pre_connect);

static int udp_connect(struct sock *sk, struct sockaddr *uaddr, int addr_len)
{
@@ -2186,7 +2185,7 @@ int udp_disconnect(struct sock *sk, int flags)
	release_sock(sk);
	return 0;
}
EXPORT_SYMBOL(udp_disconnect);
EXPORT_IPV6_MOD(udp_disconnect);

void udp_lib_unhash(struct sock *sk)
{
@@ -2216,7 +2215,7 @@ void udp_lib_unhash(struct sock *sk)
		spin_unlock_bh(&hslot->lock);
	}
}
EXPORT_SYMBOL(udp_lib_unhash);
EXPORT_IPV6_MOD(udp_lib_unhash);

/*
 * inet_rcv_saddr was changed, we must rehash secondary hash
@@ -2280,7 +2279,7 @@ void udp_lib_rehash(struct sock *sk, u16 newhash, u16 newhash4)
		}
	}
}
EXPORT_SYMBOL(udp_lib_rehash);
EXPORT_IPV6_MOD(udp_lib_rehash);

void udp_v4_rehash(struct sock *sk)
{
@@ -2485,7 +2484,7 @@ bool udp_sk_rx_dst_set(struct sock *sk, struct dst_entry *dst)
	}
	return false;
}
EXPORT_SYMBOL(udp_sk_rx_dst_set);
EXPORT_IPV6_MOD(udp_sk_rx_dst_set);

/*
 *	Multicasts and broadcasts go to each listener.
@@ -3041,7 +3040,7 @@ int udp_lib_setsockopt(struct sock *sk, int level, int optname,

	return err;
}
EXPORT_SYMBOL(udp_lib_setsockopt);
EXPORT_IPV6_MOD(udp_lib_setsockopt);

int udp_setsockopt(struct sock *sk, int level, int optname, sockptr_t optval,
		   unsigned int optlen)
@@ -3112,7 +3111,7 @@ int udp_lib_getsockopt(struct sock *sk, int level, int optname,
		return -EFAULT;
	return 0;
}
EXPORT_SYMBOL(udp_lib_getsockopt);
EXPORT_IPV6_MOD(udp_lib_getsockopt);

int udp_getsockopt(struct sock *sk, int level, int optname,
		   char __user *optval, int __user *optlen)
@@ -3154,7 +3153,7 @@ __poll_t udp_poll(struct file *file, struct socket *sock, poll_table *wait)
	return mask;

}
EXPORT_SYMBOL(udp_poll);
EXPORT_IPV6_MOD(udp_poll);

int udp_abort(struct sock *sk, int err)
{
@@ -3177,7 +3176,7 @@ int udp_abort(struct sock *sk, int err)

	return 0;
}
EXPORT_SYMBOL_GPL(udp_abort);
EXPORT_IPV6_MOD_GPL(udp_abort);

struct proto udp_prot = {
	.name			= "UDP",
@@ -3311,7 +3310,7 @@ void *udp_seq_start(struct seq_file *seq, loff_t *pos)

	return *pos ? udp_get_idx(seq, *pos-1) : SEQ_START_TOKEN;
}
EXPORT_SYMBOL(udp_seq_start);
EXPORT_IPV6_MOD(udp_seq_start);

void *udp_seq_next(struct seq_file *seq, void *v, loff_t *pos)
{
@@ -3325,7 +3324,7 @@ void *udp_seq_next(struct seq_file *seq, void *v, loff_t *pos)
	++*pos;
	return sk;
}
EXPORT_SYMBOL(udp_seq_next);
EXPORT_IPV6_MOD(udp_seq_next);

void udp_seq_stop(struct seq_file *seq, void *v)
{
@@ -3337,7 +3336,7 @@ void udp_seq_stop(struct seq_file *seq, void *v)
	if (state->bucket <= udptable->mask)
		spin_unlock_bh(&udptable->hash[state->bucket].lock);
}
EXPORT_SYMBOL(udp_seq_stop);
EXPORT_IPV6_MOD(udp_seq_stop);

/* ------------------------------------------------------------------------ */
static void udp4_format_sock(struct sock *sp, struct seq_file *f,
@@ -3616,7 +3615,7 @@ const struct seq_operations udp_seq_ops = {
	.stop		= udp_seq_stop,
	.show		= udp4_seq_show,
};
EXPORT_SYMBOL(udp_seq_ops);
EXPORT_IPV6_MOD(udp_seq_ops);

static struct udp_seq_afinfo udp4_seq_afinfo = {
	.family		= AF_INET,