Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753439AbbGOLPY (ORCPT ); Wed, 15 Jul 2015 07:15:24 -0400 Received: from mail-wi0-f181.google.com ([209.85.212.181]:33599 "EHLO mail-wi0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751713AbbGOLPU (ORCPT ); Wed, 15 Jul 2015 07:15:20 -0400 From: Michal Hocko To: Andrew Morton , Johannes Weiner Cc: Vladimir Davydov , Tejun Heo , , LKML , Michal Hocko Subject: [PATCH 5/5] memcg, tcp_kmem: check for cg_proto in sock_update_memcg Date: Wed, 15 Jul 2015 13:14:45 +0200 Message-Id: <1436958885-18754-6-git-send-email-mhocko@kernel.org> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1436958885-18754-1-git-send-email-mhocko@kernel.org> References: <1436958885-18754-1-git-send-email-mhocko@kernel.org> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1420 Lines: 39 From: Michal Hocko sk_prot->proto_cgroup is allowed to return NULL but sock_update_memcg doesn't check for NULL. The function relies on the mem_cgroup_is_root check because we shouldn't get NULL otherwise because mem_cgroup_from_task will always return !NULL. All other callers are checking for NULL and we can safely replace mem_cgroup_is_root() check by cg_proto != NULL which will be more straightforward (proto_cgroup returns NULL for the root memcg already). Reviewed-by: Vladimir Davydov Signed-off-by: Michal Hocko --- mm/memcontrol.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 5d4fba8cbdd0..cf9fb1f41831 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -315,8 +315,7 @@ void sock_update_memcg(struct sock *sk) rcu_read_lock(); memcg = mem_cgroup_from_task(current); cg_proto = sk->sk_prot->proto_cgroup(memcg); - if (!mem_cgroup_is_root(memcg) && - memcg_proto_active(cg_proto) && + if (cg_proto && memcg_proto_active(cg_proto) && css_tryget_online(&memcg->css)) { sk->sk_cgrp = cg_proto; } -- 2.1.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/