Skip to content

Commit

Permalink
net: remove bh disabling around percpu_counter accesses
Browse files Browse the repository at this point in the history
Shaohua Li made percpu_counter irq safe in commit 098faf5
("percpu_counter: make APIs irq safe")

We can safely remove BH disable/enable sections around various
percpu_counter manipulations.

Signed-off-by: Eric Dumazet <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
Eric Dumazet authored and davem330 committed Jan 20, 2017
1 parent 0a32788 commit c2a2efb
Show file tree
Hide file tree
Showing 6 changed files with 3 additions and 23 deletions.
9 changes: 1 addition & 8 deletions include/net/dst_ops.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,19 +46,12 @@ static inline int dst_entries_get_fast(struct dst_ops *dst)

static inline int dst_entries_get_slow(struct dst_ops *dst)
{
int res;

local_bh_disable();
res = percpu_counter_sum_positive(&dst->pcpuc_entries);
local_bh_enable();
return res;
return percpu_counter_sum_positive(&dst->pcpuc_entries);
}

static inline void dst_entries_add(struct dst_ops *dst, int val)
{
local_bh_disable();
percpu_counter_add(&dst->pcpuc_entries, val);
local_bh_enable();
}

static inline int dst_entries_init(struct dst_ops *dst)
Expand Down
8 changes: 1 addition & 7 deletions include/net/inet_frag.h
Original file line number Diff line number Diff line change
Expand Up @@ -164,13 +164,7 @@ static inline void add_frag_mem_limit(struct netns_frags *nf, int i)

static inline unsigned int sum_frag_mem_limit(struct netns_frags *nf)
{
unsigned int res;

local_bh_disable();
res = percpu_counter_sum_positive(&nf->mem);
local_bh_enable();

return res;
return percpu_counter_sum_positive(&nf->mem);
}

/* RFC 3168 support :
Expand Down
3 changes: 1 addition & 2 deletions net/ipv4/inet_connection_sock.c
Original file line number Diff line number Diff line change
Expand Up @@ -836,9 +836,8 @@ void inet_csk_destroy_sock(struct sock *sk)

sk_refcnt_debug_release(sk);

local_bh_disable();
percpu_counter_dec(sk->sk_prot->orphan_count);
local_bh_enable();

sock_put(sk);
}
EXPORT_SYMBOL(inet_csk_destroy_sock);
Expand Down
2 changes: 0 additions & 2 deletions net/ipv4/proc.c
Original file line number Diff line number Diff line change
Expand Up @@ -57,10 +57,8 @@ static int sockstat_seq_show(struct seq_file *seq, void *v)
unsigned int frag_mem;
int orphans, sockets;

local_bh_disable();
orphans = percpu_counter_sum_positive(&tcp_orphan_count);
sockets = proto_sockets_allocated_sum_positive(&tcp_prot);
local_bh_enable();

socket_seq_show(seq);
seq_printf(seq, "TCP: inuse %d orphan %d tw %d alloc %d mem %ld\n",
Expand Down
2 changes: 0 additions & 2 deletions net/ipv4/tcp.c
Original file line number Diff line number Diff line change
Expand Up @@ -420,9 +420,7 @@ void tcp_init_sock(struct sock *sk)
sk->sk_sndbuf = sysctl_tcp_wmem[1];
sk->sk_rcvbuf = sysctl_tcp_rmem[1];

local_bh_disable();
sk_sockets_allocated_inc(sk);
local_bh_enable();
}
EXPORT_SYMBOL(tcp_init_sock);

Expand Down
2 changes: 0 additions & 2 deletions net/ipv4/tcp_ipv4.c
Original file line number Diff line number Diff line change
Expand Up @@ -1887,9 +1887,7 @@ void tcp_v4_destroy_sock(struct sock *sk)
tcp_free_fastopen_req(tp);
tcp_saved_syn_free(tp);

local_bh_disable();
sk_sockets_allocated_dec(sk);
local_bh_enable();
}
EXPORT_SYMBOL(tcp_v4_destroy_sock);

Expand Down

0 comments on commit c2a2efb

Please sign in to comment.