]> git.baikalelectronics.ru Git - kernel.git/commit
net: memcontrol: defer call to mem_cgroup_sk_alloc()
authorEric Dumazet <edumazet@google.com>
Mon, 9 Oct 2017 04:44:51 +0000 (21:44 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 10 Oct 2017 03:55:01 +0000 (20:55 -0700)
commitc8ae3b7e40879e56e385bbd231906708458a52ad
treebef7fc6c61201ca2b6d913bab2686a38fda039d2
parente303c244204c37c2bb6d80ad2c2f7994e045fae8
net: memcontrol: defer call to mem_cgroup_sk_alloc()

Instead of calling mem_cgroup_sk_alloc() from BH context,
it is better to call it from inet_csk_accept() in process context.

Not only this removes code in mem_cgroup_sk_alloc(), but it also
fixes a bug since listener might have been dismantled and css_get()
might cause a use-after-free.

Fixes: d3095cf46591 ("tcp: do not lock listener to process SYN packets")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Tejun Heo <tj@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
mm/memcontrol.c
net/core/sock.c
net/ipv4/inet_connection_sock.c