From patchwork Fri Aug 17 13:38:36 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Slaby X-Patchwork-Id: 178207 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 BACB62C0093 for ; Fri, 17 Aug 2012 23:46:41 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753607Ab2HQNq0 (ORCPT ); Fri, 17 Aug 2012 09:46:26 -0400 Received: from mail.pripojeni.net ([178.22.112.14]:59303 "EHLO smtp.pripojeni.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753049Ab2HQNqV (ORCPT ); Fri, 17 Aug 2012 09:46:21 -0400 X-Greylist: delayed 455 seconds by postgrey-1.27 at vger.kernel.org; Fri, 17 Aug 2012 09:46:20 EDT Received: from anemoi.localdomain ([178.22.113.142]) by smtp.pripojeni.net (Kerio Connect 7.2.2); Fri, 17 Aug 2012 15:38:37 +0200 From: Jiri Slaby To: davem@davemloft.net Cc: netdev@vger.kernel.org, jirislaby@gmail.com, linux-kernel@vger.kernel.org, Jiri Slaby , Priyanka Jain Subject: [PATCH] NET: xfrm, use correct rcu dereference helper Date: Fri, 17 Aug 2012 15:38:36 +0200 Message-Id: <1345210716-24556-1-git-send-email-jslaby@suse.cz> X-Mailer: git-send-email 1.7.11.5 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Use rcu_dereference_bh while holding bh rcu lock. Otherwise we get: =============================== [ INFO: suspicious RCU usage. ] 3.6.0-rc1-next-20120816+ #10 Not tainted ------------------------------- net/xfrm/xfrm_policy.c:2504 suspicious rcu_dereference_check() usage! Signed-off-by: Jiri Slaby Cc: Priyanka Jain --- net/xfrm/xfrm_policy.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c index 5ad4d2c..6405764 100644 --- a/net/xfrm/xfrm_policy.c +++ b/net/xfrm/xfrm_policy.c @@ -2501,11 +2501,11 @@ static void __net_init xfrm_dst_ops_init(struct net *net) struct xfrm_policy_afinfo *afinfo; rcu_read_lock_bh(); - afinfo = rcu_dereference(xfrm_policy_afinfo[AF_INET]); + afinfo = rcu_dereference_bh(xfrm_policy_afinfo[AF_INET]); if (afinfo) net->xfrm.xfrm4_dst_ops = *afinfo->dst_ops; #if IS_ENABLED(CONFIG_IPV6) - afinfo = rcu_dereference(xfrm_policy_afinfo[AF_INET6]); + afinfo = rcu_dereference_bh(xfrm_policy_afinfo[AF_INET6]); if (afinfo) net->xfrm.xfrm6_dst_ops = *afinfo->dst_ops; #endif