From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752844AbbLRLXf (ORCPT ); Fri, 18 Dec 2015 06:23:35 -0500 Received: from mga14.intel.com ([192.55.52.115]:29856 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751341AbbLRLXd (ORCPT ); Fri, 18 Dec 2015 06:23:33 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.20,445,1444719600"; d="gz'50?scan'50,208,50";a="876390073" Date: Fri, 18 Dec 2015 19:22:18 +0800 From: kbuild test robot To: Andrzej Hajda Cc: kbuild-all@01.org, linux-kernel@vger.kernel.org, Andrzej Hajda , Bartlomiej Zolnierkiewicz , Marek Szyprowski , Andrew Morton , Viresh Kumar Subject: Re: [PATCH] err.h: add type checking to IS_ERR_VALUE macro Message-ID: <201512181904.10FwDTvV%fengguang.wu@intel.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="/9DWx/yDrRhgMJTb" Content-Disposition: inline In-Reply-To: <1450436102-6360-1-git-send-email-a.hajda@samsung.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: fengguang.wu@intel.com X-SA-Exim-Scanned: No (on bee); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --/9DWx/yDrRhgMJTb Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Andrzej, [auto build test WARNING on v4.4-rc5] [also build test WARNING on next-20151217] url: https://github.com/0day-ci/linux/commits/Andrzej-Hajda/err-h-add-type-checking-to-IS_ERR_VALUE-macro/20151218-185839 config: m68k-sun3_defconfig (attached as .config) reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=m68k All warnings (new ones prefixed by >>): In file included from include/uapi/linux/stddef.h:1:0, from include/linux/stddef.h:4, from include/uapi/linux/posix_types.h:4, from include/uapi/linux/types.h:13, from include/linux/types.h:5, from include/uapi/linux/sysinfo.h:4, from include/uapi/linux/kernel.h:4, from include/linux/cache.h:4, from net/ipv4/netfilter/ip_tables.c:13: In function 'find_check_entry.isra.12', inlined from 'translate_table' at net/ipv4/netfilter/ip_tables.c:868:7: include/linux/compiler.h:484:38: error: call to '__compiletime_assert_674' declared with attribute error: Invalid IS_ERR_VALUE argument type _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) ^ include/linux/compiler.h:467:4: note: in definition of macro '__compiletime_assert' prefix ## suffix(); \ ^ include/linux/compiler.h:484:2: note: in expansion of macro '_compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) ^ include/linux/bug.h:50:37: note: in expansion of macro 'compiletime_assert' #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) ^ include/linux/err.h:24:5: note: in expansion of macro 'BUILD_BUG_ON_MSG' BUILD_BUG_ON_MSG((typeof(x))(-MAX_ERRNO) != (unsigned long)-MAX_ERRNO, "Invalid IS_ERR_VALUE argument type");\ ^ >> net/ipv4/netfilter/ip_tables.c:674:6: note: in expansion of macro 'IS_ERR_VALUE' if (IS_ERR_VALUE(e->counters.pcnt)) ^ -- In file included from include/linux/linkage.h:4:0, from include/linux/kernel.h:6, from net/ipv4/netfilter/arp_tables.c:13: In function 'find_check_entry.isra.14', inlined from 'translate_table' at net/ipv4/netfilter/arp_tables.c:702:7: include/linux/compiler.h:484:38: error: call to '__compiletime_assert_530' declared with attribute error: Invalid IS_ERR_VALUE argument type _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) ^ include/linux/compiler.h:467:4: note: in definition of macro '__compiletime_assert' prefix ## suffix(); \ ^ include/linux/compiler.h:484:2: note: in expansion of macro '_compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) ^ include/linux/bug.h:50:37: note: in expansion of macro 'compiletime_assert' #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) ^ include/linux/err.h:24:5: note: in expansion of macro 'BUILD_BUG_ON_MSG' BUILD_BUG_ON_MSG((typeof(x))(-MAX_ERRNO) != (unsigned long)-MAX_ERRNO, "Invalid IS_ERR_VALUE argument type");\ ^ >> net/ipv4/netfilter/arp_tables.c:530:6: note: in expansion of macro 'IS_ERR_VALUE' if (IS_ERR_VALUE(e->counters.pcnt)) ^ -- In file included from include/linux/linkage.h:4:0, from include/linux/kernel.h:6, from net/ipv6/netfilter/ip6_tables.c:15: In function 'find_check_entry.isra.12', inlined from 'translate_table' at net/ipv6/netfilter/ip6_tables.c:880:7: include/linux/compiler.h:484:38: error: call to '__compiletime_assert_687' declared with attribute error: Invalid IS_ERR_VALUE argument type _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) ^ include/linux/compiler.h:467:4: note: in definition of macro '__compiletime_assert' prefix ## suffix(); \ ^ include/linux/compiler.h:484:2: note: in expansion of macro '_compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) ^ include/linux/bug.h:50:37: note: in expansion of macro 'compiletime_assert' #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg) ^ include/linux/err.h:24:5: note: in expansion of macro 'BUILD_BUG_ON_MSG' BUILD_BUG_ON_MSG((typeof(x))(-MAX_ERRNO) != (unsigned long)-MAX_ERRNO, "Invalid IS_ERR_VALUE argument type");\ ^ >> net/ipv6/netfilter/ip6_tables.c:687:6: note: in expansion of macro 'IS_ERR_VALUE' if (IS_ERR_VALUE(e->counters.pcnt)) ^ vim +/IS_ERR_VALUE +674 net/ipv4/netfilter/ip_tables.c 022748a9 Denys Vlasenko 2008-01-14 658 static int a83d8e8d Alexey Dobriyan 2010-01-18 659 find_check_entry(struct ipt_entry *e, struct net *net, const char *name, 0559518b Jan Engelhardt 2010-02-24 660 unsigned int size) ^1da177e Linus Torvalds 2005-04-16 661 { 87a2e70d Jan Engelhardt 2010-10-13 662 struct xt_entry_target *t; 6709dbbb Jan Engelhardt 2007-02-07 663 struct xt_target *target; ^1da177e Linus Torvalds 2005-04-16 664 int ret; ^1da177e Linus Torvalds 2005-04-16 665 unsigned int j; 9b4fce7a Jan Engelhardt 2008-10-08 666 struct xt_mtchk_param mtpar; dcea992a Jan Engelhardt 2010-02-24 667 struct xt_entry_match *ematch; ^1da177e Linus Torvalds 2005-04-16 668 a96be246 Dmitry Mishin 2006-12-12 669 ret = check_entry(e, name); a96be246 Dmitry Mishin 2006-12-12 670 if (ret) a96be246 Dmitry Mishin 2006-12-12 671 return ret; 590bdf7f Dmitry Mishin 2006-10-30 672 71ae0dff Florian Westphal 2015-06-11 673 e->counters.pcnt = xt_percpu_counter_alloc(); 71ae0dff Florian Westphal 2015-06-11 @674 if (IS_ERR_VALUE(e->counters.pcnt)) 71ae0dff Florian Westphal 2015-06-11 675 return -ENOMEM; 71ae0dff Florian Westphal 2015-06-11 676 ^1da177e Linus Torvalds 2005-04-16 677 j = 0; a83d8e8d Alexey Dobriyan 2010-01-18 678 mtpar.net = net; 9b4fce7a Jan Engelhardt 2008-10-08 679 mtpar.table = name; 9b4fce7a Jan Engelhardt 2008-10-08 680 mtpar.entryinfo = &e->ip; 9b4fce7a Jan Engelhardt 2008-10-08 681 mtpar.hook_mask = e->comefrom; 916a917d Jan Engelhardt 2008-10-08 682 mtpar.family = NFPROTO_IPV4; :::::: The code at line 674 was first introduced by commit :::::: 71ae0dff02d756e4d2ca710b79f2ff5390029a5f netfilter: xtables: use percpu rule counters :::::: TO: Florian Westphal :::::: CC: Pablo Neira Ayuso --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation --/9DWx/yDrRhgMJTb Content-Type: application/octet-stream Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 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 --/9DWx/yDrRhgMJTb--