From: kbuild test robot <lkp@intel.com>
To: "Jason A. Donenfeld" <Jason@zx2c4.com>
Cc: kbuild-all@01.org, linux-kernel@vger.kernel.org,
netdev@vger.kernel.org, davem@davemloft.net,
gregkh@linuxfoundation.org,
"Jason A. Donenfeld" <Jason@zx2c4.com>
Subject: Re: [PATCH net-next v3 17/17] net: WireGuard secure network tunnel
Date: Tue, 11 Sep 2018 20:59:53 +0800 [thread overview]
Message-ID: <201809112045.A5D7cAAW%fengguang.wu@intel.com> (raw)
In-Reply-To: <20180911010838.8818-19-Jason@zx2c4.com>
[-- Attachment #1: Type: text/plain, Size: 45354 bytes --]
Hi Jason,
I love your patch! Yet something to improve:
[auto build test ERROR on net-next/master]
url: https://github.com/0day-ci/linux/commits/Jason-A-Donenfeld/WireGuard-Secure-Network-Tunnel/20180911-185037
config: um-i386_defconfig (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
# save the attached .config to linux build tree
make ARCH=um SUBARCH=i386
All error/warnings (new ones prefixed by >>):
In file included from lib/zinc/chacha20/chacha20-x86_64-glue.h:8:0,
from <command-line>:0:
>> arch/x86/include/asm/cpufeature.h:134:34: warning: 'struct cpuinfo_x86' declared inside parameter list will not be visible outside of this definition or declaration
extern void clear_cpu_cap(struct cpuinfo_x86 *c, unsigned int bit);
^~~~~~~~~~~
In file included from include/linux/compiler_types.h:64:0,
from <command-line>:0:
arch/x86/include/asm/cpufeature.h: In function '_static_cpu_has':
>> arch/x86/include/asm/cpufeature.h:198:52: error: 'struct cpuinfo_um' has no member named 'x86_capability'
[cap_byte] "m" (((const char *)boot_cpu_data.x86_capability)[bit >> 3])
^
include/linux/compiler-gcc.h:182:47: note: in definition of macro 'asm_volatile_goto'
#define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
^
In file included from lib/zinc/chacha20/chacha20-x86_64-glue.h:8:0,
from <command-line>:0:
lib/zinc/chacha20/chacha20-x86_64-glue.h: In function 'chacha20_fpu_init':
>> arch/x86/include/asm/cpufeature.h:65:28: error: 'REQUIRED_MASK0' undeclared (first use in this function); did you mean 'DISABLED_MASK0'?
( CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 0, feature_bit) || \
^
arch/x86/include/asm/cpufeature.h:62:44: note: in definition of macro 'CHECK_BIT_IN_MASK_WORD'
(((bit)>>5)==(word) && (1UL<<((bit)&31) & maskname##word ))
^~~~~~~~
>> arch/x86/include/asm/cpufeature.h:111:32: note: in expansion of macro 'REQUIRED_MASK_BIT_SET'
(__builtin_constant_p(bit) && REQUIRED_MASK_BIT_SET(bit) ? 1 : \
^~~~~~~~~~~~~~~~~~~~~
>> arch/x86/include/asm/cpufeature.h:129:27: note: in expansion of macro 'cpu_has'
#define boot_cpu_has(bit) cpu_has(&boot_cpu_data, bit)
^~~~~~~
>> lib/zinc/chacha20/chacha20-x86_64-glue.h:36:23: note: in expansion of macro 'boot_cpu_has'
chacha20_use_ssse3 = boot_cpu_has(X86_FEATURE_SSSE3);
^~~~~~~~~~~~
arch/x86/include/asm/cpufeature.h:65:28: note: each undeclared identifier is reported only once for each function it appears in
( CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 0, feature_bit) || \
^
arch/x86/include/asm/cpufeature.h:62:44: note: in definition of macro 'CHECK_BIT_IN_MASK_WORD'
(((bit)>>5)==(word) && (1UL<<((bit)&31) & maskname##word ))
^~~~~~~~
>> arch/x86/include/asm/cpufeature.h:111:32: note: in expansion of macro 'REQUIRED_MASK_BIT_SET'
(__builtin_constant_p(bit) && REQUIRED_MASK_BIT_SET(bit) ? 1 : \
^~~~~~~~~~~~~~~~~~~~~
>> arch/x86/include/asm/cpufeature.h:129:27: note: in expansion of macro 'cpu_has'
#define boot_cpu_has(bit) cpu_has(&boot_cpu_data, bit)
^~~~~~~
>> lib/zinc/chacha20/chacha20-x86_64-glue.h:36:23: note: in expansion of macro 'boot_cpu_has'
chacha20_use_ssse3 = boot_cpu_has(X86_FEATURE_SSSE3);
^~~~~~~~~~~~
>> arch/x86/include/asm/cpufeature.h:66:28: error: 'REQUIRED_MASK1' undeclared (first use in this function); did you mean 'REQUIRED_MASK0'?
CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 1, feature_bit) || \
^
arch/x86/include/asm/cpufeature.h:62:44: note: in definition of macro 'CHECK_BIT_IN_MASK_WORD'
(((bit)>>5)==(word) && (1UL<<((bit)&31) & maskname##word ))
^~~~~~~~
>> arch/x86/include/asm/cpufeature.h:111:32: note: in expansion of macro 'REQUIRED_MASK_BIT_SET'
(__builtin_constant_p(bit) && REQUIRED_MASK_BIT_SET(bit) ? 1 : \
^~~~~~~~~~~~~~~~~~~~~
>> arch/x86/include/asm/cpufeature.h:129:27: note: in expansion of macro 'cpu_has'
#define boot_cpu_has(bit) cpu_has(&boot_cpu_data, bit)
^~~~~~~
>> lib/zinc/chacha20/chacha20-x86_64-glue.h:36:23: note: in expansion of macro 'boot_cpu_has'
chacha20_use_ssse3 = boot_cpu_has(X86_FEATURE_SSSE3);
^~~~~~~~~~~~
>> arch/x86/include/asm/cpufeature.h:67:28: error: 'REQUIRED_MASK2' undeclared (first use in this function); did you mean 'REQUIRED_MASK1'?
CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 2, feature_bit) || \
^
arch/x86/include/asm/cpufeature.h:62:44: note: in definition of macro 'CHECK_BIT_IN_MASK_WORD'
(((bit)>>5)==(word) && (1UL<<((bit)&31) & maskname##word ))
^~~~~~~~
>> arch/x86/include/asm/cpufeature.h:111:32: note: in expansion of macro 'REQUIRED_MASK_BIT_SET'
(__builtin_constant_p(bit) && REQUIRED_MASK_BIT_SET(bit) ? 1 : \
^~~~~~~~~~~~~~~~~~~~~
>> arch/x86/include/asm/cpufeature.h:129:27: note: in expansion of macro 'cpu_has'
#define boot_cpu_has(bit) cpu_has(&boot_cpu_data, bit)
^~~~~~~
>> lib/zinc/chacha20/chacha20-x86_64-glue.h:36:23: note: in expansion of macro 'boot_cpu_has'
chacha20_use_ssse3 = boot_cpu_has(X86_FEATURE_SSSE3);
^~~~~~~~~~~~
>> arch/x86/include/asm/cpufeature.h:68:28: error: 'REQUIRED_MASK3' undeclared (first use in this function); did you mean 'REQUIRED_MASK2'?
CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 3, feature_bit) || \
^
arch/x86/include/asm/cpufeature.h:62:44: note: in definition of macro 'CHECK_BIT_IN_MASK_WORD'
(((bit)>>5)==(word) && (1UL<<((bit)&31) & maskname##word ))
^~~~~~~~
>> arch/x86/include/asm/cpufeature.h:111:32: note: in expansion of macro 'REQUIRED_MASK_BIT_SET'
(__builtin_constant_p(bit) && REQUIRED_MASK_BIT_SET(bit) ? 1 : \
^~~~~~~~~~~~~~~~~~~~~
>> arch/x86/include/asm/cpufeature.h:129:27: note: in expansion of macro 'cpu_has'
#define boot_cpu_has(bit) cpu_has(&boot_cpu_data, bit)
^~~~~~~
--
In file included from lib/zinc/poly1305/poly1305-x86_64-glue.h:7:0,
from <command-line>:0:
>> arch/x86/include/asm/cpufeature.h:134:34: warning: 'struct cpuinfo_x86' declared inside parameter list will not be visible outside of this definition or declaration
extern void clear_cpu_cap(struct cpuinfo_x86 *c, unsigned int bit);
^~~~~~~~~~~
In file included from include/linux/compiler_types.h:64:0,
from <command-line>:0:
arch/x86/include/asm/cpufeature.h: In function '_static_cpu_has':
>> arch/x86/include/asm/cpufeature.h:198:52: error: 'struct cpuinfo_um' has no member named 'x86_capability'
[cap_byte] "m" (((const char *)boot_cpu_data.x86_capability)[bit >> 3])
^
include/linux/compiler-gcc.h:182:47: note: in definition of macro 'asm_volatile_goto'
#define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
^
In file included from lib/zinc/poly1305/poly1305-x86_64-glue.h:7:0,
from <command-line>:0:
lib/zinc/poly1305/poly1305-x86_64-glue.h: In function 'poly1305_fpu_init':
>> arch/x86/include/asm/cpufeature.h:65:28: error: 'REQUIRED_MASK0' undeclared (first use in this function); did you mean 'DISABLED_MASK0'?
( CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 0, feature_bit) || \
^
arch/x86/include/asm/cpufeature.h:62:44: note: in definition of macro 'CHECK_BIT_IN_MASK_WORD'
(((bit)>>5)==(word) && (1UL<<((bit)&31) & maskname##word ))
^~~~~~~~
>> arch/x86/include/asm/cpufeature.h:111:32: note: in expansion of macro 'REQUIRED_MASK_BIT_SET'
(__builtin_constant_p(bit) && REQUIRED_MASK_BIT_SET(bit) ? 1 : \
^~~~~~~~~~~~~~~~~~~~~
>> arch/x86/include/asm/cpufeature.h:129:27: note: in expansion of macro 'cpu_has'
#define boot_cpu_has(bit) cpu_has(&boot_cpu_data, bit)
^~~~~~~
>> lib/zinc/poly1305/poly1305-x86_64-glue.h:39:3: note: in expansion of macro 'boot_cpu_has'
boot_cpu_has(X86_FEATURE_AVX) &&
^~~~~~~~~~~~
arch/x86/include/asm/cpufeature.h:65:28: note: each undeclared identifier is reported only once for each function it appears in
( CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 0, feature_bit) || \
^
arch/x86/include/asm/cpufeature.h:62:44: note: in definition of macro 'CHECK_BIT_IN_MASK_WORD'
(((bit)>>5)==(word) && (1UL<<((bit)&31) & maskname##word ))
^~~~~~~~
>> arch/x86/include/asm/cpufeature.h:111:32: note: in expansion of macro 'REQUIRED_MASK_BIT_SET'
(__builtin_constant_p(bit) && REQUIRED_MASK_BIT_SET(bit) ? 1 : \
^~~~~~~~~~~~~~~~~~~~~
>> arch/x86/include/asm/cpufeature.h:129:27: note: in expansion of macro 'cpu_has'
#define boot_cpu_has(bit) cpu_has(&boot_cpu_data, bit)
^~~~~~~
>> lib/zinc/poly1305/poly1305-x86_64-glue.h:39:3: note: in expansion of macro 'boot_cpu_has'
boot_cpu_has(X86_FEATURE_AVX) &&
^~~~~~~~~~~~
>> arch/x86/include/asm/cpufeature.h:66:28: error: 'REQUIRED_MASK1' undeclared (first use in this function); did you mean 'REQUIRED_MASK0'?
CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 1, feature_bit) || \
^
arch/x86/include/asm/cpufeature.h:62:44: note: in definition of macro 'CHECK_BIT_IN_MASK_WORD'
(((bit)>>5)==(word) && (1UL<<((bit)&31) & maskname##word ))
^~~~~~~~
>> arch/x86/include/asm/cpufeature.h:111:32: note: in expansion of macro 'REQUIRED_MASK_BIT_SET'
(__builtin_constant_p(bit) && REQUIRED_MASK_BIT_SET(bit) ? 1 : \
^~~~~~~~~~~~~~~~~~~~~
>> arch/x86/include/asm/cpufeature.h:129:27: note: in expansion of macro 'cpu_has'
#define boot_cpu_has(bit) cpu_has(&boot_cpu_data, bit)
^~~~~~~
>> lib/zinc/poly1305/poly1305-x86_64-glue.h:39:3: note: in expansion of macro 'boot_cpu_has'
boot_cpu_has(X86_FEATURE_AVX) &&
^~~~~~~~~~~~
>> arch/x86/include/asm/cpufeature.h:67:28: error: 'REQUIRED_MASK2' undeclared (first use in this function); did you mean 'REQUIRED_MASK1'?
CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 2, feature_bit) || \
^
arch/x86/include/asm/cpufeature.h:62:44: note: in definition of macro 'CHECK_BIT_IN_MASK_WORD'
(((bit)>>5)==(word) && (1UL<<((bit)&31) & maskname##word ))
^~~~~~~~
>> arch/x86/include/asm/cpufeature.h:111:32: note: in expansion of macro 'REQUIRED_MASK_BIT_SET'
(__builtin_constant_p(bit) && REQUIRED_MASK_BIT_SET(bit) ? 1 : \
^~~~~~~~~~~~~~~~~~~~~
>> arch/x86/include/asm/cpufeature.h:129:27: note: in expansion of macro 'cpu_has'
#define boot_cpu_has(bit) cpu_has(&boot_cpu_data, bit)
^~~~~~~
>> lib/zinc/poly1305/poly1305-x86_64-glue.h:39:3: note: in expansion of macro 'boot_cpu_has'
boot_cpu_has(X86_FEATURE_AVX) &&
^~~~~~~~~~~~
>> arch/x86/include/asm/cpufeature.h:68:28: error: 'REQUIRED_MASK3' undeclared (first use in this function); did you mean 'REQUIRED_MASK2'?
CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 3, feature_bit) || \
^
arch/x86/include/asm/cpufeature.h:62:44: note: in definition of macro 'CHECK_BIT_IN_MASK_WORD'
(((bit)>>5)==(word) && (1UL<<((bit)&31) & maskname##word ))
^~~~~~~~
>> arch/x86/include/asm/cpufeature.h:111:32: note: in expansion of macro 'REQUIRED_MASK_BIT_SET'
(__builtin_constant_p(bit) && REQUIRED_MASK_BIT_SET(bit) ? 1 : \
^~~~~~~~~~~~~~~~~~~~~
>> arch/x86/include/asm/cpufeature.h:129:27: note: in expansion of macro 'cpu_has'
#define boot_cpu_has(bit) cpu_has(&boot_cpu_data, bit)
^~~~~~~
--
lib/zinc/poly1305/poly1305-x86_64.S: Assembler messages:
>> lib/zinc/poly1305/poly1305-x86_64.S:25: Error: bad register name `%rax'
lib/zinc/poly1305/poly1305-x86_64.S:26: Error: bad register name `%rax'
lib/zinc/poly1305/poly1305-x86_64.S:27: Error: bad register name `%rax'
lib/zinc/poly1305/poly1305-x86_64.S:28: Error: bad register name `%rax'
>> lib/zinc/poly1305/poly1305-x86_64.S:30: Error: bad register name `%rsi'
lib/zinc/poly1305/poly1305-x86_64.S:33: Error: bad register name `%rax'
>> lib/zinc/poly1305/poly1305-x86_64.S:34: Error: bad register name `%rcx'
>> lib/zinc/poly1305/poly1305-x86_64.S:35: Error: bad register name `%rsi)'
lib/zinc/poly1305/poly1305-x86_64.S:36: Error: bad register name `%rsi)'
lib/zinc/poly1305/poly1305-x86_64.S:37: Error: bad register name `%rax'
lib/zinc/poly1305/poly1305-x86_64.S:38: Error: bad register name `%rcx'
>> lib/zinc/poly1305/poly1305-x86_64.S:47: Error: bad register name `%rdx'
>> lib/zinc/poly1305/poly1305-x86_64.S:50: Error: bad register name `%rbx'
>> lib/zinc/poly1305/poly1305-x86_64.S:51: Error: bad register name `%r12'
>> lib/zinc/poly1305/poly1305-x86_64.S:52: Error: bad register name `%r13'
>> lib/zinc/poly1305/poly1305-x86_64.S:53: Error: bad register name `%r14'
>> lib/zinc/poly1305/poly1305-x86_64.S:54: Error: bad register name `%r15'
>> lib/zinc/poly1305/poly1305-x86_64.S:55: Error: bad register name `%rdi'
lib/zinc/poly1305/poly1305-x86_64.S:59: Error: bad register name `%rdx'
>> lib/zinc/poly1305/poly1305-x86_64.S:61: Error: bad register name `%rdi)'
lib/zinc/poly1305/poly1305-x86_64.S:62: Error: bad register name `%rdi)'
lib/zinc/poly1305/poly1305-x86_64.S:64: Error: bad register name `%rdi)'
lib/zinc/poly1305/poly1305-x86_64.S:65: Error: bad register name `%rdi)'
lib/zinc/poly1305/poly1305-x86_64.S:66: Error: bad register name `%rdi)'
lib/zinc/poly1305/poly1305-x86_64.S:68: Error: bad register name `%r13'
lib/zinc/poly1305/poly1305-x86_64.S:69: Error: bad register name `%r13'
lib/zinc/poly1305/poly1305-x86_64.S:70: Error: bad register name `%r12'
lib/zinc/poly1305/poly1305-x86_64.S:71: Error: bad register name `%r12'
lib/zinc/poly1305/poly1305-x86_64.S:77: Error: bad register name `%rsi)'
lib/zinc/poly1305/poly1305-x86_64.S:78: Error: bad register name `%rsi)'
lib/zinc/poly1305/poly1305-x86_64.S:79: Error: bad register name `%rsi)'
lib/zinc/poly1305/poly1305-x86_64.S:80: Error: bad register name `%rcx'
lib/zinc/poly1305/poly1305-x86_64.S:81: Error: bad register name `%r14'
lib/zinc/poly1305/poly1305-x86_64.S:82: Error: bad register name `%rax'
>> lib/zinc/poly1305/poly1305-x86_64.S:83: Error: bad register name `%r11'
lib/zinc/poly1305/poly1305-x86_64.S:84: Error: bad register name `%rdx'
lib/zinc/poly1305/poly1305-x86_64.S:86: Error: bad register name `%r14'
lib/zinc/poly1305/poly1305-x86_64.S:87: Error: bad register name `%rax'
lib/zinc/poly1305/poly1305-x86_64.S:88: Error: bad register name `%r11'
lib/zinc/poly1305/poly1305-x86_64.S:89: Error: bad register name `%rdx'
lib/zinc/poly1305/poly1305-x86_64.S:91: Error: bad register name `%rbx'
lib/zinc/poly1305/poly1305-x86_64.S:92: Error: bad register name `%rax'
lib/zinc/poly1305/poly1305-x86_64.S:93: Error: bad register name `%r13'
lib/zinc/poly1305/poly1305-x86_64.S:94: Error: bad register name `%rdx'
lib/zinc/poly1305/poly1305-x86_64.S:96: Error: bad register name `%rbx'
>> lib/zinc/poly1305/poly1305-x86_64.S:97: Error: bad register name `%r10'
lib/zinc/poly1305/poly1305-x86_64.S:98: Error: bad register name `%rax'
lib/zinc/poly1305/poly1305-x86_64.S:99: Error: bad register name `%rdx'
lib/zinc/poly1305/poly1305-x86_64.S:101: Error: bad register name `%r13'
lib/zinc/poly1305/poly1305-x86_64.S:102: Error: bad register name `%rbx'
>> lib/zinc/poly1305/poly1305-x86_64.S:103: Error: bad register name `%r8'
lib/zinc/poly1305/poly1305-x86_64.S:104: Error: bad register name `%rdi'
lib/zinc/poly1305/poly1305-x86_64.S:106: Error: bad register name `%r11'
>> lib/zinc/poly1305/poly1305-x86_64.S:107: Error: bad register name `%r9'
lib/zinc/poly1305/poly1305-x86_64.S:108: Error: bad register name `%rax'
lib/zinc/poly1305/poly1305-x86_64.S:109: Error: bad register name `%r10'
lib/zinc/poly1305/poly1305-x86_64.S:111: Error: bad register name `%rdi'
lib/zinc/poly1305/poly1305-x86_64.S:112: Error: bad register name `%rdi'
lib/zinc/poly1305/poly1305-x86_64.S:113: Error: bad register name `%rdi'
lib/zinc/poly1305/poly1305-x86_64.S:114: Error: bad register name `%r10'
lib/zinc/poly1305/poly1305-x86_64.S:115: Error: bad register name `%rdi'
lib/zinc/poly1305/poly1305-x86_64.S:116: Error: bad register name `%rax'
lib/zinc/poly1305/poly1305-x86_64.S:117: Error: bad register name `%rbx'
lib/zinc/poly1305/poly1305-x86_64.S:118: Error: bad register name `%r10'
lib/zinc/poly1305/poly1305-x86_64.S:120: Error: bad register name `%r12'
lib/zinc/poly1305/poly1305-x86_64.S:121: Error: bad register name `%r15'
>> lib/zinc/poly1305/poly1305-x86_64.S:124: Error: bad register name `%rsp)'
lib/zinc/poly1305/poly1305-x86_64.S:126: Error: bad register name `%r14'
lib/zinc/poly1305/poly1305-x86_64.S:127: Error: bad register name `%rbx'
lib/zinc/poly1305/poly1305-x86_64.S:128: Error: bad register name `%r10'
lib/zinc/poly1305/poly1305-x86_64.S:130: Error: bad register name `%rsp)'
lib/zinc/poly1305/poly1305-x86_64.S:131: Error: bad register name `%rsp)'
lib/zinc/poly1305/poly1305-x86_64.S:132: Error: bad register name `%rsp)'
lib/zinc/poly1305/poly1305-x86_64.S:133: Error: bad register name `%rsp)'
lib/zinc/poly1305/poly1305-x86_64.S:134: Error: bad register name `%rsp)'
lib/zinc/poly1305/poly1305-x86_64.S:135: Error: bad register name `%rsp)'
lib/zinc/poly1305/poly1305-x86_64.S:144: Error: bad register name `%rdi)'
lib/zinc/poly1305/poly1305-x86_64.S:145: Error: bad register name `%rdi)'
lib/zinc/poly1305/poly1305-x86_64.S:146: Error: bad register name `%rdi)'
lib/zinc/poly1305/poly1305-x86_64.S:148: Error: bad register name `%r8'
lib/zinc/poly1305/poly1305-x86_64.S:149: Error: bad register name `%r8'
lib/zinc/poly1305/poly1305-x86_64.S:150: Error: bad register name `%r9'
lib/zinc/poly1305/poly1305-x86_64.S:151: Error: bad register name `%r9'
lib/zinc/poly1305/poly1305-x86_64.S:152: Error: bad register name `%r10'
lib/zinc/poly1305/poly1305-x86_64.S:153: Error: bad register name `%r10'
lib/zinc/poly1305/poly1305-x86_64.S:154: Error: bad register name `%r8'
lib/zinc/poly1305/poly1305-x86_64.S:155: Error: bad register name `%r9'
>> lib/zinc/poly1305/poly1305-x86_64.S:157: Error: bad register name `%rdx)'
lib/zinc/poly1305/poly1305-x86_64.S:158: Error: bad register name `%rdx)'
lib/zinc/poly1305/poly1305-x86_64.S:159: Error: bad register name `%rax'
lib/zinc/poly1305/poly1305-x86_64.S:160: Error: bad register name `%rcx'
--
In file included from lib/zinc/curve25519/curve25519-x86_64-glue.h:8:0,
from <command-line>:0:
>> arch/x86/include/asm/cpufeature.h:134:34: warning: 'struct cpuinfo_x86' declared inside parameter list will not be visible outside of this definition or declaration
extern void clear_cpu_cap(struct cpuinfo_x86 *c, unsigned int bit);
^~~~~~~~~~~
In file included from include/linux/compiler_types.h:64:0,
from <command-line>:0:
arch/x86/include/asm/cpufeature.h: In function '_static_cpu_has':
>> arch/x86/include/asm/cpufeature.h:198:52: error: 'struct cpuinfo_um' has no member named 'x86_capability'
[cap_byte] "m" (((const char *)boot_cpu_data.x86_capability)[bit >> 3])
^
include/linux/compiler-gcc.h:182:47: note: in definition of macro 'asm_volatile_goto'
#define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
^
In file included from lib/zinc/curve25519/curve25519-x86_64-glue.h:8:0,
from <command-line>:0:
lib/zinc/curve25519/curve25519-x86_64-glue.h: In function 'curve25519_fpu_init':
>> arch/x86/include/asm/cpufeature.h:65:28: error: 'REQUIRED_MASK0' undeclared (first use in this function); did you mean 'DISABLED_MASK0'?
( CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 0, feature_bit) || \
^
arch/x86/include/asm/cpufeature.h:62:44: note: in definition of macro 'CHECK_BIT_IN_MASK_WORD'
(((bit)>>5)==(word) && (1UL<<((bit)&31) & maskname##word ))
^~~~~~~~
>> arch/x86/include/asm/cpufeature.h:111:32: note: in expansion of macro 'REQUIRED_MASK_BIT_SET'
(__builtin_constant_p(bit) && REQUIRED_MASK_BIT_SET(bit) ? 1 : \
^~~~~~~~~~~~~~~~~~~~~
>> arch/x86/include/asm/cpufeature.h:129:27: note: in expansion of macro 'cpu_has'
#define boot_cpu_has(bit) cpu_has(&boot_cpu_data, bit)
^~~~~~~
>> lib/zinc/curve25519/curve25519-x86_64-glue.h:18:24: note: in expansion of macro 'boot_cpu_has'
curve25519_use_bmi2 = boot_cpu_has(X86_FEATURE_BMI2);
^~~~~~~~~~~~
arch/x86/include/asm/cpufeature.h:65:28: note: each undeclared identifier is reported only once for each function it appears in
( CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 0, feature_bit) || \
^
arch/x86/include/asm/cpufeature.h:62:44: note: in definition of macro 'CHECK_BIT_IN_MASK_WORD'
(((bit)>>5)==(word) && (1UL<<((bit)&31) & maskname##word ))
^~~~~~~~
>> arch/x86/include/asm/cpufeature.h:111:32: note: in expansion of macro 'REQUIRED_MASK_BIT_SET'
(__builtin_constant_p(bit) && REQUIRED_MASK_BIT_SET(bit) ? 1 : \
^~~~~~~~~~~~~~~~~~~~~
>> arch/x86/include/asm/cpufeature.h:129:27: note: in expansion of macro 'cpu_has'
#define boot_cpu_has(bit) cpu_has(&boot_cpu_data, bit)
^~~~~~~
>> lib/zinc/curve25519/curve25519-x86_64-glue.h:18:24: note: in expansion of macro 'boot_cpu_has'
curve25519_use_bmi2 = boot_cpu_has(X86_FEATURE_BMI2);
^~~~~~~~~~~~
>> arch/x86/include/asm/cpufeature.h:66:28: error: 'REQUIRED_MASK1' undeclared (first use in this function); did you mean 'REQUIRED_MASK0'?
CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 1, feature_bit) || \
^
arch/x86/include/asm/cpufeature.h:62:44: note: in definition of macro 'CHECK_BIT_IN_MASK_WORD'
(((bit)>>5)==(word) && (1UL<<((bit)&31) & maskname##word ))
^~~~~~~~
>> arch/x86/include/asm/cpufeature.h:111:32: note: in expansion of macro 'REQUIRED_MASK_BIT_SET'
(__builtin_constant_p(bit) && REQUIRED_MASK_BIT_SET(bit) ? 1 : \
^~~~~~~~~~~~~~~~~~~~~
>> arch/x86/include/asm/cpufeature.h:129:27: note: in expansion of macro 'cpu_has'
#define boot_cpu_has(bit) cpu_has(&boot_cpu_data, bit)
^~~~~~~
>> lib/zinc/curve25519/curve25519-x86_64-glue.h:18:24: note: in expansion of macro 'boot_cpu_has'
curve25519_use_bmi2 = boot_cpu_has(X86_FEATURE_BMI2);
^~~~~~~~~~~~
>> arch/x86/include/asm/cpufeature.h:67:28: error: 'REQUIRED_MASK2' undeclared (first use in this function); did you mean 'REQUIRED_MASK1'?
CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 2, feature_bit) || \
^
arch/x86/include/asm/cpufeature.h:62:44: note: in definition of macro 'CHECK_BIT_IN_MASK_WORD'
(((bit)>>5)==(word) && (1UL<<((bit)&31) & maskname##word ))
^~~~~~~~
>> arch/x86/include/asm/cpufeature.h:111:32: note: in expansion of macro 'REQUIRED_MASK_BIT_SET'
(__builtin_constant_p(bit) && REQUIRED_MASK_BIT_SET(bit) ? 1 : \
^~~~~~~~~~~~~~~~~~~~~
>> arch/x86/include/asm/cpufeature.h:129:27: note: in expansion of macro 'cpu_has'
#define boot_cpu_has(bit) cpu_has(&boot_cpu_data, bit)
^~~~~~~
>> lib/zinc/curve25519/curve25519-x86_64-glue.h:18:24: note: in expansion of macro 'boot_cpu_has'
curve25519_use_bmi2 = boot_cpu_has(X86_FEATURE_BMI2);
^~~~~~~~~~~~
>> arch/x86/include/asm/cpufeature.h:68:28: error: 'REQUIRED_MASK3' undeclared (first use in this function); did you mean 'REQUIRED_MASK2'?
CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 3, feature_bit) || \
^
arch/x86/include/asm/cpufeature.h:62:44: note: in definition of macro 'CHECK_BIT_IN_MASK_WORD'
(((bit)>>5)==(word) && (1UL<<((bit)&31) & maskname##word ))
^~~~~~~~
>> arch/x86/include/asm/cpufeature.h:111:32: note: in expansion of macro 'REQUIRED_MASK_BIT_SET'
(__builtin_constant_p(bit) && REQUIRED_MASK_BIT_SET(bit) ? 1 : \
^~~~~~~~~~~~~~~~~~~~~
>> arch/x86/include/asm/cpufeature.h:129:27: note: in expansion of macro 'cpu_has'
#define boot_cpu_has(bit) cpu_has(&boot_cpu_data, bit)
^~~~~~~
..
vim +198 arch/x86/include/asm/cpufeature.h
80a208bd arch/x86/include/asm/cpufeature.h Borislav Petkov 2014-06-24 50
0f8d2b92 include/asm-x86/cpufeature.h Ingo Molnar 2008-02-26 51 #define test_cpu_cap(c, bit) \
0f8d2b92 include/asm-x86/cpufeature.h Ingo Molnar 2008-02-26 @52 test_bit(bit, (unsigned long *)((c)->x86_capability))
0f8d2b92 include/asm-x86/cpufeature.h Ingo Molnar 2008-02-26 53
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 54 /*
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 55 * There are 32 bits/features in each mask word. The high bits
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 56 * (selected with (bit>>5) give us the word number and the low 5
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 57 * bits give us the bit/feature number inside the word.
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 58 * (1UL<<((bit)&31) gives us a mask for the feature_bit so we can
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 59 * see if it is set in the mask word.
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 60 */
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 61 #define CHECK_BIT_IN_MASK_WORD(maskname, word, bit) \
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 62 (((bit)>>5)==(word) && (1UL<<((bit)&31) & maskname##word ))
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 63
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 64 #define REQUIRED_MASK_BIT_SET(feature_bit) \
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 @65 ( CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 0, feature_bit) || \
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 @66 CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 1, feature_bit) || \
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 @67 CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 2, feature_bit) || \
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 @68 CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 3, feature_bit) || \
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 @69 CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 4, feature_bit) || \
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 @70 CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 5, feature_bit) || \
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 @71 CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 6, feature_bit) || \
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 @72 CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 7, feature_bit) || \
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 @73 CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 8, feature_bit) || \
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 @74 CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 9, feature_bit) || \
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 @75 CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 10, feature_bit) || \
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 @76 CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 11, feature_bit) || \
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 @77 CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 12, feature_bit) || \
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 @78 CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 13, feature_bit) || \
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 @79 CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 14, feature_bit) || \
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 @80 CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 15, feature_bit) || \
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 @81 CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 16, feature_bit) || \
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 @82 CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 17, feature_bit) || \
95ca0ee8 arch/x86/include/asm/cpufeature.h David Woodhouse 2018-01-25 @83 CHECK_BIT_IN_MASK_WORD(REQUIRED_MASK, 18, feature_bit) || \
1e61f78b arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 @84 REQUIRED_MASK_CHECK || \
95ca0ee8 arch/x86/include/asm/cpufeature.h David Woodhouse 2018-01-25 85 BUILD_BUG_ON_ZERO(NCAPINTS != 19))
349c004e arch/x86/include/asm/cpufeature.h Christoph Lameter 2011-03-12 86
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 87 #define DISABLED_MASK_BIT_SET(feature_bit) \
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 88 ( CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 0, feature_bit) || \
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 89 CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 1, feature_bit) || \
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 90 CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 2, feature_bit) || \
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 91 CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 3, feature_bit) || \
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 92 CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 4, feature_bit) || \
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 93 CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 5, feature_bit) || \
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 94 CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 6, feature_bit) || \
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 95 CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 7, feature_bit) || \
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 96 CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 8, feature_bit) || \
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 97 CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 9, feature_bit) || \
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 98 CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 10, feature_bit) || \
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 99 CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 11, feature_bit) || \
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 100 CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 12, feature_bit) || \
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 101 CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 13, feature_bit) || \
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 102 CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 14, feature_bit) || \
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 103 CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 15, feature_bit) || \
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 104 CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 16, feature_bit) || \
8eda072e arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 105 CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 17, feature_bit) || \
95ca0ee8 arch/x86/include/asm/cpufeature.h David Woodhouse 2018-01-25 106 CHECK_BIT_IN_MASK_WORD(DISABLED_MASK, 18, feature_bit) || \
1e61f78b arch/x86/include/asm/cpufeature.h Dave Hansen 2016-06-29 107 DISABLED_MASK_CHECK || \
95ca0ee8 arch/x86/include/asm/cpufeature.h David Woodhouse 2018-01-25 108 BUILD_BUG_ON_ZERO(NCAPINTS != 19))
381aa07a arch/x86/include/asm/cpufeature.h Dave Hansen 2014-09-11 109
349c004e arch/x86/include/asm/cpufeature.h Christoph Lameter 2011-03-12 110 #define cpu_has(c, bit) \
349c004e arch/x86/include/asm/cpufeature.h Christoph Lameter 2011-03-12 @111 (__builtin_constant_p(bit) && REQUIRED_MASK_BIT_SET(bit) ? 1 : \
0f8d2b92 include/asm-x86/cpufeature.h Ingo Molnar 2008-02-26 @112 test_cpu_cap(c, bit))
0f8d2b92 include/asm-x86/cpufeature.h Ingo Molnar 2008-02-26 113
349c004e arch/x86/include/asm/cpufeature.h Christoph Lameter 2011-03-12 114 #define this_cpu_has(bit) \
349c004e arch/x86/include/asm/cpufeature.h Christoph Lameter 2011-03-12 115 (__builtin_constant_p(bit) && REQUIRED_MASK_BIT_SET(bit) ? 1 : \
349c004e arch/x86/include/asm/cpufeature.h Christoph Lameter 2011-03-12 116 x86_this_cpu_test_bit(bit, (unsigned long *)&cpu_info.x86_capability))
349c004e arch/x86/include/asm/cpufeature.h Christoph Lameter 2011-03-12 117
381aa07a arch/x86/include/asm/cpufeature.h Dave Hansen 2014-09-11 118 /*
381aa07a arch/x86/include/asm/cpufeature.h Dave Hansen 2014-09-11 119 * This macro is for detection of features which need kernel
381aa07a arch/x86/include/asm/cpufeature.h Dave Hansen 2014-09-11 120 * infrastructure to be used. It may *not* directly test the CPU
381aa07a arch/x86/include/asm/cpufeature.h Dave Hansen 2014-09-11 121 * itself. Use the cpu_has() family if you want true runtime
381aa07a arch/x86/include/asm/cpufeature.h Dave Hansen 2014-09-11 122 * testing of CPU features, like in hypervisor code where you are
381aa07a arch/x86/include/asm/cpufeature.h Dave Hansen 2014-09-11 123 * supporting a possible guest feature where host support for it
381aa07a arch/x86/include/asm/cpufeature.h Dave Hansen 2014-09-11 124 * is not relevant.
381aa07a arch/x86/include/asm/cpufeature.h Dave Hansen 2014-09-11 125 */
381aa07a arch/x86/include/asm/cpufeature.h Dave Hansen 2014-09-11 126 #define cpu_feature_enabled(bit) \
f2cc8e07 arch/x86/include/asm/cpufeature.h Borislav Petkov 2016-02-16 127 (__builtin_constant_p(bit) && DISABLED_MASK_BIT_SET(bit) ? 0 : static_cpu_has(bit))
381aa07a arch/x86/include/asm/cpufeature.h Dave Hansen 2014-09-11 128
7b11fb51 include/asm-x86/cpufeature.h H. Peter Anvin 2008-01-30 @129 #define boot_cpu_has(bit) cpu_has(&boot_cpu_data, bit)
7b11fb51 include/asm-x86/cpufeature.h H. Peter Anvin 2008-01-30 130
53756d37 include/asm-x86/cpufeature.h Jeremy Fitzhardinge 2008-01-30 131 #define set_cpu_cap(c, bit) set_bit(bit, (unsigned long *)((c)->x86_capability))
0b00de85 arch/x86/include/asm/cpufeature.h Andi Kleen 2017-10-13 132
0b00de85 arch/x86/include/asm/cpufeature.h Andi Kleen 2017-10-13 133 extern void setup_clear_cpu_cap(unsigned int bit);
0b00de85 arch/x86/include/asm/cpufeature.h Andi Kleen 2017-10-13 @134 extern void clear_cpu_cap(struct cpuinfo_x86 *c, unsigned int bit);
0b00de85 arch/x86/include/asm/cpufeature.h Andi Kleen 2017-10-13 135
404ee5b1 include/asm-x86/cpufeature.h Andi Kleen 2008-01-30 136 #define setup_force_cpu_cap(bit) do { \
404ee5b1 include/asm-x86/cpufeature.h Andi Kleen 2008-01-30 137 set_cpu_cap(&boot_cpu_data, bit); \
3e0c3737 arch/x86/include/asm/cpufeature.h Yinghai Lu 2009-05-09 138 set_bit(bit, (unsigned long *)cpu_caps_set); \
404ee5b1 include/asm-x86/cpufeature.h Andi Kleen 2008-01-30 139 } while (0)
53756d37 include/asm-x86/cpufeature.h Jeremy Fitzhardinge 2008-01-30 140
6cbd2171 arch/x86/include/asm/cpufeature.h Thomas Gleixner 2017-12-04 141 #define setup_force_cpu_bug(bit) setup_force_cpu_cap(bit)
6cbd2171 arch/x86/include/asm/cpufeature.h Thomas Gleixner 2017-12-04 142
b1ae32db arch/x86/include/asm/cpufeature.h Alexei Starovoitov 2018-05-13 143 #if defined(__clang__) && !defined(CC_HAVE_ASM_GOTO)
b1ae32db arch/x86/include/asm/cpufeature.h Alexei Starovoitov 2018-05-13 144
b1ae32db arch/x86/include/asm/cpufeature.h Alexei Starovoitov 2018-05-13 145 /*
b1ae32db arch/x86/include/asm/cpufeature.h Alexei Starovoitov 2018-05-13 146 * Workaround for the sake of BPF compilation which utilizes kernel
b1ae32db arch/x86/include/asm/cpufeature.h Alexei Starovoitov 2018-05-13 147 * headers, but clang does not support ASM GOTO and fails the build.
b1ae32db arch/x86/include/asm/cpufeature.h Alexei Starovoitov 2018-05-13 148 */
b1ae32db arch/x86/include/asm/cpufeature.h Alexei Starovoitov 2018-05-13 149 #ifndef __BPF_TRACING__
b1ae32db arch/x86/include/asm/cpufeature.h Alexei Starovoitov 2018-05-13 150 #warning "Compiler lacks ASM_GOTO support. Add -D __BPF_TRACING__ to your compiler arguments"
b1ae32db arch/x86/include/asm/cpufeature.h Alexei Starovoitov 2018-05-13 151 #endif
b1ae32db arch/x86/include/asm/cpufeature.h Alexei Starovoitov 2018-05-13 152
b1ae32db arch/x86/include/asm/cpufeature.h Alexei Starovoitov 2018-05-13 153 #define static_cpu_has(bit) boot_cpu_has(bit)
b1ae32db arch/x86/include/asm/cpufeature.h Alexei Starovoitov 2018-05-13 154
b1ae32db arch/x86/include/asm/cpufeature.h Alexei Starovoitov 2018-05-13 155 #else
b1ae32db arch/x86/include/asm/cpufeature.h Alexei Starovoitov 2018-05-13 156
a3c8acd0 arch/x86/include/asm/cpufeature.h H. Peter Anvin 2010-05-11 157 /*
a3c8acd0 arch/x86/include/asm/cpufeature.h H. Peter Anvin 2010-05-11 158 * Static testing of CPU features. Used the same as boot_cpu_has().
a362bf9f arch/x86/include/asm/cpufeature.h Borislav Petkov 2016-01-27 159 * These will statically patch the target code for additional
a362bf9f arch/x86/include/asm/cpufeature.h Borislav Petkov 2016-01-27 160 * performance.
a3c8acd0 arch/x86/include/asm/cpufeature.h H. Peter Anvin 2010-05-11 161 */
bc696ca0 arch/x86/include/asm/cpufeature.h Borislav Petkov 2016-01-26 162 static __always_inline __pure bool _static_cpu_has(u16 bit)
4a90a99c arch/x86/include/asm/cpufeature.h Borislav Petkov 2013-06-09 163 {
2476f2fa arch/x86/include/asm/cpufeature.h Brian Gerst 2016-01-27 164 asm_volatile_goto("1: jmp 6f\n"
4a90a99c arch/x86/include/asm/cpufeature.h Borislav Petkov 2013-06-09 165 "2:\n"
4332195c arch/x86/include/asm/cpufeature.h Borislav Petkov 2014-12-27 166 ".skip -(((5f-4f) - (2b-1b)) > 0) * "
4332195c arch/x86/include/asm/cpufeature.h Borislav Petkov 2014-12-27 167 "((5f-4f) - (2b-1b)),0x90\n"
4332195c arch/x86/include/asm/cpufeature.h Borislav Petkov 2014-12-27 168 "3:\n"
4a90a99c arch/x86/include/asm/cpufeature.h Borislav Petkov 2013-06-09 169 ".section .altinstructions,\"a\"\n"
4a90a99c arch/x86/include/asm/cpufeature.h Borislav Petkov 2013-06-09 170 " .long 1b - .\n" /* src offset */
4332195c arch/x86/include/asm/cpufeature.h Borislav Petkov 2014-12-27 171 " .long 4f - .\n" /* repl offset */
3197b04b arch/x86/include/asm/cpufeature.h Peter Zijlstra 2018-01-16 172 " .word %P[always]\n" /* always replace */
4332195c arch/x86/include/asm/cpufeature.h Borislav Petkov 2014-12-27 173 " .byte 3b - 1b\n" /* src len */
4332195c arch/x86/include/asm/cpufeature.h Borislav Petkov 2014-12-27 174 " .byte 5f - 4f\n" /* repl len */
4332195c arch/x86/include/asm/cpufeature.h Borislav Petkov 2014-12-27 175 " .byte 3b - 2b\n" /* pad len */
4a90a99c arch/x86/include/asm/cpufeature.h Borislav Petkov 2013-06-09 176 ".previous\n"
4a90a99c arch/x86/include/asm/cpufeature.h Borislav Petkov 2013-06-09 177 ".section .altinstr_replacement,\"ax\"\n"
48c7a250 arch/x86/include/asm/cpufeature.h Borislav Petkov 2015-01-05 178 "4: jmp %l[t_no]\n"
4332195c arch/x86/include/asm/cpufeature.h Borislav Petkov 2014-12-27 179 "5:\n"
4a90a99c arch/x86/include/asm/cpufeature.h Borislav Petkov 2013-06-09 180 ".previous\n"
4a90a99c arch/x86/include/asm/cpufeature.h Borislav Petkov 2013-06-09 181 ".section .altinstructions,\"a\"\n"
4a90a99c arch/x86/include/asm/cpufeature.h Borislav Petkov 2013-06-09 182 " .long 1b - .\n" /* src offset */
4a90a99c arch/x86/include/asm/cpufeature.h Borislav Petkov 2013-06-09 183 " .long 0\n" /* no replacement */
3197b04b arch/x86/include/asm/cpufeature.h Peter Zijlstra 2018-01-16 184 " .word %P[feature]\n" /* feature bit */
4332195c arch/x86/include/asm/cpufeature.h Borislav Petkov 2014-12-27 185 " .byte 3b - 1b\n" /* src len */
4a90a99c arch/x86/include/asm/cpufeature.h Borislav Petkov 2013-06-09 186 " .byte 0\n" /* repl len */
4332195c arch/x86/include/asm/cpufeature.h Borislav Petkov 2014-12-27 187 " .byte 0\n" /* pad len */
4a90a99c arch/x86/include/asm/cpufeature.h Borislav Petkov 2013-06-09 188 ".previous\n"
2476f2fa arch/x86/include/asm/cpufeature.h Brian Gerst 2016-01-27 189 ".section .altinstr_aux,\"ax\"\n"
2476f2fa arch/x86/include/asm/cpufeature.h Brian Gerst 2016-01-27 190 "6:\n"
2476f2fa arch/x86/include/asm/cpufeature.h Brian Gerst 2016-01-27 191 " testb %[bitnum],%[cap_byte]\n"
2476f2fa arch/x86/include/asm/cpufeature.h Brian Gerst 2016-01-27 192 " jnz %l[t_yes]\n"
2476f2fa arch/x86/include/asm/cpufeature.h Brian Gerst 2016-01-27 193 " jmp %l[t_no]\n"
2476f2fa arch/x86/include/asm/cpufeature.h Brian Gerst 2016-01-27 194 ".previous\n"
3197b04b arch/x86/include/asm/cpufeature.h Peter Zijlstra 2018-01-16 195 : : [feature] "i" (bit),
3197b04b arch/x86/include/asm/cpufeature.h Peter Zijlstra 2018-01-16 196 [always] "i" (X86_FEATURE_ALWAYS),
2476f2fa arch/x86/include/asm/cpufeature.h Brian Gerst 2016-01-27 197 [bitnum] "i" (1 << (bit & 7)),
2476f2fa arch/x86/include/asm/cpufeature.h Brian Gerst 2016-01-27 @198 [cap_byte] "m" (((const char *)boot_cpu_data.x86_capability)[bit >> 3])
2476f2fa arch/x86/include/asm/cpufeature.h Brian Gerst 2016-01-27 199 : : t_yes, t_no);
2476f2fa arch/x86/include/asm/cpufeature.h Brian Gerst 2016-01-27 200 t_yes:
4a90a99c arch/x86/include/asm/cpufeature.h Borislav Petkov 2013-06-09 201 return true;
4a90a99c arch/x86/include/asm/cpufeature.h Borislav Petkov 2013-06-09 202 t_no:
4a90a99c arch/x86/include/asm/cpufeature.h Borislav Petkov 2013-06-09 203 return false;
4a90a99c arch/x86/include/asm/cpufeature.h Borislav Petkov 2013-06-09 204 }
4a90a99c arch/x86/include/asm/cpufeature.h Borislav Petkov 2013-06-09 205
:::::: The code at line 198 was first introduced by commit
:::::: 2476f2fa20568bd5d9e09cd35bcd73e99a6f4cc6 x86/alternatives: Discard dynamic check after init
:::::: TO: Brian Gerst <brgerst@gmail.com>
:::::: CC: Ingo Molnar <mingo@kernel.org>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 7940 bytes --]
next prev parent reply other threads:[~2018-09-11 13:02 UTC|newest]
Thread overview: 103+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-11 1:08 [PATCH net-next v3 00/17] WireGuard: Secure Network Tunnel Jason A. Donenfeld
2018-09-11 1:08 ` [PATCH net-next v3 01/17] asm: simd context helper API Jason A. Donenfeld
2018-09-12 6:14 ` Kevin Easton
2018-09-12 18:10 ` Jason A. Donenfeld
2018-09-13 5:03 ` Kevin Easton
2018-09-13 13:52 ` Jason A. Donenfeld
2018-09-13 13:53 ` Jason A. Donenfeld
2018-09-15 19:58 ` Andy Lutomirski
2018-09-15 20:01 ` Jason A. Donenfeld
2018-09-17 13:14 ` Jason A. Donenfeld
2018-09-11 1:08 ` [PATCH net-next v3 02/17] zinc: introduce minimal cryptography library Jason A. Donenfeld
2018-09-11 10:08 ` Ard Biesheuvel
2018-09-11 14:56 ` Greg Kroah-Hartman
2018-09-11 21:47 ` Eric Biggers
2018-09-11 22:02 ` Jason A. Donenfeld
2018-09-11 23:30 ` Andrew Lunn
2018-09-11 23:57 ` David Miller
2018-09-12 0:02 ` Jason A. Donenfeld
2018-09-17 4:09 ` Andy Lutomirski
2018-09-17 4:45 ` David Miller
2018-09-17 14:55 ` Andy Lutomirski
2018-09-17 14:59 ` Jason A. Donenfeld
2018-09-17 5:07 ` Jason A. Donenfeld
2018-09-17 14:53 ` Andy Lutomirski
2018-09-17 14:59 ` Jason A. Donenfeld
2018-09-17 16:24 ` Jason A. Donenfeld
2018-09-18 16:06 ` Ard Biesheuvel
2018-09-18 16:45 ` Jason A. Donenfeld
2018-09-17 5:26 ` Ard Biesheuvel
2018-09-17 14:51 ` Andy Lutomirski
2018-09-17 15:28 ` Jason A. Donenfeld
2018-09-17 16:06 ` Andy Lutomirski
2018-09-17 16:17 ` Jason A. Donenfeld
2018-09-17 15:31 ` Jason A. Donenfeld
2018-09-17 16:07 ` Andy Lutomirski
2018-09-17 16:16 ` Jason A. Donenfeld
2018-09-17 16:18 ` Andy Lutomirski
2018-09-18 0:56 ` Jason A. Donenfeld
2018-09-17 15:52 ` Jason A. Donenfeld
2018-09-18 4:21 ` Herbert Xu
2018-09-18 4:26 ` Jason A. Donenfeld
2018-09-18 18:53 ` Ard Biesheuvel
2018-09-18 20:36 ` Jason A. Donenfeld
2018-09-19 16:55 ` Ard Biesheuvel
2018-09-11 22:16 ` Andy Lutomirski
2018-09-11 22:18 ` Jason A. Donenfeld
2018-09-11 23:01 ` Andy Lutomirski
2018-09-12 0:01 ` Jason A. Donenfeld
2018-09-12 4:29 ` Jason A. Donenfeld
2018-09-11 21:22 ` Jason A. Donenfeld
2018-09-12 22:56 ` Ard Biesheuvel
2018-09-12 23:45 ` Andy Lutomirski
2018-09-13 5:41 ` Ard Biesheuvel
2018-09-13 14:32 ` Jason A. Donenfeld
2018-09-13 15:42 ` Ard Biesheuvel
2018-09-13 15:58 ` Jason A. Donenfeld
2018-09-14 6:15 ` Ard Biesheuvel
2018-09-14 9:53 ` Jason A. Donenfeld
2018-09-13 6:39 ` Milan Broz
2018-09-13 14:34 ` Jason A. Donenfeld
2018-09-13 15:26 ` Andy Lutomirski
2018-09-13 14:18 ` Jason A. Donenfeld
2018-09-13 15:07 ` Ard Biesheuvel
2018-09-13 14:15 ` Jason A. Donenfeld
2018-09-13 15:04 ` Ard Biesheuvel
2018-09-13 15:45 ` Jason A. Donenfeld
2018-09-11 22:08 ` Eric Biggers
2018-09-12 18:16 ` Jason A. Donenfeld
2018-09-12 18:19 ` Ard Biesheuvel
2018-09-12 18:34 ` Eric Biggers
2018-09-14 6:21 ` Ard Biesheuvel
2018-09-11 1:08 ` [PATCH net-next v3 03/17] zinc: ChaCha20 generic C implementation Jason A. Donenfeld
2018-09-11 1:08 ` [PATCH net-next v3 04/17] zinc: ChaCha20 ARM and ARM64 implementations Jason A. Donenfeld
2018-09-11 1:08 ` [PATCH net-next v3 05/17] zinc: ChaCha20 x86_64 implementation Jason A. Donenfeld
2018-09-11 8:22 ` Thomas Gleixner
2018-09-11 9:00 ` Samuel Neves
2018-09-11 9:09 ` Thomas Gleixner
2018-09-11 21:12 ` Jason A. Donenfeld
2018-09-11 21:27 ` Thomas Gleixner
2018-09-11 21:28 ` Jason A. Donenfeld
2018-09-11 21:48 ` Eric Biggers
2018-09-11 22:04 ` Jason A. Donenfeld
2018-09-11 1:08 ` [PATCH net-next v3 06/17] zinc: ChaCha20 MIPS32r2 implementation Jason A. Donenfeld
2018-09-11 1:08 ` [PATCH net-next v3 07/17] zinc: Poly1305 generic C implementation and selftest Jason A. Donenfeld
2018-09-11 1:17 ` Jason A. Donenfeld
2018-09-11 1:08 ` [PATCH net-next v3 07/17] zinc: Poly1305 generic C implementations " Jason A. Donenfeld
2018-09-11 1:08 ` [PATCH net-next v3 08/17] zinc: Poly1305 ARM and ARM64 implementations Jason A. Donenfeld
2018-09-11 1:08 ` [PATCH net-next v3 09/17] zinc: Poly1305 x86_64 implementation Jason A. Donenfeld
2018-09-11 1:08 ` [PATCH net-next v3 10/17] zinc: Poly1305 MIPS32r2 and MIPS64 implementations Jason A. Donenfeld
2018-09-11 1:08 ` [PATCH net-next v3 11/17] zinc: ChaCha20Poly1305 construction and selftest Jason A. Donenfeld
2018-09-11 1:08 ` [PATCH net-next v3 12/17] zinc: BLAKE2s generic C implementation " Jason A. Donenfeld
2018-09-11 1:08 ` [PATCH net-next v3 13/17] zinc: BLAKE2s x86_64 implementation Jason A. Donenfeld
2018-09-11 1:08 ` [PATCH net-next v3 14/17] zinc: Curve25519 generic C implementations and selftest Jason A. Donenfeld
2018-09-11 1:08 ` [PATCH net-next v3 15/17] zinc: Curve25519 ARM implementation Jason A. Donenfeld
2018-09-11 1:08 ` [PATCH net-next v3 16/17] zinc: Curve25519 x86_64 implementation Jason A. Donenfeld
2018-09-11 1:08 ` [PATCH net-next v3 17/17] net: WireGuard secure network tunnel Jason A. Donenfeld
2018-09-11 12:59 ` kbuild test robot [this message]
2018-09-11 20:53 ` Jason A. Donenfeld
2018-09-11 13:17 ` kbuild test robot
2018-09-11 21:05 ` Jason A. Donenfeld
2018-09-11 13:30 ` Andrew Lunn
2018-09-11 21:08 ` Jason A. Donenfeld
2018-09-11 21:55 ` Andrew Lunn
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201809112045.A5D7cAAW%fengguang.wu@intel.com \
--to=lkp@intel.com \
--cc=Jason@zx2c4.com \
--cc=davem@davemloft.net \
--cc=gregkh@linuxfoundation.org \
--cc=kbuild-all@01.org \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).