The patch titled Subject: bitfield: avoid gcc-8 -Wint-in-bool-context warning has been added to the -mm tree. Its filename is bitfield-avoid-gcc-8-wint-in-bool-context-warning.patch This patch should soon appear at http://ozlabs.org/~akpm/mmots/broken-out/bitfield-avoid-gcc-8-wint-in-bool-context-warning.patch and later at http://ozlabs.org/~akpm/mmotm/broken-out/bitfield-avoid-gcc-8-wint-in-bool-context-warning.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Arnd Bergmann <arnd@xxxxxxxx> Subject: bitfield: avoid gcc-8 -Wint-in-bool-context warning Passing an enum into FIELD_GET() produces a long but harmless warning on newer compilers: from include/linux/linkage.h:7, from include/linux/kernel.h:7, from include/linux/skbuff.h:17, from include/linux/if_ether.h:23, from include/linux/etherdevice.h:25, from drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:63: drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c: In function 'iwl_mvm_rx_mpdu_mq': include/linux/bitfield.h:56:20: error: enum constant in boolean context [-Werror=int-in-bool-context] BUILD_BUG_ON_MSG(!(_mask), _pfx "mask is zero"); \ ^ ... include/linux/bitfield.h:103:3: note: in expansion of macro '__BF_FIELD_CHECK' __BF_FIELD_CHECK(_mask, _reg, 0U, "FIELD_GET: "); \ ^~~~~~~~~~~~~~~~ drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c:1025:21: note: in expansion of macro 'FIELD_GET' le16_encode_bits(FIELD_GET(IWL_RX_HE_PHY_SIBG_SYM_OR_USER_NUM_MASK, The problem here is that the caller has no idea how the macro gets expanding, leading to a false-positive. It can be trivially avoided by doing a comparison against zero. This only recently started appearing as the iwlwifi driver was patched to use FIELD_GET. Link: http://lkml.kernel.org/r/20180813220950.194841-1-arnd@xxxxxxxx Fixes: 514c30696fbc ("iwlwifi: add support for IEEE802.11ax") Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx> Cc: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx> Cc: Johannes Berg <johannes@xxxxxxxxxxxxxxxx> Cc: Jakub Kicinski <jakub.kicinski@xxxxxxxxxxxxx> Cc: Andy Shevchenko <andy.shevchenko@xxxxxxxxx> Cc: Al Viro <viro@xxxxxxxxxxxxxxxxxx> Cc: David Laight <David.Laight@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- include/linux/bitfield.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/include/linux/bitfield.h~bitfield-avoid-gcc-8-wint-in-bool-context-warning +++ a/include/linux/bitfield.h @@ -53,7 +53,7 @@ ({ \ BUILD_BUG_ON_MSG(!__builtin_constant_p(_mask), \ _pfx "mask is not constant"); \ - BUILD_BUG_ON_MSG(!(_mask), _pfx "mask is zero"); \ + BUILD_BUG_ON_MSG((_mask) == 0, _pfx "mask is zero"); \ BUILD_BUG_ON_MSG(__builtin_constant_p(_val) ? \ ~((_mask) >> __bf_shf(_mask)) & (_val) : 0, \ _pfx "value too large for the field"); \ _ Patches currently in -mm which might be from arnd@xxxxxxxx are bitfield-avoid-gcc-8-wint-in-bool-context-warning.patch firewire-use-64-bit-time_t-based-interfaces.patch ufs-use-ktime_get_real_seconds-for-sb-and-cg-timestamps.patch ntfs-use-timespec64-directly-for-timestamp-conversion.patch hpfs-extend-gmt_to_local-conversion-to-64-bit-times.patch ocfs2-dlmglue-clean-up-timestamp-handling.patch shmem-use-monotonic-time-for-i_generation.patch mm-zsmalloc-make-several-functions-and-a-struct-static-fix.patch procfs-uptime-use-ktime_get_boottime_ts64.patch crash-print-timestamp-using-time64_t.patch nilfs2-use-64-bit-superblock-timstamps.patch reiserfs-use-monotonic-time-for-j_trans_start_time.patch reiserfs-remove-obsolete-print_time-function.patch reiserfs-change-j_timestamp-type-to-time64_t.patch fat-propagate-64-bit-inode-timestamps.patch adfs-use-timespec64-for-time-conversion.patch sysvfs-use-ktime_get_real_seconds-for-superblock-stamp.patch vmcore-hide-vmcoredd_mmap_dumps-for-nommu-builds.patch treewide-convert-iso_8859-1-text-comments-to-utf-8.patch s390-ebcdic-convert-comments-to-utf-8.patch lib-fonts-convert-comments-to-utf-8.patch vfs-replace-current_kernel_time64-with-ktime-equivalent.patch