From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751630AbcBNQ2T (ORCPT ); Sun, 14 Feb 2016 11:28:19 -0500 Received: from mail2-relais-roc.national.inria.fr ([192.134.164.83]:1348 "EHLO mail2-relais-roc.national.inria.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751592AbcBNQ2K (ORCPT ); Sun, 14 Feb 2016 11:28:10 -0500 X-IronPort-AV: E=Sophos;i="5.22,446,1449529200"; d="scan'208";a="203054778" Date: Sun, 14 Feb 2016 17:28:08 +0100 (CET) From: Julia Lawall X-X-Sender: jll@localhost6.localdomain6 To: Nicolai Stange cc: Julia Lawall , Greg Kroah-Hartman , "Paul E. McKenney" , Alexander Viro , Jonathan Corbet , Jan Kara , Andrew Morton , Gilles Muller , Nicolas Palix , Michal Marek , linux-kernel@vger.kernel.org, cocci@systeme.lip6.fr Subject: Re: [PATCH v3 3/7] debugfs: add support for self-protecting attribute file fops In-Reply-To: <87d1rzk8kg.fsf@gmail.com> Message-ID: References: <87k2m8krhf.fsf@gmail.com> <8760xskrar.fsf@gmail.com> <87d1rzk8kg.fsf@gmail.com> User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org > >> diff --git a/scripts/coccinelle/api/debugfs/debugfs_simple_attr.cocci b/scripts/coccinelle/api/debugfs/debugfs_simple_attr.cocci > >> new file mode 100644 > >> index 0000000..bdc418d > >> --- /dev/null > >> +++ b/scripts/coccinelle/api/debugfs/debugfs_simple_attr.cocci > >> @@ -0,0 +1,68 @@ > >> +/// Could you drop the above line? > >> +/// Use DEFINE_DEBUGFS_ATTRIBUTE rather than DEFINE_SIMPLE_ATTRIBUTE > >> +/// for debugfs files. > >> +/// > >> +/// Rationale: DEFINE_SIMPLE_ATTRIBUTE + debugfs_create_file() > >> +/// imposes some significant overhead as compared to > >> +/// DEFINE_DEBUGFS_ATTRIBUTE + debugfs_create_file_unsafe(). For the above three lines that give more detail, please use //# thanks, julia > >> +// Copyright (C): 2016 Nicolai Stange > >> +// Options: --no-includes > >> +// > >> + > >> +virtual context > >> +virtual patch > >> +virtual org > >> +virtual report > >> + > >> +@dsa@ > >> +declarer name DEFINE_SIMPLE_ATTRIBUTE; > >> +identifier dsa_fops; > >> +expression dsa_get, dsa_set, dsa_fmt; > >> +position p; > >> +@@ > >> +DEFINE_SIMPLE_ATTRIBUTE@p(dsa_fops, dsa_get, dsa_set, dsa_fmt); > >> + > >> +@dcf@ > >> +expression name, mode, parent, data; > >> +identifier dsa.dsa_fops; > >> +@@ > >> +debugfs_create_file(name, mode, parent, data, &dsa_fops) > >> + > >> + > >> +@context_dsa depends on context && dcf@ > >> +declarer name DEFINE_DEBUGFS_ATTRIBUTE; > >> +identifier dsa.dsa_fops; > >> +expression dsa.dsa_get, dsa.dsa_set, dsa.dsa_fmt; > >> +@@ > >> +* DEFINE_SIMPLE_ATTRIBUTE(dsa_fops, dsa_get, dsa_set, dsa_fmt); > >> + > >> + > >> +@patch_dcf depends on patch expression@ > >> +expression name, mode, parent, data; > >> +identifier dsa.dsa_fops; > >> +@@ > >> +- debugfs_create_file(name, mode, parent, data, &dsa_fops) > >> ++ debugfs_create_file_unsafe(name, mode, parent, data, &dsa_fops) > >> + > >> +@patch_dsa depends on patch_dcf && patch@ > >> +identifier dsa.dsa_fops; > >> +expression dsa.dsa_get, dsa.dsa_set, dsa.dsa_fmt; > >> +@@ > >> +- DEFINE_SIMPLE_ATTRIBUTE(dsa_fops, dsa_get, dsa_set, dsa_fmt); > >> ++ DEFINE_DEBUGFS_ATTRIBUTE(dsa_fops, dsa_get, dsa_set, dsa_fmt); > >> + > >> + > >> +@script:python depends on org && dcf@ > >> +fops << dsa.dsa_fops; > >> +p << dsa.p; > >> +@@ > >> +msg="%s should be defined with DEFINE_DEBUGFS_ATTRIBUTE" % (fops) > >> +coccilib.org.print_todo(p[0], msg) > >> + > >> +@script:python depends on report && dcf@ > >> +fops << dsa.dsa_fops; > >> +p << dsa.p; > >> +@@ > >> +msg="WARNING: %s should be defined with DEFINE_DEBUGFS_ATTRIBUTE" % (fops) > >> +coccilib.report.print_report(p[0], msg) > >> -- > >> 2.7.1 > >> > >> >