From patchwork Sat Dec 3 18:38:47 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jesse Gross X-Patchwork-Id: 129105 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 77E221007D4 for ; Sun, 4 Dec 2011 05:39:12 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754196Ab1LCSjD (ORCPT ); Sat, 3 Dec 2011 13:39:03 -0500 Received: from mail-iy0-f174.google.com ([209.85.210.174]:36442 "EHLO mail-iy0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753971Ab1LCSjA (ORCPT ); Sat, 3 Dec 2011 13:39:00 -0500 Received: by mail-iy0-f174.google.com with SMTP id e36so6004137iag.19 for ; Sat, 03 Dec 2011 10:38:59 -0800 (PST) Received: by 10.43.44.199 with SMTP id uh7mr3589325icb.25.1322937539829; Sat, 03 Dec 2011 10:38:59 -0800 (PST) Received: from umstead.nicira.com (173-167-111-49-sfba.hfc.comcastbusiness.net. [173.167.111.49]) by mx.google.com with ESMTPS id eh34sm51441513ibb.5.2011.12.03.10.38.58 (version=SSLv3 cipher=OTHER); Sat, 03 Dec 2011 10:38:59 -0800 (PST) From: Jesse Gross To: "David S. Miller" Cc: netdev@vger.kernel.org, dev@openvswitch.org, Pravin B Shelar Subject: [PATCH v3 2/6] genetlink: Add lockdep_genl_is_held(). Date: Sat, 3 Dec 2011 10:38:47 -0800 Message-Id: <1322937531-8071-3-git-send-email-jesse@nicira.com> X-Mailer: git-send-email 1.7.5.4 In-Reply-To: <1322937531-8071-1-git-send-email-jesse@nicira.com> References: <1322937531-8071-1-git-send-email-jesse@nicira.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Pravin B Shelar Open vSwitch uses genl_mutex locking to protect datapath data-structures like flow-table, flow-actions. Following patch adds lockdep_genl_is_held() which is used for rcu annotation to prove locking. Signed-off-by: Pravin B Shelar Signed-off-by: Jesse Gross --- v2/v3: Unchanged. --- include/linux/genetlink.h | 3 +++ net/netlink/genetlink.c | 8 ++++++++ 2 files changed, 11 insertions(+), 0 deletions(-) diff --git a/include/linux/genetlink.h b/include/linux/genetlink.h index 61549b2..59311ad 100644 --- a/include/linux/genetlink.h +++ b/include/linux/genetlink.h @@ -85,6 +85,9 @@ enum { /* All generic netlink requests are serialized by a global lock. */ extern void genl_lock(void); extern void genl_unlock(void); +#ifdef CONFIG_PROVE_LOCKING +extern int lockdep_genl_is_held(void); +#endif #endif /* __KERNEL__ */ diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c index 8a36599..28453ae 100644 --- a/net/netlink/genetlink.c +++ b/net/netlink/genetlink.c @@ -33,6 +33,14 @@ void genl_unlock(void) } EXPORT_SYMBOL(genl_unlock); +#ifdef CONFIG_PROVE_LOCKING +int lockdep_genl_is_held(void) +{ + return lockdep_is_held(&genl_mutex); +} +EXPORT_SYMBOL(lockdep_genl_is_held); +#endif + #define GENL_FAM_TAB_SIZE 16 #define GENL_FAM_TAB_MASK (GENL_FAM_TAB_SIZE - 1)