From patchwork Mon Aug 13 22:09:34 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 144055 Delivered-To: patch@linaro.org Received: by 2002:a2e:9754:0:0:0:0:0 with SMTP id f20-v6csp3579446ljj; Mon, 13 Aug 2018 15:10:07 -0700 (PDT) X-Google-Smtp-Source: AA+uWPz4BNktGvwSMoZfdDB613voK/cl5sV5sf932o7mXJ4GFosVK6Ws7PDb01VauxwNYgL/m2AL X-Received: by 2002:a17:902:6501:: with SMTP id b1-v6mr18119338plk.31.1534198207136; Mon, 13 Aug 2018 15:10:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1534198207; cv=none; d=google.com; s=arc-20160816; b=SRYpkYdIGwfKrO1oJQJUv787H0MWSSQh1FB3QTdD+BoEHYcyOLO6nhllGi9j93vwCe kw+maRcd+piaZoBtHXSmA3j31prDpO1KItqLvV/gB3liQCdRRPuHSEYsgEokg8exwfjy v0c+wYW80/G2a0QCKeeQkXTv3Jfx45VSuoM6pS4XmnSqgfS+tlsTwH9rGTrcBDg+qM1l ibBL2677DsrFYDSEqXw7kH4KvGHcfz+XAyfv1ADJRijW+aXTWiWgXA8U09Ouw0XNfQXU hi191uS7G5blpXZkQ6bh1N857J6Hr39o4+G36gLbbFwN7WLfcZUuFPD+RhTKBFNz0ksB 2h8w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :arc-authentication-results; bh=yJXHDFwFtaq391+Tk5KJRLaw+UxipOmbkrCJSprCk3g=; b=d+vrwczM4dJRQDXiJeJe2j9EJvN90G8ORXZl9Z1rbFpeZv3O6O7tW68Njwmt+6CnuP m7RTAAq5FYOPl2VBwsou46oQX7zQi42j2me8r2yGMW7FQhulKFIXApbZYaN3qXmKAOuj qZMdzk8OwRI3dHb/D8Sq3JVqhN4rfW5DwWF7yggxIfDxx3njoDhdtCMuC0lFJW/O8nfp OeYkvfPNVeEEOURzEtpfXIogjfpGmXPl1s7Gn+5apBI5ZLn4fbC8GJ/goUMJ9E0XOa/Z RmKxYZNmZH4wvWpnPfLv3hVjVuGSJXwBzTDMDApAKulWem66KVQki3ub42Br6ssrQHY5 fQVw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 33-v6si15631585plh.16.2018.08.13.15.10.06; Mon, 13 Aug 2018 15:10:07 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731029AbeHNAyN (ORCPT + 31 others); Mon, 13 Aug 2018 20:54:13 -0400 Received: from mout.kundenserver.de ([212.227.126.187]:44088 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729855AbeHNAyN (ORCPT ); Mon, 13 Aug 2018 20:54:13 -0400 Received: from wuerfel.lan ([109.193.40.16]) by mrelayeu.kundenserver.de (mreue001 [212.227.15.129]) with ESMTPA (Nemesis) id 0LiscI-1gRRD102tq-00dD0W; Tue, 14 Aug 2018 00:09:57 +0200 From: Arnd Bergmann To: Andrew Morton Cc: Arnd Bergmann , Masahiro Yamada , Johannes Berg , Jakub Kicinski , Andy Shevchenko , Al Viro , linux-kernel@vger.kernel.org Subject: [PATCH] bitfield: avoid gcc-8 -Wint-in-bool-context warning Date: Tue, 14 Aug 2018 00:09:34 +0200 Message-Id: <20180813220950.194841-1-arnd@arndb.de> X-Mailer: git-send-email 2.18.0 X-Provags-ID: V03:K1:SkRN9ZwMqH7s9rpPVdqftpfV2tufaYvAiwkfRYJqjv0O2qjPnFs jUw6O3t1ixiDPAXZjhiVtDvytSKlRTuoxSZxVnOdp6T1NZUd03fnBLG+bsyruBY6cJ2RmMU TPpqZtNxnbTObSEYlhrdIKuRjSIMON1+uaniBPsf9UJBgfh7KYyXNTu8HPEhKWQoyUcVMY5 wJ22wfa33yautyoC6oWCg== X-UI-Out-Filterresults: notjunk:1; V01:K0:8/eiLgOZK6w=:eN9pN3hWTqGXNsfIiLisZy tUaCpQ4RJr2GCU3f+yWjpuaK1/RTVlkyyb2gRrWjsD/NyQMHj+mb5/RFb/h88N4UM86X4Nrop DOngQefAM7wgmQ6B5rwUixqEzwL8gjWaTW4G5Vgiguog0ysZ+x0uv4vya0cihmWHDlGZadQCy EkTYyU9DCglgnzaqvscxNw78Y1Zw+vqHtedN6/RX20NqhTG/i/znfc7bDy08A8figekhpwBez NhQgIcFEZBm7ipYkbs0PCldxvXsj/TmdCrLnaXEoC1uWVntL1RfFaVqs5BmRnz2w+2PB9+jA3 WC3Ce7wxniXVSfZ7sfaKh/ZfVqZ4lF9H2aH1vYMlIUHc45/aedLpDgE8KivzO4GILs2K2h34u 32n2EK/S7uMBwNkX8Jfao0BMfOQS+YTri0viPwqrquK1zT2zQlJwFmfW0UtB7nssTRxhOxaAF n2k9PB4v0TsOKDlhu91dc+hhclO5+69vllHCg2/a5J7/xAUcDXUsZeB2A1XEbGT+P/s9KvTNI dBZJ6L/jX1cxZhPvkudXtGsb1K2vc3D4TaiETQABWHqJRDvXjRRl6HBN01NMXLmMlRFJIiqEd dqWr8dFqryk4isb1Xe+M5hCODmo5+NjdPTgGbC9BJ8xI/YiI+jiKDmUGgaTdNwpieqWEYCOY4 qk3gsDDS57LqbAJmJ1Pu/LZjwdCsLfErxVkq9342489VpAO5f5x0np3D94xZ1Cjhufjg= Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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. Fixes: 514c30696fbc ("iwlwifi: add support for IEEE802.11ax") Signed-off-by: Arnd Bergmann --- include/linux/bitfield.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- 2.18.0 diff --git a/include/linux/bitfield.h b/include/linux/bitfield.h index 65a6981eef7b..3f1ef4450a7c 100644 --- a/include/linux/bitfield.h +++ b/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"); \