Skip to content

Commit

Permalink
udp: Clean up some functions.
Browse files Browse the repository at this point in the history
This patch adds no functional change and cleans up some functions
that the following patches touch around so that we make them tidy
and easy to review/revert.  The change is mainly to keep reverse
christmas tree order.

Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Kuniyuki Iwashima authored and David S. Miller committed Nov 16, 2022
1 parent e882256 commit 919dfa0
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 20 deletions.
39 changes: 23 additions & 16 deletions net/ipv4/udp.c
Original file line number Diff line number Diff line change
Expand Up @@ -232,16 +232,16 @@ static int udp_reuseport_add_sock(struct sock *sk, struct udp_hslot *hslot)
int udp_lib_get_port(struct sock *sk, unsigned short snum,
unsigned int hash2_nulladdr)
{
struct udp_hslot *hslot, *hslot2;
struct udp_table *udptable = sk->sk_prot->h.udp_table;
int error = 1;
struct udp_hslot *hslot, *hslot2;
struct net *net = sock_net(sk);
int error = 1;

if (!snum) {
DECLARE_BITMAP(bitmap, PORTS_PER_CHAIN);
unsigned short first, last;
int low, high, remaining;
unsigned int rand;
unsigned short first, last;
DECLARE_BITMAP(bitmap, PORTS_PER_CHAIN);

inet_get_local_port_range(net, &low, &high);
remaining = (high - low) + 1;
Expand Down Expand Up @@ -2519,10 +2519,13 @@ static struct sock *__udp4_lib_mcast_demux_lookup(struct net *net,
__be16 rmt_port, __be32 rmt_addr,
int dif, int sdif)
{
struct sock *sk, *result;
unsigned short hnum = ntohs(loc_port);
unsigned int slot = udp_hashfn(net, hnum, udp_table.mask);
struct udp_hslot *hslot = &udp_table.hash[slot];
struct sock *sk, *result;
struct udp_hslot *hslot;
unsigned int slot;

slot = udp_hashfn(net, hnum, udp_table.mask);
hslot = &udp_table.hash[slot];

/* Do not bother scanning a too big list */
if (hslot->count > 10)
Expand Down Expand Up @@ -2550,14 +2553,18 @@ static struct sock *__udp4_lib_demux_lookup(struct net *net,
__be16 rmt_port, __be32 rmt_addr,
int dif, int sdif)
{
unsigned short hnum = ntohs(loc_port);
unsigned int hash2 = ipv4_portaddr_hash(net, loc_addr, hnum);
unsigned int slot2 = hash2 & udp_table.mask;
struct udp_hslot *hslot2 = &udp_table.hash2[slot2];
INET_ADDR_COOKIE(acookie, rmt_addr, loc_addr);
const __portpair ports = INET_COMBINED_PORTS(rmt_port, hnum);
unsigned short hnum = ntohs(loc_port);
unsigned int hash2, slot2;
struct udp_hslot *hslot2;
__portpair ports;
struct sock *sk;

hash2 = ipv4_portaddr_hash(net, loc_addr, hnum);
slot2 = hash2 & udp_table.mask;
hslot2 = &udp_table.hash2[slot2];
ports = INET_COMBINED_PORTS(rmt_port, hnum);

udp_portaddr_for_each_entry_rcu(sk, &hslot2->head) {
if (inet_match(net, sk, acookie, ports, dif, sdif))
return sk;
Expand Down Expand Up @@ -2970,10 +2977,10 @@ EXPORT_SYMBOL(udp_prot);

static struct sock *udp_get_first(struct seq_file *seq, int start)
{
struct sock *sk;
struct udp_seq_afinfo *afinfo;
struct udp_iter_state *state = seq->private;
struct net *net = seq_file_net(seq);
struct udp_seq_afinfo *afinfo;
struct sock *sk;

if (state->bpf_seq_afinfo)
afinfo = state->bpf_seq_afinfo;
Expand Down Expand Up @@ -3004,9 +3011,9 @@ static struct sock *udp_get_first(struct seq_file *seq, int start)

static struct sock *udp_get_next(struct seq_file *seq, struct sock *sk)
{
struct udp_seq_afinfo *afinfo;
struct udp_iter_state *state = seq->private;
struct net *net = seq_file_net(seq);
struct udp_seq_afinfo *afinfo;

if (state->bpf_seq_afinfo)
afinfo = state->bpf_seq_afinfo;
Expand Down Expand Up @@ -3062,8 +3069,8 @@ EXPORT_SYMBOL(udp_seq_next);

void udp_seq_stop(struct seq_file *seq, void *v)
{
struct udp_seq_afinfo *afinfo;
struct udp_iter_state *state = seq->private;
struct udp_seq_afinfo *afinfo;

if (state->bpf_seq_afinfo)
afinfo = state->bpf_seq_afinfo;
Expand Down
12 changes: 8 additions & 4 deletions net/ipv6/udp.c
Original file line number Diff line number Diff line change
Expand Up @@ -1064,12 +1064,16 @@ static struct sock *__udp6_lib_demux_lookup(struct net *net,
int dif, int sdif)
{
unsigned short hnum = ntohs(loc_port);
unsigned int hash2 = ipv6_portaddr_hash(net, loc_addr, hnum);
unsigned int slot2 = hash2 & udp_table.mask;
struct udp_hslot *hslot2 = &udp_table.hash2[slot2];
const __portpair ports = INET_COMBINED_PORTS(rmt_port, hnum);
unsigned int hash2, slot2;
struct udp_hslot *hslot2;
__portpair ports;
struct sock *sk;

hash2 = ipv6_portaddr_hash(net, loc_addr, hnum);
slot2 = hash2 & udp_table.mask;
hslot2 = &udp_table.hash2[slot2];
ports = INET_COMBINED_PORTS(rmt_port, hnum);

udp_portaddr_for_each_entry_rcu(sk, &hslot2->head) {
if (sk->sk_state == TCP_ESTABLISHED &&
inet6_match(net, sk, rmt_addr, loc_addr, ports, dif, sdif))
Expand Down

0 comments on commit 919dfa0

Please sign in to comment.