Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c2a2efbb authored by Eric Dumazet's avatar Eric Dumazet Committed by David S. Miller
Browse files

net: remove bh disabling around percpu_counter accesses



Shaohua Li made percpu_counter irq safe in commit 098faf58
("percpu_counter: make APIs irq safe")

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

Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 0a327889
Loading
Loading
Loading
Loading
+1 −8
Original line number Diff line number Diff line
@@ -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)
+1 −7
Original line number Diff line number Diff line
@@ -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 :
+1 −2
Original line number Diff line number Diff line
@@ -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);
+0 −2
Original line number Diff line number Diff line
@@ -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",
+0 −2
Original line number Diff line number Diff line
@@ -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);

Loading