From: Andrew Morton <akpm@linux-foundation.org>
To: "George Spelvin" <linux@horizon.com>
Cc: linux-kernel@vger.kernel.org, rdunlap@infradead.org,
rusty@rustcorp.com.au
Subject: Re: [PATCH] [PATCH] VERIFY_OCTAL_PERMISSIONS: Move to <linux/sysfs.h> where it belongs
Date: Fri, 5 Dec 2014 17:28:02 -0800 [thread overview]
Message-ID: <20141205172802.4c56cbd6.akpm@linux-foundation.org> (raw)
In-Reply-To: <20141206011802.19570.qmail@ns.horizon.com>
On 5 Dec 2014 20:18:02 -0500 "George Spelvin" <linux@horizon.com> wrote:
> > VERIFY_OCTAL_PERMISSIONS() sticks out like a sore thumb in kernel.h.
> > How about we move it into sysfs.h?
>
> Something like this, you mean?
Kinda.
> The <linux/types.h> in moduleparam.h is needed for one function
> prototype that passes s16 parameters. My first reaction is
> to wonder if that can be gotten rid of, too.
>
> -----
This shouldn't be here because "^---" is considered "end of changelog".
> It's the only user of <linux/bug.h> in kernel.h, so that reduces
> the compile-time cost of #include <linux/kernel.h>
>
> One necessary consequent change in <linux/moduleparam.h>.
>
> Suggested-by: Andrew Morton <akpm@linux-foundation.org>
> Signed-off-by: George Spelvin <linux@horizon.com>
>
> ...
>
> diff --git a/include/linux/kernel.h b/include/linux/kernel.h
> index 3d770f55..07080aa2 100644
> --- a/include/linux/kernel.h
> +++ b/include/linux/kernel.h
> @@ -804,14 +804,4 @@ static inline void ftrace_dump(enum ftrace_dump_mode oops_dump_mode) { }
> # define REBUILD_DUE_TO_FTRACE_MCOUNT_RECORD
> #endif
>
> -/* Permissions on a sysfs file: you didn't miss the 0 prefix did you? */
> -#define VERIFY_OCTAL_PERMISSIONS(perms) \
> - (BUILD_BUG_ON_ZERO((perms) < 0) + \
> - BUILD_BUG_ON_ZERO((perms) > 0777) + \
> - /* User perms >= group perms >= other perms */ \
> - BUILD_BUG_ON_ZERO(((perms) >> 6) < (((perms) >> 3) & 7)) + \
> - BUILD_BUG_ON_ZERO((((perms) >> 3) & 7) < ((perms) & 7)) + \
> - /* Other writable? Generally considered a bad idea. */ \
> - BUILD_BUG_ON_ZERO((perms) & 2) + \
> - (perms))
> #endif
> diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h
> index f97d0dbb..9f213542 100644
> --- a/include/linux/sysfs.h
> +++ b/include/linux/sysfs.h
> @@ -70,6 +70,17 @@ struct attribute_group {
> * for examples..
> */
>
> +/* Permissions on a sysfs file: you didn't miss the 0 prefix did you? */
> +#define VERIFY_OCTAL_PERMISSIONS(perms) \
> + (BUILD_BUG_ON_ZERO((perms) < 0) + \
> + BUILD_BUG_ON_ZERO((perms) > 0777) + \
> + /* User perms >= group perms >= other perms */ \
> + BUILD_BUG_ON_ZERO(((perms) >> 6) < (((perms) >> 3) & 7)) + \
> + BUILD_BUG_ON_ZERO((((perms) >> 3) & 7) < ((perms) & 7)) + \
> + /* Other writable? Generally considered a bad idea. */ \
> + BUILD_BUG_ON_ZERO((perms) & 2) + \
> + (perms))
> +
Let's include bug.h into sysfs.h.
> #define __ATTR(_name, _mode, _show, _store) { \
> .attr = {.name = __stringify(_name), \
> .mode = VERIFY_OCTAL_PERMISSIONS(_mode) }, \
> diff --git a/include/linux/moduleparam.h b/include/linux/moduleparam.h
> index 1c9effa2..974097df 100644
> --- a/include/linux/moduleparam.h
> +++ b/include/linux/moduleparam.h
> @@ -1,9 +1,9 @@
> #ifndef _LINUX_MODULE_PARAMS_H
> #define _LINUX_MODULE_PARAMS_H
> /* (C) Copyright 2001, 2002 Rusty Russell IBM Corporation */
> -#include <linux/init.h>
> #include <linux/stringify.h>
> -#include <linux/kernel.h>
> +#include <linux/sysfs.h>
> +#include <linux/types.h>
Removing the kernel.h inclusion is good, but risky. Are you sure
there's nothing in moduleparam.h which uses kernel.h things?
> /* You can override this manually, but generally this should match the
> module name. */
next prev parent reply other threads:[~2014-12-06 1:27 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-06 0:07 [PATCH] VERIFY_OCTAL_PERMISSIONS needs <linux/bug.h> George Spelvin
2014-12-06 0:12 ` Randy Dunlap
2014-12-06 0:15 ` Andrew Morton
2014-12-06 1:18 ` [PATCH] [PATCH] VERIFY_OCTAL_PERMISSIONS: Move to <linux/sysfs.h> where it belongs George Spelvin
2014-12-06 1:28 ` Andrew Morton [this message]
2014-12-06 2:49 ` George Spelvin
2014-12-06 2:53 ` Joe Perches
2014-12-06 2:57 ` Jeff Kirsher
2014-12-06 2:58 ` Andrew Morton
2014-12-06 3:23 ` [PATCH v2] " George Spelvin
2014-12-15 3:56 ` Rusty Russell
2014-12-15 23:09 ` Stephen Rothwell
2014-12-16 0:14 ` George Spelvin
2014-12-16 0:31 ` Stephen Rothwell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20141205172802.4c56cbd6.akpm@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@horizon.com \
--cc=rdunlap@infradead.org \
--cc=rusty@rustcorp.com.au \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.