[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200529114912.GC11244@42.do-not-panic.com>
Date: Fri, 29 May 2020 11:49:12 +0000
From: Luis Chamberlain <mcgrof@...nel.org>
To: Kees Cook <keescook@...omium.org>
Cc: jack@...e.cz, rafael@...nel.org, airlied@...ux.ie,
benh@...nel.crashing.org, amir73il@...il.com, clemens@...isch.de,
dri-devel@...ts.freedesktop.org, joseph.qi@...ux.alibaba.com,
sfr@...b.auug.org.au, mark@...heh.com, rdna@...com,
yzaikin@...gle.com, arnd@...db.de, intel-gfx@...ts.freedesktop.org,
julia.lawall@...6.fr, jlbec@...lplan.org, nixiaoming@...wei.com,
vbabka@...e.cz, axboe@...nel.dk, tytso@....edu,
gregkh@...uxfoundation.org, linux-kernel@...r.kernel.org,
ebiederm@...ssion.com, akpm@...ux-foundation.org,
linuxppc-dev@...ts.ozlabs.org, ocfs2-devel@....oracle.com,
viro@...iv.linux.org.uk
Subject: Re: [Intel-gfx] [PATCH 06/13] ocfs2: use new sysctl subdir helper
register_sysctl_subdir()
On Fri, May 29, 2020 at 01:23:19AM -0700, Kees Cook wrote:
> On Fri, May 29, 2020 at 07:41:01AM +0000, Luis Chamberlain wrote:
> > This simplifies the code considerably. The following coccinelle
> > SmPL grammar rule was used to transform this code.
> >
> > // pycocci sysctl-subdir.cocci fs/ocfs2/stackglue.c
> >
> > @c1@
> > expression E1;
> > identifier subdir, sysctls;
> > @@
> >
> > static struct ctl_table subdir[] = {
> > {
> > .procname = E1,
> > .maxlen = 0,
> > .mode = 0555,
> > .child = sysctls,
> > },
> > { }
> > };
> >
> > @c2@
> > identifier c1.subdir;
> >
> > expression E2;
> > identifier base;
> > @@
> >
> > static struct ctl_table base[] = {
> > {
> > .procname = E2,
> > .maxlen = 0,
> > .mode = 0555,
> > .child = subdir,
> > },
> > { }
> > };
> >
> > @c3@
> > identifier c2.base;
> > identifier header;
> > @@
> >
> > header = register_sysctl_table(base);
> >
> > @r1 depends on c1 && c2 && c3@
> > expression c1.E1;
> > identifier c1.subdir, c1.sysctls;
> > @@
> >
> > -static struct ctl_table subdir[] = {
> > - {
> > - .procname = E1,
> > - .maxlen = 0,
> > - .mode = 0555,
> > - .child = sysctls,
> > - },
> > - { }
> > -};
> >
> > @r2 depends on c1 && c2 && c3@
> > identifier c1.subdir;
> >
> > expression c2.E2;
> > identifier c2.base;
> > @@
> > -static struct ctl_table base[] = {
> > - {
> > - .procname = E2,
> > - .maxlen = 0,
> > - .mode = 0555,
> > - .child = subdir,
> > - },
> > - { }
> > -};
> >
> > @r3 depends on c1 && c2 && c3@
> > expression c1.E1;
> > identifier c1.sysctls;
> > expression c2.E2;
> > identifier c2.base;
> > identifier c3.header;
> > @@
> >
> > header =
> > -register_sysctl_table(base);
> > +register_sysctl_subdir(E2, E1, sysctls);
> >
> > Generated-by: Coccinelle SmPL
> >
> > Signed-off-by: Luis Chamberlain <mcgrof@...nel.org>
> > ---
> > fs/ocfs2/stackglue.c | 27 ++++-----------------------
> > 1 file changed, 4 insertions(+), 23 deletions(-)
> >
> > diff --git a/fs/ocfs2/stackglue.c b/fs/ocfs2/stackglue.c
> > index a191094694c6..addafced7f59 100644
> > --- a/fs/ocfs2/stackglue.c
> > +++ b/fs/ocfs2/stackglue.c
> > @@ -677,28 +677,8 @@ static struct ctl_table ocfs2_mod_table[] = {
> > },
> > { }
> > };
> > -
> > -static struct ctl_table ocfs2_kern_table[] = {
> > - {
> > - .procname = "ocfs2",
> > - .data = NULL,
> > - .maxlen = 0,
> > - .mode = 0555,
> > - .child = ocfs2_mod_table
> > - },
> > - { }
> > -};
> > -
> > -static struct ctl_table ocfs2_root_table[] = {
> > - {
> > - .procname = "fs",
> > - .data = NULL,
> > - .maxlen = 0,
> > - .mode = 0555,
> > - .child = ocfs2_kern_table
> > - },
> > - { }
> > -};
> > + .data = NULL,
> > + .data = NULL,
>
> The conversion script doesn't like the .data field assignments. ;)
>
> Was this series built with allmodconfig? I would have expected this to
> blow up very badly. :)
Yikes, sense, you're right. Nope, I left the random config tests to
0day. Will fix, thanks!
Luis
Powered by blists - more mailing lists