linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Geert Uytterhoeven <geert@linux-m68k.org>
To: Miguel Ojeda Sandonis <miguel.ojeda.sandonis@gmail.com>
Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>,
	"torvalds@linux-foundation.org" <torvalds@linux-foundation.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	efriedma@codeaurora.org, Christopher Li <sparse@chrisli.org>,
	Kees Cook <keescook@chromium.org>, Ingo Molnar <mingo@kernel.org>,
	Arnd Bergmann <arnd@arndb.de>,
	Greg KH <gregkh@linuxfoundation.org>,
	Masahiro Yamada <yamada.masahiro@socionext.com>,
	Joe Perches <joe@perches.com>,
	asmadeus@codewreck.org,
	Nick Desaulniers <ndesaulniers@google.com>
Subject: Re: [PATCH 2/7] Compiler Attributes: use the no-underscores syntax
Date: Mon, 3 Sep 2018 08:42:26 +0200	[thread overview]
Message-ID: <CAMuHMdV2iDHTJh2PbBzzWNSYLH-hudMB5CWzEEBormGHPMegcw@mail.gmail.com> (raw)
In-Reply-To: <CANiq72mDH1hPTAuB=zmX0uiVEx_mWS-3GO26YUSKXPHRREYjjA@mail.gmail.com>

Hi Miguel,

On Sat, Sep 1, 2018 at 12:41 AM Miguel Ojeda
<miguel.ojeda.sandonis@gmail.com> wrote:
> On Sat, Sep 1, 2018 at 12:10 AM, Miguel Ojeda
> <miguel.ojeda.sandonis@gmail.com> wrote:
> > arch/parisc/boot/compressed/misc.c:#define malloc       malloc_gzip
> > include/linux/decompress/mm.h:#define malloc(a) kmalloc(a, GFP_KERNEL)
> > lib/inflate.c:#define malloc(a) kmalloc(a, GFP_KERNEL)
> > include/linux/compiler_types.h:#define noinline_for_stack noinline
> > include/linux/raid/pq.h:#define noinline __attribute__((noinline))
> > tools/include/linux/compiler.h:#define noinline
> > arch/mips/sgi-ip27/ip27-reset.c:#define noreturn while(1);
>
> A better list, searching for all attributes used anywhere in the kernel:
>
> git grep -E '^\s*#define\s+(address_space|alias|aligned|always_inline|assume_aligned|bitwise|bnd_legacy|cold|common|const|constructor|context|deprecated|designated_init|destructor|error|externally_visible|flatten|force|format|format|gnu_inline|hot|hotpatch|indirect_branch|latent_entropy|long_call|malloc|may_alias|mode|model|naked|nocast|noclone|noderef|noinline|no_instrument_function|nonnull|no_randomize_layout|noreturn|no_sanitize_address|optimize|packed|pure|randomize_layout|regparm|require_context|safe|section|syscall_linkage|target|tls_model|unused|used|user|vector_size|visibility|warning|warn_unused_result|weak)(\(|\s|$)'
>
> arch/mips/sgi-ip27/ip27-reset.c:#define noreturn while(1);
>                  /* Silence gcc.  */
> arch/parisc/boot/compressed/misc.c:#define malloc       malloc_gzip
> arch/powerpc/xmon/ansidecl.h:#define    const
> drivers/gpu/drm/nouveau/nvkm/subdev/bios/init.c:#define error(fmt,
> args...) bioslog(ERROR, fmt, ##args)
> include/linux/compiler_attributes.h:#define   noinline
> __attribute__((noinline))
> include/linux/decompress/mm.h:#define malloc(a) kmalloc(a, GFP_KERNEL)
> include/linux/raid/pq.h:#define noinline __attribute__((noinline))
> lib/inflate.c:#define malloc(a) kmalloc(a, GFP_KERNEL)
> tools/include/linux/compiler-gcc.h:#define  noinline
> __attribute__((noinline))
> tools/include/linux/compiler.h:#define noinline
> tools/testing/selftests/futex/include/logging.h:#define error(message,
> err, args...) \
>
> None of these should make a problem. And it would may avoid people
> using such common-name-macros in the future ;-)

That's very fragile.
Who knows all (current and future) attribute names by heart, and that defining
them could have such side effects?

At least "alias", "force", "format", "mode", "model", "optimize", "target" are
names I wouldn't hesitate to use as a macro name in a driver...

Gr{oetje,eeting}s,

                        Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

  reply	other threads:[~2018-09-03  6:42 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-31 17:05 [PATCH 1/7] Compiler Attributes: remove unused attributes Miguel Ojeda
2018-08-31 17:05 ` [PATCH 2/7] Compiler Attributes: use the no-underscores syntax Miguel Ojeda
2018-08-31 18:51   ` Nick Desaulniers
2018-08-31 19:17     ` Miguel Ojeda
2018-08-31 21:49   ` Rasmus Villemoes
2018-08-31 22:10     ` Miguel Ojeda
2018-08-31 22:40       ` Miguel Ojeda
2018-09-03  6:42         ` Geert Uytterhoeven [this message]
2018-09-03 10:40           ` Miguel Ojeda
2018-08-31 17:05 ` [PATCH 3/7] Compiler Attributes: remove unneeded tests Miguel Ojeda
2018-08-31 21:10   ` Nick Desaulniers
2018-09-01  8:16   ` kbuild test robot
2018-09-01  9:56   ` kbuild test robot
2018-08-31 17:05 ` [PATCH 4/7] Compiler Attributes: homogenize __must_be_array Miguel Ojeda
2018-08-31 21:16   ` Nick Desaulniers
2018-09-01  9:17   ` Luc Van Oostenryck
2018-09-01 12:11     ` Miguel Ojeda
2018-08-31 17:05 ` [PATCH 5/7] Compiler Attributes: naked was fixed in gcc 4.6 Miguel Ojeda
2018-08-31 19:48   ` Arnd Bergmann
2018-08-31 20:26     ` Miguel Ojeda
2018-08-31 17:05 ` [PATCH 6/7] Compiler Attributes: remove unneeded sparse (__CHECKER__) tests Miguel Ojeda
2018-08-31 21:38   ` Nick Desaulniers
2018-08-31 21:55     ` Miguel Ojeda
2018-08-31 22:39       ` Luc Van Oostenryck
2018-08-31 17:05 ` [PATCH 7/7] Compiler Attributes: use feature checks instead of version checks Miguel Ojeda
2018-08-31 23:07   ` Nick Desaulniers
2018-09-01 13:38     ` Miguel Ojeda
2018-09-01 18:39       ` Greg KH
2018-09-01 19:15         ` Miguel Ojeda
2018-09-01  9:24   ` kbuild test robot
2018-09-01  9:51   ` kbuild test robot
2018-09-01  9:56   ` Luc Van Oostenryck
2018-09-01 12:58     ` Miguel Ojeda
2018-09-01 10:14   ` Dominique Martinet
2018-09-01 12:55     ` Miguel Ojeda
2018-09-01 14:17       ` Dominique Martinet
2018-09-03 18:03         ` Miguel Ojeda
2018-08-31 17:27 ` [PATCH 1/7] Compiler Attributes: remove unused attributes Joe Perches
2018-08-31 18:43   ` Nick Desaulniers
2018-08-31 18:53     ` Joe Perches
2018-08-31 20:23     ` Miguel Ojeda
2018-08-31 21:27       ` Nick Desaulniers
2018-09-02 19:54         ` Arnd Bergmann
2018-09-03 11:16           ` Miguel Ojeda
2018-08-31 18:39 ` Nick Desaulniers

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=CAMuHMdV2iDHTJh2PbBzzWNSYLH-hudMB5CWzEEBormGHPMegcw@mail.gmail.com \
    --to=geert@linux-m68k.org \
    --cc=arnd@arndb.de \
    --cc=asmadeus@codewreck.org \
    --cc=efriedma@codeaurora.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=joe@perches.com \
    --cc=keescook@chromium.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@rasmusvillemoes.dk \
    --cc=miguel.ojeda.sandonis@gmail.com \
    --cc=mingo@kernel.org \
    --cc=ndesaulniers@google.com \
    --cc=sparse@chrisli.org \
    --cc=torvalds@linux-foundation.org \
    --cc=yamada.masahiro@socionext.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).