linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Rikard Falkeborn <rikard.falkeborn@gmail.com>
To: rikard.falkeborn@gmail.com
Cc: akpm@linux-foundation.org, bp@alien8.de, joe@perches.com,
	johannes@sipsolutions.net, keescook@chromium.org,
	linux-kernel@vger.kernel.org, mingo@redhat.com,
	tglx@linutronix.de, yamada.masahiro@socionext.com,
	x86@kernel.org
Subject: [Patch v4 0/2] Add compile time sanity check of GENMASK inputs
Date: Wed,  9 Oct 2019 23:45:00 +0200	[thread overview]
Message-ID: <20191009214502.637875-1-rikard.falkeborn@gmail.com> (raw)
In-Reply-To: <20190811184938.1796-1-rikard.falkeborn@gmail.com>

Hello,

Add build time validity checks of GENMASK (and GENMASK_ULL) inputs.
The main differences from v3:

- Patch v3 1/3 was merged into Linus tree through the x86 tree and is
  not part of this series any longer.
- Disable the input check for GCC < 4.9 due to a gcc bug.

Joe Perches sent a patch series to fix existing misuses, currently there
are two remaining such misuses (which patches pending) left in Linus
tree. However, the remaining two cases are in unused macros and will not
break any builds until someone tries to use them. There was also an
arm-specific misuse which have also been fixed since v2 of this patchset
was merged to linux-next. When v3 of this patchset was included in
linux-next, there were not additional build failures or warnings
(there are some failed builds due to other patches though), however
<noreply@ellerman.id.au> and Geert Uytterhoeven reported that it broke
compilation with old versions of gcc so a v4 is needed.

Changelog
Since v3
  - Patch v2 1/3 (the x86 build warning) has been merged into Linus tree
    through the x86 tree (and is therefore not part of v4).
  - Disable the GENMASK input check if GCC version < 4.9 due to a
    compiler bug [0].

[0]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=19449
  
Since v2
  - Use __builtin_constant_p instead of __is_constexpr to avoid pulling
    in kernel.h (that include was missing in v2, so the header was no
    longer builable standalone
  - add cast to BUILD_BUG_ON_ZERO to make the type int
  - Remove unnecessary casts due to the above
  - Drop patch that renamed macro arguments

Since v1
  - Add comment about why inputs are not checked when used in asm file
  - Use UL(0) instead of 0
  - Extract mask creation in a separate macro to improve readability
  - Use high and low instead of h and l (part of this was extracted to a
    separate patch)
  - Updated commit message

Rikard Falkeborn (2):
  linux/build_bug.h: Change type to int
  linux/bits.h: Add compile time sanity check of GENMASK inputs

 include/linux/bits.h      | 22 ++++++++++++++++++++--
 include/linux/build_bug.h |  4 ++--
 2 files changed, 22 insertions(+), 4 deletions(-)

-- 
2.23.0


  parent reply	other threads:[~2019-10-09 21:45 UTC|newest]

Thread overview: 109+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20190710050444epcas1p250f7aa0f8798a7757df51d66f5970c2a@epcas1p2.samsung.com>
2019-07-10  5:04 ` [PATCH 00/12] treewide: Fix GENMASK misuses Joe Perches
2019-07-10  5:04   ` [PATCH 01/12] checkpatch: Add GENMASK tests Joe Perches
2019-07-24 18:03     ` Joe Perches
2019-07-10  5:04   ` [PATCH 02/12] clocksource/drivers/npcm: Fix misuse of GENMASK macro Joe Perches
2019-07-10  9:10     ` [tip:timers/urgent] " tip-bot for Joe Perches
2019-07-15 10:00     ` [PATCH 02/12] " Avi Fishman
2019-07-10  5:04   ` [PATCH 03/12] drm: aspeed_gfx: " Joe Perches
2019-07-24 17:16     ` Joe Perches
2019-07-25  1:10       ` Andrew Jeffery
2019-07-25  1:18         ` Joe Perches
2019-07-25  2:52           ` Joel Stanley
2019-07-25 14:37             ` Joe Perches
2019-07-10  5:04   ` [PATCH 04/12] iio: adc: max9611: " Joe Perches
2019-07-14 11:54     ` Jonathan Cameron
2019-07-14 12:19       ` Joe Perches
2019-07-14 14:37         ` Jacopo Mondi
2019-07-29 21:52         ` Jacopo Mondi
2019-07-31  8:37           ` Jonathan Cameron
2019-07-10  5:04   ` [PATCH 05/12] irqchip/gic-v3-its: " Joe Perches
2019-07-10  8:28     ` Marc Zyngier
2019-07-10  9:07     ` [tip:irq/urgent] " tip-bot for Joe Perches
2019-07-10  5:04   ` [PATCH 06/12] mmc: meson-mx-sdio: " Joe Perches
2019-07-22  7:23     ` Neil Armstrong
2019-07-22 13:43     ` Ulf Hansson
2019-07-10  5:04   ` [PATCH 07/12] net: ethernet: mediatek: Fix misuses " Joe Perches
2019-07-10  5:04   ` [PATCH 08/12] net: stmmac: " Joe Perches
2019-07-10 10:33     ` Jose Abreu
2019-07-10  5:04   ` [PATCH 09/12] rtw88: Fix misuse " Joe Perches
2019-07-10  5:07     ` Tony Chuang
2019-07-24 11:48     ` Kalle Valo
2019-07-10  5:04   ` [PATCH 10/12] phy: amlogic: G12A: " Joe Perches
2019-07-22  7:23     ` Neil Armstrong
2019-08-23  2:41       ` Kishon Vijay Abraham I
2019-08-23  4:59         ` Joe Perches
2019-07-10  5:04   ` [PATCH 11/12] staging: media: cedrus: " Joe Perches
2019-07-10  7:23     ` Paul Kocialkowski
2019-07-24 17:09     ` Joe Perches
2019-07-24 18:35       ` Greg Kroah-Hartman
2019-07-24 18:39         ` Joe Perches
2019-07-24 18:55           ` Greg Kroah-Hartman
2019-07-25  6:46       ` Hans Verkuil
2019-07-10  5:04   ` [PATCH 12/12] ASoC: wcd9335: " Joe Perches
2019-07-22 12:22     ` Applied "ASoC: wcd9335: Fix misuse of GENMASK macro" to the asoc tree Mark Brown
2019-07-10  9:17   ` [PATCH 00/12] treewide: Fix GENMASK misuses Johannes Berg
2019-07-10  9:43     ` Russell King - ARM Linux admin
2019-07-10 15:45       ` Joe Perches
2019-07-10 16:01         ` Joe Perches
2019-07-27 19:54           ` Rikard Falkeborn
2019-07-28 23:45             ` Joe Perches
2019-07-31 19:03               ` [PATCH] linux/bits.h: Add compile time sanity check of GENMASK inputs Rikard Falkeborn
2019-07-31 19:27                 ` Joe Perches
2019-08-01 23:03                   ` Rikard Falkeborn
2019-08-02  1:40                   ` Masahiro Yamada
2019-08-02  3:13                     ` Joe Perches
2019-08-02  3:25                       ` Masahiro Yamada
2019-08-02 18:18                         ` Rikard Falkeborn
2019-08-03  3:03                           ` Masahiro Yamada
2019-08-03  3:12                             ` Masahiro Yamada
2019-08-03 18:36                               ` Rikard Falkeborn
2019-08-04  6:45                                 ` Masahiro Yamada
2019-08-05 19:55                                   ` Rikard Falkeborn
2019-08-06 15:19                                     ` Masahiro Yamada
2019-08-06 19:27                                       ` Rikard Falkeborn
2019-08-06 21:15                                         ` Joe Perches
2019-08-07 20:53                                           ` Rikard Falkeborn
2019-08-01  2:50                 ` Masahiro Yamada
2019-08-01  2:57                   ` Joe Perches
2019-08-01 23:03                     ` Rikard Falkeborn
2019-08-01 23:03                 ` [PATCH v2 1/2] linux/bits.h: Clarify macro argument names Rikard Falkeborn
2019-08-01 23:03                   ` [PATCH v2 2/2] linux/bits.h: Add compile time sanity check of GENMASK inputs Rikard Falkeborn
2019-08-01 23:14                     ` Joe Perches
2019-08-07 14:27                     ` Guenter Roeck
2019-08-07 14:55                       ` Masahiro Yamada
2019-08-07 16:52                         ` Guenter Roeck
2019-08-07 20:07                           ` Rikard Falkeborn
2019-08-08  0:07                         ` Joe Perches
2019-08-08  0:58                           ` Guenter Roeck
2019-08-08  1:08                             ` Joe Perches
2019-08-08  1:53                               ` Guenter Roeck
2019-08-08  2:44                     ` kbuild test robot
2019-08-08  2:44                     ` kbuild test robot
2019-08-08  3:46                   ` [PATCH v2 1/2] linux/bits.h: Clarify macro argument names Masahiro Yamada
2019-08-10 18:43                     ` Rikard Falkeborn
2019-08-10 19:20                     ` Joe Perches
2019-08-11 18:49                   ` [PATCH v3 0/3] Add compile time sanity check of GENMASK inputs Rikard Falkeborn
2019-08-11 18:49                     ` [PATCH v3 1/3] x86/boot: Use common BUILD_BUG_ON Rikard Falkeborn
2019-08-12 18:19                       ` [tip:x86/boot] " tip-bot for Rikard Falkeborn
2019-08-16 12:19                       ` tip-bot for Rikard Falkeborn
2019-08-11 18:49                     ` [PATCH v3 2/3] linux/build_bug.h: Change type to int Rikard Falkeborn
2019-10-06  2:26                       ` Masahiro Yamada
2019-08-11 18:49                     ` [PATCH v3 3/3] linux/bits.h: Add compile time sanity check of GENMASK inputs Rikard Falkeborn
2019-10-06  2:30                       ` Masahiro Yamada
2019-10-08  7:23                       ` Geert Uytterhoeven
2019-10-08  7:44                         ` Masahiro Yamada
2019-10-08  7:52                           ` Masahiro Yamada
2019-10-08 19:06                             ` Rikard Falkeborn
2019-08-12 17:58                     ` [PATCH v3 0/3] " Kees Cook
2019-10-05 19:46                     ` Rikard Falkeborn
2019-10-09 21:45                     ` Rikard Falkeborn [this message]
2019-10-09 21:45                       ` [Patch v4 1/2] linux/build_bug.h: Change type to int Rikard Falkeborn
2019-10-09 21:45                       ` [Patch v4 2/2] linux/bits.h: Add compile time sanity check of GENMASK inputs Rikard Falkeborn
2019-10-10  2:24                         ` Masahiro Yamada
2019-10-12  2:27                         ` Andrew Morton
2019-10-22 19:53                           ` Rikard Falkeborn
2019-11-01 21:28                             ` Rikard Falkeborn
2020-03-08 19:39                               ` [PATCH v5] " Rikard Falkeborn
2020-03-09 16:40                                 ` Kees Cook
2019-07-11 21:30   ` [PATCH 00/12] treewide: Fix GENMASK misuses David Miller
2019-07-12 12:54   ` Andrzej Hajda

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=20191009214502.637875-1-rikard.falkeborn@gmail.com \
    --to=rikard.falkeborn@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=bp@alien8.de \
    --cc=joe@perches.com \
    --cc=johannes@sipsolutions.net \
    --cc=keescook@chromium.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.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).