From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 44FC7E77371 for ; Sat, 30 Sep 2023 13:07:06 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 629218D0009; Sat, 30 Sep 2023 09:07:05 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5D91E8D0006; Sat, 30 Sep 2023 09:07:05 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4A1708D0009; Sat, 30 Sep 2023 09:07:05 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 38F018D0006 for ; Sat, 30 Sep 2023 09:07:05 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 11A32A017D for ; Sat, 30 Sep 2023 13:07:05 +0000 (UTC) X-FDA: 81293289210.26.FBF9C03 Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.24]) by imf10.hostedemail.com (Postfix) with ESMTP id 4FF32C001B for ; Sat, 30 Sep 2023 13:07:02 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=SaCyf+gW; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf10.hostedemail.com: domain of lkp@intel.com designates 134.134.136.24 as permitted sender) smtp.mailfrom=lkp@intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1696079223; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=7fbp9ZDpQMMv5p7tdg4f/bvOjpZb6Pg5Lq4HX/jA/iU=; b=5cfKCvrL7zfifuj5u8SUCCc9EKqOEj7rKLUEQqnUsAu34TXBxDFBDj7w0ZMzmFxb4HSZo+ TnEeXMtRfBlmFUQnmJ+RxXV679Y5/5mQJUKHLWqMJOcQIq5j16lTHv6FGN2sD0f0H3fFje F3njZTxn1W4XSPC4rD12VPwGMUcRTso= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=SaCyf+gW; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf10.hostedemail.com: domain of lkp@intel.com designates 134.134.136.24 as permitted sender) smtp.mailfrom=lkp@intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1696079223; a=rsa-sha256; cv=none; b=Y87/ZIncBPGpuimNbAaFtWu1cG1qyCFF9gYMw+sZ/CWpSUsz7VohSb8cbZvTZwJ4xuWmnM 6ncOd4DdLmM4oMsmTFKgZdJmXSgkQKZlJfLXmprSXaWmzjUDR0zFImpPUUxFXDuNRU0Clx dz3W7Qs89kmt3vqWAteJs9019IsxLO8= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1696079222; x=1727615222; h=date:from:to:cc:subject:message-id:references: mime-version:in-reply-to; bh=wfmlaQ/yZCImQAuL1Y8jKhC6VFeirk/jHwd2wi9Cg6c=; b=SaCyf+gWK4Ag8GzDPVP80RbrUPBRzU2Maab9pqvt9MumJ9WW/D5o4Qta Hy10OysZoZsw+0KrIuMcrF4ag3aC3siBJuCpOK0verkm0Rdi0nAspCI69 TmExa30NarPMfNoixqwk6V7M0ecajmfTMQhhKoIoUrHuyuBhfaSLILWyn s6J/1phqN3LmI8jP7/+0Nhlg76OIYmUFNHMF0IKsEi8v0qPuKLBHjqMuf 2yVa6qzJzy9kXnWIom6iRwZN4iQSTnAwZ1EnEoSjMevavvOT2KRzx9SHG k+bLgTaPDRHXUOWy8JaYMDAnGEiO4AtfzloJhvXiBhgb0W5At5+EmEPSa A==; X-IronPort-AV: E=McAfee;i="6600,9927,10849"; a="385269680" X-IronPort-AV: E=Sophos;i="6.03,190,1694761200"; d="scan'208";a="385269680" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Sep 2023 06:06:59 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10849"; a="923829876" X-IronPort-AV: E=Sophos;i="6.03,190,1694761200"; d="scan'208";a="923829876" Received: from lkp-server02.sh.intel.com (HELO c3b01524d57c) ([10.239.97.151]) by orsmga005.jf.intel.com with ESMTP; 30 Sep 2023 06:06:55 -0700 Received: from kbuild by c3b01524d57c with local (Exim 4.96) (envelope-from ) id 1qmZgL-00049f-0e; Sat, 30 Sep 2023 13:06:53 +0000 Date: Sat, 30 Sep 2023 21:05:56 +0800 From: kernel test robot To: Joey Gouly , linux-arm-kernel@lists.infradead.org Cc: oe-kbuild-all@lists.linux.dev, nd@arm.com, akpm@linux-foundation.org, aneesh.kumar@linux.ibm.com, catalin.marinas@arm.com, dave.hansen@linux.intel.com, joey.gouly@arm.com, maz@kernel.org, oliver.upton@linux.dev, shuah@kernel.org, will@kernel.org, kvmarm@lists.linux.dev, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org Subject: Re: [PATCH v1 11/20] arm64: enable ARCH_HAS_PKEYS on arm64 Message-ID: <202309302050.SO3QXUkm-lkp@intel.com> References: <20230927140123.5283-12-joey.gouly@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230927140123.5283-12-joey.gouly@arm.com> X-Rspam-User: X-Stat-Signature: zh3yt8p6iqsd8jup8kw1gs11myyc18wz X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 4FF32C001B X-HE-Tag: 1696079222-83500 X-HE-Meta: U2FsdGVkX18vJ5iyRijHWyYDF0I1iZuBMkbpRSg8h8OPToPi4j+TuWBznYo1f9W0tefzwQ5HmMb6F2QEqz6MmMMpZBVkzE+LG42HZCeHzHUsFAA8JpvPCMgTbHvWPkQk4zZW5I0RaZNkxSqBuQW1Vqx3Bq51zhw2oI9rqu2lWlECVlcFT3vunW4AaMxxg1kGQKomjkSBaGEf4Kw9gj12Q8BT4S3YDC7n9WiO0s78O94bmW07vQCgbZWVBFCWjJbqNxZdLGuGSUICHRqDlvXCq1EW+OhD2YgoZPv2pPLNO/Oat4vkKASd601tFktTX5pBJ7fAMYHAP6sEUIZhkl2974Si1tziikjdCzyJPWJrPeTtNSC8O2Tfz2Xy1jUjZlRqrMUXJSHI1f3ClCYHIjpISgq/y24zb39/V81ZNN7/uLyZP+yqi6r8dptYCj+bS20YFENBrYIeqfk/es+BD4gM44ZMSAZ7NsLLOHRq/UKez30oJoUBKoQgko9UqZPGJUP6Wlt+G5MA8KTGdhOAT8sjLLc3PO9N+bDU2xZGlg2FEJ8gbtO3LXiKpYMuexvoh64+rDvfUy80ofspcUDcEtVfqLo5v6KxjHJlD1/wsB2bzZ0bf6jizQu04+VGflAbazqCbsgyig++P/b5kTYHfMUnjE6WaSY2eM7f0eA9ai/dCKVKRF7KFnRgYJSM+F8e1tN4Rs6MWX0pw8b4i6lQWGo3qUq9yx4J3qR+wVlAPkNcnuBkzZETSRHJTtDem6QTpK1PJjKsWiD9zuOY9QP3fdU8n+KNVEfZZ+aY3IQxBdYuzkozMGJ6Ztok0M36H1vKv6lW1wPafpdzxV+GdXzIWMUSF2W21A1QkBB3MEvjwzg+QznnHAkqQ7fO+xXvJDkEIVoj8HAmLds3Sv3aXI6cdMZrEz1ZG6FSSXWuCppgnD3hgUXsydK5k8RQdV2KamErDKCGAo+RIPLUiEqM3rdvmDr elH97xBZ J3K7jSTnUwdyingpNvT9a+brvycFHBoTW0ZdGd5ZGCM3bN/7d1Wjsw9wqOZdVlaXKcNXb+ZH1cJoqGXj0d4vMRjOlzvJhoYFwDvYLnIvkHJPKhoVJfwKTNstHlpoekaBkx6jO2UlvbklET1gBcDfmUZdM5HcnA5HCMqrkw0ev94NYuHbGL5B7VLyLL7tljbBtWHRkdHro+KzmBTVciHtu238T7vYU7XytwK3qZyjZ6555shW0/yEK/a6Uq2nh+RVDMb/c/SwCFP6FVl/mXvBOo3xsOZnu1gAGmnRSno7+PvHCv/8HtH3+LMr6FK2iuR4O8jzBRbS54TwJVkVCdwpX3T0Sk148YBgmuaXOMH/dQJDnGPsqC+UZdPGpVuJVUuOGOjArkMcdETvvL/iSjcFSmldiiVuCJmLrjPDKYCmKEmm2u/6pymhS9045CwFeLG7647MuMqoKRPmpV6ov6fFQsMAknn0rc3RrREAU X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: Hi Joey, kernel test robot noticed the following build errors: [auto build test ERROR on arm64/for-next/core] [also build test ERROR on linus/master v6.6-rc3 next-20230929] [cannot apply to akpm-mm/mm-everything kvmarm/next] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Joey-Gouly/arm64-sysreg-add-system-register-POR_EL-0-1/20230927-221459 base: https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-next/core patch link: https://lore.kernel.org/r/20230927140123.5283-12-joey.gouly%40arm.com patch subject: [PATCH v1 11/20] arm64: enable ARCH_HAS_PKEYS on arm64 config: arm64-randconfig-001-20230930 (https://download.01.org/0day-ci/archive/20230930/202309302050.SO3QXUkm-lkp@intel.com/config) compiler: aarch64-linux-gcc (GCC) 13.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20230930/202309302050.SO3QXUkm-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot | Closes: https://lore.kernel.org/oe-kbuild-all/202309302050.SO3QXUkm-lkp@intel.com/ All errors (new ones prefixed by >>): In file included from arch/arm64/include/asm/hwcap.h:50, from arch/arm64/include/asm/cpufeature.h:12, from arch/arm64/include/asm/ptrace.h:11, from arch/arm64/include/asm/irqflags.h:10, from include/linux/irqflags.h:17, from include/linux/spinlock.h:59, from include/linux/mmzone.h:8, from include/linux/gfp.h:7, from include/linux/mm.h:7, from include/linux/pagewalk.h:5, from fs/proc/task_mmu.c:2: fs/proc/task_mmu.c: In function 'show_smap_vma_flags': include/linux/mm.h:346:25: error: 'VM_HIGH_ARCH_2' undeclared (first use in this function) 346 | # define VM_PKEY_BIT0 VM_HIGH_ARCH_2 /* A protection key is a 3-bit value on arm64 */ | ^~~~~~~~~~~~~~ include/linux/log2.h:158:30: note: in definition of macro 'ilog2' 158 | __builtin_constant_p(n) ? \ | ^ fs/proc/task_mmu.c:689:24: note: in expansion of macro 'VM_PKEY_BIT0' 689 | [ilog2(VM_PKEY_BIT0)] = "", | ^~~~~~~~~~~~ include/linux/mm.h:346:25: note: each undeclared identifier is reported only once for each function it appears in 346 | # define VM_PKEY_BIT0 VM_HIGH_ARCH_2 /* A protection key is a 3-bit value on arm64 */ | ^~~~~~~~~~~~~~ include/linux/log2.h:158:30: note: in definition of macro 'ilog2' 158 | __builtin_constant_p(n) ? \ | ^ fs/proc/task_mmu.c:689:24: note: in expansion of macro 'VM_PKEY_BIT0' 689 | [ilog2(VM_PKEY_BIT0)] = "", | ^~~~~~~~~~~~ >> include/linux/log2.h:157:1: error: array index in initializer not of integer type 157 | ( \ | ^ fs/proc/task_mmu.c:689:18: note: in expansion of macro 'ilog2' 689 | [ilog2(VM_PKEY_BIT0)] = "", | ^~~~~ include/linux/log2.h:157:1: note: (near initialization for 'mnemonics') 157 | ( \ | ^ fs/proc/task_mmu.c:689:18: note: in expansion of macro 'ilog2' 689 | [ilog2(VM_PKEY_BIT0)] = "", | ^~~~~ include/linux/mm.h:347:25: error: 'VM_HIGH_ARCH_3' undeclared (first use in this function) 347 | # define VM_PKEY_BIT1 VM_HIGH_ARCH_3 | ^~~~~~~~~~~~~~ include/linux/log2.h:158:30: note: in definition of macro 'ilog2' 158 | __builtin_constant_p(n) ? \ | ^ fs/proc/task_mmu.c:690:24: note: in expansion of macro 'VM_PKEY_BIT1' 690 | [ilog2(VM_PKEY_BIT1)] = "", | ^~~~~~~~~~~~ >> include/linux/log2.h:157:1: error: array index in initializer not of integer type 157 | ( \ | ^ fs/proc/task_mmu.c:690:18: note: in expansion of macro 'ilog2' 690 | [ilog2(VM_PKEY_BIT1)] = "", | ^~~~~ include/linux/log2.h:157:1: note: (near initialization for 'mnemonics') 157 | ( \ | ^ fs/proc/task_mmu.c:690:18: note: in expansion of macro 'ilog2' 690 | [ilog2(VM_PKEY_BIT1)] = "", | ^~~~~ include/linux/mm.h:348:25: error: 'VM_HIGH_ARCH_4' undeclared (first use in this function) 348 | # define VM_PKEY_BIT2 VM_HIGH_ARCH_4 | ^~~~~~~~~~~~~~ include/linux/log2.h:158:30: note: in definition of macro 'ilog2' 158 | __builtin_constant_p(n) ? \ | ^ fs/proc/task_mmu.c:691:24: note: in expansion of macro 'VM_PKEY_BIT2' 691 | [ilog2(VM_PKEY_BIT2)] = "", | ^~~~~~~~~~~~ >> include/linux/log2.h:157:1: error: array index in initializer not of integer type 157 | ( \ | ^ fs/proc/task_mmu.c:691:18: note: in expansion of macro 'ilog2' 691 | [ilog2(VM_PKEY_BIT2)] = "", | ^~~~~ include/linux/log2.h:157:1: note: (near initialization for 'mnemonics') 157 | ( \ | ^ fs/proc/task_mmu.c:691:18: note: in expansion of macro 'ilog2' 691 | [ilog2(VM_PKEY_BIT2)] = "", | ^~~~~ vim +157 include/linux/log2.h b311e921b385b5a Robert P. J. Day 2007-10-16 69 f0d1b0b30d250a0 David Howells 2006-12-08 70 /** dbef91ec5482239 Martin Wilck 2018-04-18 71 * const_ilog2 - log base 2 of 32-bit or a 64-bit constant unsigned value a1c4d24e02d093e Randy Dunlap 2017-09-30 72 * @n: parameter f0d1b0b30d250a0 David Howells 2006-12-08 73 * dbef91ec5482239 Martin Wilck 2018-04-18 74 * Use this where sparse expects a true constant expression, e.g. for array dbef91ec5482239 Martin Wilck 2018-04-18 75 * indices. f0d1b0b30d250a0 David Howells 2006-12-08 76 */ dbef91ec5482239 Martin Wilck 2018-04-18 77 #define const_ilog2(n) \ f0d1b0b30d250a0 David Howells 2006-12-08 78 ( \ f0d1b0b30d250a0 David Howells 2006-12-08 79 __builtin_constant_p(n) ? ( \ 474c90156c8dcc2 Linus Torvalds 2017-03-02 80 (n) < 2 ? 0 : \ f0d1b0b30d250a0 David Howells 2006-12-08 81 (n) & (1ULL << 63) ? 63 : \ f0d1b0b30d250a0 David Howells 2006-12-08 82 (n) & (1ULL << 62) ? 62 : \ f0d1b0b30d250a0 David Howells 2006-12-08 83 (n) & (1ULL << 61) ? 61 : \ f0d1b0b30d250a0 David Howells 2006-12-08 84 (n) & (1ULL << 60) ? 60 : \ f0d1b0b30d250a0 David Howells 2006-12-08 85 (n) & (1ULL << 59) ? 59 : \ f0d1b0b30d250a0 David Howells 2006-12-08 86 (n) & (1ULL << 58) ? 58 : \ f0d1b0b30d250a0 David Howells 2006-12-08 87 (n) & (1ULL << 57) ? 57 : \ f0d1b0b30d250a0 David Howells 2006-12-08 88 (n) & (1ULL << 56) ? 56 : \ f0d1b0b30d250a0 David Howells 2006-12-08 89 (n) & (1ULL << 55) ? 55 : \ f0d1b0b30d250a0 David Howells 2006-12-08 90 (n) & (1ULL << 54) ? 54 : \ f0d1b0b30d250a0 David Howells 2006-12-08 91 (n) & (1ULL << 53) ? 53 : \ f0d1b0b30d250a0 David Howells 2006-12-08 92 (n) & (1ULL << 52) ? 52 : \ f0d1b0b30d250a0 David Howells 2006-12-08 93 (n) & (1ULL << 51) ? 51 : \ f0d1b0b30d250a0 David Howells 2006-12-08 94 (n) & (1ULL << 50) ? 50 : \ f0d1b0b30d250a0 David Howells 2006-12-08 95 (n) & (1ULL << 49) ? 49 : \ f0d1b0b30d250a0 David Howells 2006-12-08 96 (n) & (1ULL << 48) ? 48 : \ f0d1b0b30d250a0 David Howells 2006-12-08 97 (n) & (1ULL << 47) ? 47 : \ f0d1b0b30d250a0 David Howells 2006-12-08 98 (n) & (1ULL << 46) ? 46 : \ f0d1b0b30d250a0 David Howells 2006-12-08 99 (n) & (1ULL << 45) ? 45 : \ f0d1b0b30d250a0 David Howells 2006-12-08 100 (n) & (1ULL << 44) ? 44 : \ f0d1b0b30d250a0 David Howells 2006-12-08 101 (n) & (1ULL << 43) ? 43 : \ f0d1b0b30d250a0 David Howells 2006-12-08 102 (n) & (1ULL << 42) ? 42 : \ f0d1b0b30d250a0 David Howells 2006-12-08 103 (n) & (1ULL << 41) ? 41 : \ f0d1b0b30d250a0 David Howells 2006-12-08 104 (n) & (1ULL << 40) ? 40 : \ f0d1b0b30d250a0 David Howells 2006-12-08 105 (n) & (1ULL << 39) ? 39 : \ f0d1b0b30d250a0 David Howells 2006-12-08 106 (n) & (1ULL << 38) ? 38 : \ f0d1b0b30d250a0 David Howells 2006-12-08 107 (n) & (1ULL << 37) ? 37 : \ f0d1b0b30d250a0 David Howells 2006-12-08 108 (n) & (1ULL << 36) ? 36 : \ f0d1b0b30d250a0 David Howells 2006-12-08 109 (n) & (1ULL << 35) ? 35 : \ f0d1b0b30d250a0 David Howells 2006-12-08 110 (n) & (1ULL << 34) ? 34 : \ f0d1b0b30d250a0 David Howells 2006-12-08 111 (n) & (1ULL << 33) ? 33 : \ f0d1b0b30d250a0 David Howells 2006-12-08 112 (n) & (1ULL << 32) ? 32 : \ f0d1b0b30d250a0 David Howells 2006-12-08 113 (n) & (1ULL << 31) ? 31 : \ f0d1b0b30d250a0 David Howells 2006-12-08 114 (n) & (1ULL << 30) ? 30 : \ f0d1b0b30d250a0 David Howells 2006-12-08 115 (n) & (1ULL << 29) ? 29 : \ f0d1b0b30d250a0 David Howells 2006-12-08 116 (n) & (1ULL << 28) ? 28 : \ f0d1b0b30d250a0 David Howells 2006-12-08 117 (n) & (1ULL << 27) ? 27 : \ f0d1b0b30d250a0 David Howells 2006-12-08 118 (n) & (1ULL << 26) ? 26 : \ f0d1b0b30d250a0 David Howells 2006-12-08 119 (n) & (1ULL << 25) ? 25 : \ f0d1b0b30d250a0 David Howells 2006-12-08 120 (n) & (1ULL << 24) ? 24 : \ f0d1b0b30d250a0 David Howells 2006-12-08 121 (n) & (1ULL << 23) ? 23 : \ f0d1b0b30d250a0 David Howells 2006-12-08 122 (n) & (1ULL << 22) ? 22 : \ f0d1b0b30d250a0 David Howells 2006-12-08 123 (n) & (1ULL << 21) ? 21 : \ f0d1b0b30d250a0 David Howells 2006-12-08 124 (n) & (1ULL << 20) ? 20 : \ f0d1b0b30d250a0 David Howells 2006-12-08 125 (n) & (1ULL << 19) ? 19 : \ f0d1b0b30d250a0 David Howells 2006-12-08 126 (n) & (1ULL << 18) ? 18 : \ f0d1b0b30d250a0 David Howells 2006-12-08 127 (n) & (1ULL << 17) ? 17 : \ f0d1b0b30d250a0 David Howells 2006-12-08 128 (n) & (1ULL << 16) ? 16 : \ f0d1b0b30d250a0 David Howells 2006-12-08 129 (n) & (1ULL << 15) ? 15 : \ f0d1b0b30d250a0 David Howells 2006-12-08 130 (n) & (1ULL << 14) ? 14 : \ f0d1b0b30d250a0 David Howells 2006-12-08 131 (n) & (1ULL << 13) ? 13 : \ f0d1b0b30d250a0 David Howells 2006-12-08 132 (n) & (1ULL << 12) ? 12 : \ f0d1b0b30d250a0 David Howells 2006-12-08 133 (n) & (1ULL << 11) ? 11 : \ f0d1b0b30d250a0 David Howells 2006-12-08 134 (n) & (1ULL << 10) ? 10 : \ f0d1b0b30d250a0 David Howells 2006-12-08 135 (n) & (1ULL << 9) ? 9 : \ f0d1b0b30d250a0 David Howells 2006-12-08 136 (n) & (1ULL << 8) ? 8 : \ f0d1b0b30d250a0 David Howells 2006-12-08 137 (n) & (1ULL << 7) ? 7 : \ f0d1b0b30d250a0 David Howells 2006-12-08 138 (n) & (1ULL << 6) ? 6 : \ f0d1b0b30d250a0 David Howells 2006-12-08 139 (n) & (1ULL << 5) ? 5 : \ f0d1b0b30d250a0 David Howells 2006-12-08 140 (n) & (1ULL << 4) ? 4 : \ f0d1b0b30d250a0 David Howells 2006-12-08 141 (n) & (1ULL << 3) ? 3 : \ f0d1b0b30d250a0 David Howells 2006-12-08 142 (n) & (1ULL << 2) ? 2 : \ 474c90156c8dcc2 Linus Torvalds 2017-03-02 143 1) : \ dbef91ec5482239 Martin Wilck 2018-04-18 144 -1) dbef91ec5482239 Martin Wilck 2018-04-18 145 dbef91ec5482239 Martin Wilck 2018-04-18 146 /** dbef91ec5482239 Martin Wilck 2018-04-18 147 * ilog2 - log base 2 of 32-bit or a 64-bit unsigned value dbef91ec5482239 Martin Wilck 2018-04-18 148 * @n: parameter dbef91ec5482239 Martin Wilck 2018-04-18 149 * dbef91ec5482239 Martin Wilck 2018-04-18 150 * constant-capable log of base 2 calculation dbef91ec5482239 Martin Wilck 2018-04-18 151 * - this can be used to initialise global variables from constant data, hence dbef91ec5482239 Martin Wilck 2018-04-18 152 * the massive ternary operator construction dbef91ec5482239 Martin Wilck 2018-04-18 153 * dbef91ec5482239 Martin Wilck 2018-04-18 154 * selects the appropriately-sized optimised version depending on sizeof(n) dbef91ec5482239 Martin Wilck 2018-04-18 155 */ dbef91ec5482239 Martin Wilck 2018-04-18 156 #define ilog2(n) \ dbef91ec5482239 Martin Wilck 2018-04-18 @157 ( \ dbef91ec5482239 Martin Wilck 2018-04-18 158 __builtin_constant_p(n) ? \ 2f78788b55baa34 Jakub Jelinek 2020-12-15 159 ((n) < 2 ? 0 : \ 2f78788b55baa34 Jakub Jelinek 2020-12-15 160 63 - __builtin_clzll(n)) : \ f0d1b0b30d250a0 David Howells 2006-12-08 161 (sizeof(n) <= 4) ? \ f0d1b0b30d250a0 David Howells 2006-12-08 162 __ilog2_u32(n) : \ f0d1b0b30d250a0 David Howells 2006-12-08 163 __ilog2_u64(n) \ f0d1b0b30d250a0 David Howells 2006-12-08 164 ) f0d1b0b30d250a0 David Howells 2006-12-08 165 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki