From patchwork Tue Mar 31 18:01:45 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cong Wang X-Patchwork-Id: 456716 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id A563A1400DD for ; Wed, 1 Apr 2015 05:02:58 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="verification failed; unprotected key" header.d=gmail.com header.i=@gmail.com header.b=njUCsm/Z; dkim-adsp=none (unprotected policy); dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753023AbbCaSCx (ORCPT ); Tue, 31 Mar 2015 14:02:53 -0400 Received: from mail-pd0-f173.google.com ([209.85.192.173]:34999 "EHLO mail-pd0-f173.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752128AbbCaSCw (ORCPT ); Tue, 31 Mar 2015 14:02:52 -0400 Received: by pddn5 with SMTP id n5so28038723pdd.2 for ; Tue, 31 Mar 2015 11:02:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id; bh=vL2fFnnKHgQ7migdM9uDwBU2uIPAJrXJB1JatOPUy5A=; b=njUCsm/ZtelakixSslIfPu4XTkbfho8HT4d9T0cYvuIV9ZEWFUQAG8Yr/XJGTUlbUp 2fs8v4C2VKehJOEmN2eQP9hGX6CzqLVv+i+nkr1yw2DJmg/yeQl8yui0l6MIUuNixRM7 ddk3XmEqZqzDZnb5wJ0yKiY5+FZ35ZY6dFW99HlHkalUSxElwIfPV7QZC9HTSM2HZ6bY dZDCqqCmZOF9VqJXyXQFZcMEViZRme7A0HD1gkIq901MdSbYMMC2dXMR4qzdzwHTmT0U Y9nwFZH/4sSG5nvaCSXT4GmGDHURDNKMMn4K2nmhe0hymfSqRnIwxHu1TBpcr9GPmTHx AahQ== X-Received: by 10.68.132.194 with SMTP id ow2mr70185444pbb.51.1427824971520; Tue, 31 Mar 2015 11:02:51 -0700 (PDT) Received: from localhost.net ([8.25.197.27]) by mx.google.com with ESMTPSA id fk4sm14010748pab.48.2015.03.31.11.02.49 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 31 Mar 2015 11:02:50 -0700 (PDT) From: Cong Wang To: netdev@vger.kernel.org Cc: Cong Wang , Hannes Frederic Sowa Subject: [PATCH RESEND net] ipv4: take rtnl_lock and mark mrt table as freed on namespace cleanup Date: Tue, 31 Mar 2015 11:01:45 -0700 Message-Id: <1427824907-13331-1-git-send-email-xiyou.wangcong@gmail.com> X-Mailer: git-send-email 1.8.3.1 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This is the IPv4 part for commit 905a6f96a1b1 (ipv6: take rtnl_lock and mark mrt6 table as freed on namespace cleanup). Cc: Hannes Frederic Sowa Acked-by: Hannes Frederic Sowa Signed-off-by: Cong Wang --- net/ipv4/ipmr.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/net/ipv4/ipmr.c b/net/ipv4/ipmr.c index 9282544..bc40115 100644 --- a/net/ipv4/ipmr.c +++ b/net/ipv4/ipmr.c @@ -278,10 +278,12 @@ static void __net_exit ipmr_rules_exit(struct net *net) { struct mr_table *mrt, *next; + rtnl_lock(); list_for_each_entry_safe(mrt, next, &net->ipv4.mr_tables, list) { list_del(&mrt->list); ipmr_free_table(mrt); } + rtnl_unlock(); fib_rules_unregister(net->ipv4.mr_rules_ops); } #else @@ -308,7 +310,10 @@ static int __net_init ipmr_rules_init(struct net *net) static void __net_exit ipmr_rules_exit(struct net *net) { + rtnl_lock(); ipmr_free_table(net->ipv4.mrt); + net->ipv4.mrt = NULL; + rtnl_unlock(); } #endif