]> git.baikalelectronics.ru Git - kernel.git/commit
byteswap: don't use __builtin_bswap*() with sparse
authorJohannes Berg <johannes.berg@intel.com>
Thu, 25 Aug 2016 22:16:45 +0000 (15:16 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 27 Aug 2016 00:39:34 +0000 (17:39 -0700)
commit78d4832c6b137d6958654ffcfa8f35b6243c1028
treec3cb59db61461cf85e05ed0daf6423148fb9ccb1
parent00faefc2b9c9471f92a71eff6510bc0ce7397090
byteswap: don't use __builtin_bswap*() with sparse

Although sparse declares __builtin_bswap*(), it can't actually do
constant folding inside them (yet).  As such, things like

  switch (protocol) {
  case htons(ETH_P_IP):
          break;
  }

which we do all over the place cause sparse to warn that it expects a
constant instead of a function call.

Disable __HAVE_BUILTIN_BSWAP*__ if __CHECKER__ is defined to avoid this.

Fixes: e08d0bf1321a ("byteswap: try to avoid __builtin_constant_p gcc bug")
Link: http://lkml.kernel.org/r/1470914102-26389-1-git-send-email-johannes@sipsolutions.net
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
include/linux/compiler-gcc.h