arch/x86/crypto/curve25519-x86_64.c:518:3: error: inline assembly requires more registers than available
by kbuild test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: c45e8bccecaf633480d378daff11e122dfd5e96d
commit: 07b586fe06625b0b610dc3d3a969c51913d143d4 crypto: x86/curve25519 - replace with formally verified implementation
date: 3 months ago
config: x86_64-randconfig-a002-20200501 (attached as .config)
compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project 1ccde533425a4ba9d379510206ad680ff9702129)
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
git checkout 07b586fe06625b0b610dc3d3a969c51913d143d4
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
>> arch/x86/crypto/curve25519-x86_64.c:518:3: error: inline assembly requires more registers than available
" movq 0(%1), %%rdx;" /* f[0] */
^
>> arch/x86/crypto/curve25519-x86_64.c:518:3: error: inline assembly requires more registers than available
>> arch/x86/crypto/curve25519-x86_64.c:518:3: error: inline assembly requires more registers than available
>> arch/x86/crypto/curve25519-x86_64.c:518:3: error: inline assembly requires more registers than available
>> arch/x86/crypto/curve25519-x86_64.c:518:3: error: inline assembly requires more registers than available
>> arch/x86/crypto/curve25519-x86_64.c:518:3: error: inline assembly requires more registers than available
>> arch/x86/crypto/curve25519-x86_64.c:518:3: error: inline assembly requires more registers than available
>> arch/x86/crypto/curve25519-x86_64.c:518:3: error: inline assembly requires more registers than available
>> arch/x86/crypto/curve25519-x86_64.c:518:3: error: inline assembly requires more registers than available
9 errors generated.
vim +518 arch/x86/crypto/curve25519-x86_64.c
509
510 /* Computes the square of a field element: out <- f * f
511 * Uses the 8-element buffer tmp for intermediate results */
512 static inline void fsqr(u64 *out, const u64 *f, u64 *tmp)
513 {
514 asm volatile(
515 /* Compute the raw multiplication: tmp <- f * f */
516
517 /* Step 1: Compute all partial products */
> 518 " movq 0(%1), %%rdx;" /* f[0] */
519 " mulxq 8(%1), %%r8, %%r14;" " xor %%r15, %%r15;" /* f[1]*f[0] */
520 " mulxq 16(%1), %%r9, %%r10;" " adcx %%r14, %%r9;" /* f[2]*f[0] */
521 " mulxq 24(%1), %%rax, %%rcx;" " adcx %%rax, %%r10;" /* f[3]*f[0] */
522 " movq 24(%1), %%rdx;" /* f[3] */
523 " mulxq 8(%1), %%r11, %%r12;" " adcx %%rcx, %%r11;" /* f[1]*f[3] */
524 " mulxq 16(%1), %%rax, %%r13;" " adcx %%rax, %%r12;" /* f[2]*f[3] */
525 " movq 8(%1), %%rdx;" " adcx %%r15, %%r13;" /* f1 */
526 " mulxq 16(%1), %%rax, %%rcx;" " mov $0, %%r14;" /* f[2]*f[1] */
527
528 /* Step 2: Compute two parallel carry chains */
529 " xor %%r15, %%r15;"
530 " adox %%rax, %%r10;"
531 " adcx %%r8, %%r8;"
532 " adox %%rcx, %%r11;"
533 " adcx %%r9, %%r9;"
534 " adox %%r15, %%r12;"
535 " adcx %%r10, %%r10;"
536 " adox %%r15, %%r13;"
537 " adcx %%r11, %%r11;"
538 " adox %%r15, %%r14;"
539 " adcx %%r12, %%r12;"
540 " adcx %%r13, %%r13;"
541 " adcx %%r14, %%r14;"
542
543 /* Step 3: Compute intermediate squares */
544 " movq 0(%1), %%rdx;" " mulx %%rdx, %%rax, %%rcx;" /* f[0]^2 */
545 " movq %%rax, 0(%0);"
546 " add %%rcx, %%r8;" " movq %%r8, 8(%0);"
547 " movq 8(%1), %%rdx;" " mulx %%rdx, %%rax, %%rcx;" /* f[1]^2 */
548 " adcx %%rax, %%r9;" " movq %%r9, 16(%0);"
549 " adcx %%rcx, %%r10;" " movq %%r10, 24(%0);"
550 " movq 16(%1), %%rdx;" " mulx %%rdx, %%rax, %%rcx;" /* f[2]^2 */
551 " adcx %%rax, %%r11;" " movq %%r11, 32(%0);"
552 " adcx %%rcx, %%r12;" " movq %%r12, 40(%0);"
553 " movq 24(%1), %%rdx;" " mulx %%rdx, %%rax, %%rcx;" /* f[3]^2 */
554 " adcx %%rax, %%r13;" " movq %%r13, 48(%0);"
555 " adcx %%rcx, %%r14;" " movq %%r14, 56(%0);"
556
557 /* Line up pointers */
558 " mov %0, %1;"
559 " mov %2, %0;"
560
561 /* Wrap the result back into the field */
562
563 /* Step 1: Compute dst + carry == tmp_hi * 38 + tmp_lo */
564 " mov $38, %%rdx;"
565 " mulxq 32(%1), %%r8, %%r13;"
566 " xor %%rcx, %%rcx;"
567 " adoxq 0(%1), %%r8;"
568 " mulxq 40(%1), %%r9, %%r12;"
569 " adcx %%r13, %%r9;"
570 " adoxq 8(%1), %%r9;"
571 " mulxq 48(%1), %%r10, %%r13;"
572 " adcx %%r12, %%r10;"
573 " adoxq 16(%1), %%r10;"
574 " mulxq 56(%1), %%r11, %%rax;"
575 " adcx %%r13, %%r11;"
576 " adoxq 24(%1), %%r11;"
577 " adcx %%rcx, %%rax;"
578 " adox %%rcx, %%rax;"
579 " imul %%rdx, %%rax;"
580
581 /* Step 2: Fold the carry back into dst */
582 " add %%rax, %%r8;"
583 " adcx %%rcx, %%r9;"
584 " movq %%r9, 8(%0);"
585 " adcx %%rcx, %%r10;"
586 " movq %%r10, 16(%0);"
587 " adcx %%rcx, %%r11;"
588 " movq %%r11, 24(%0);"
589
590 /* Step 3: Fold the carry bit back in; guaranteed not to carry at this point */
591 " mov $0, %%rax;"
592 " cmovc %%rdx, %%rax;"
593 " add %%rax, %%r8;"
594 " movq %%r8, 0(%0);"
595 : "+&r" (tmp), "+&r" (f), "+&r" (out)
596 :
597 : "%rax", "%rcx", "%rdx", "%r8", "%r9", "%r10", "%r11", "%r12", "%r13", "%r14", "%r15", "memory", "cc"
598 );
599 }
600
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 1 month
Re: [PATCH net-next 1/1] qedr: Avoid DB recover entry deletion when device is not active.
by kbuild test robot
Hi Sudarsana,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on net-next/master]
url: https://github.com/0day-ci/linux/commits/Sudarsana-Reddy-Kalluru/qedr-Avo...
base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 323e395f197fd0bc1bf7a7a7e4c67d3d7410f24f
config: riscv-allyesconfig (attached as .config)
compiler: riscv64-linux-gcc (GCC) 9.3.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day GCC_VERSION=9.3.0 make.cross ARCH=riscv
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp(a)intel.com>
All error/warnings (new ones prefixed by >>):
drivers/infiniband/hw/qedr/verbs.c: In function 'qedr_db_recovery_del':
>> drivers/infiniband/hw/qedr/verbs.c:675:6: error: implicit declaration of function 'QEDR_DEAD' [-Werror=implicit-function-declaration]
675 | if (QEDR_DEAD(dev)) {
| ^~~~~~~~~
In file included from include/linux/string.h:6,
from include/linux/dma-mapping.h:6,
from drivers/infiniband/hw/qedr/verbs.c:32:
>> drivers/infiniband/hw/qedr/verbs.c:676:19: error: 'QEDR_MSG_FAIL' undeclared (first use in this function); did you mean 'QEDR_MSG_INIT'?
676 | DP_VERBOSE(dev, QEDR_MSG_FAIL,
| ^~~~~~~~~~~~~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
>> drivers/infiniband/hw/qedr/verbs.c:676:3: note: in expansion of macro 'DP_VERBOSE'
676 | DP_VERBOSE(dev, QEDR_MSG_FAIL,
| ^~~~~~~~~~
drivers/infiniband/hw/qedr/verbs.c:676:19: note: each undeclared identifier is reported only once for each function it appears in
676 | DP_VERBOSE(dev, QEDR_MSG_FAIL,
| ^~~~~~~~~~~~~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
>> drivers/infiniband/hw/qedr/verbs.c:676:3: note: in expansion of macro 'DP_VERBOSE'
676 | DP_VERBOSE(dev, QEDR_MSG_FAIL,
| ^~~~~~~~~~
>> drivers/infiniband/hw/qedr/verbs.c:678:10: warning: 'return' with a value, in function returning void [-Wreturn-type]
678 | return 0;
| ^
drivers/infiniband/hw/qedr/verbs.c:671:13: note: declared here
671 | static void qedr_db_recovery_del(struct qedr_dev *dev,
| ^~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/QEDR_DEAD +675 drivers/infiniband/hw/qedr/verbs.c
670
671 static void qedr_db_recovery_del(struct qedr_dev *dev,
672 void __iomem *db_addr,
673 void *db_data)
674 {
> 675 if (QEDR_DEAD(dev)) {
> 676 DP_VERBOSE(dev, QEDR_MSG_FAIL,
677 "avoiding db rec since device is dead\n");
> 678 return 0;
679 }
680
681 if (!db_data) {
682 DP_DEBUG(dev, QEDR_MSG_INIT, "avoiding db rec since old lib\n");
683 return;
684 }
685
686 /* Ignore return code as there is not much we can do about it. Error
687 * log will be printed inside.
688 */
689 dev->ops->common->db_recovery_del(dev->cdev, db_addr, db_data);
690 }
691
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 1 month
[android-common:android-4.19 40/106] arch/mips/include/asm/vdso/gettimeofday.h:94:31: error: '__NR_clock_getres_time64' undeclared
by kbuild test robot
tree: https://android.googlesource.com/kernel/common android-4.19
head: a1728ecf5aed447128ca7143f29d8b0f5f6263c5
commit: 23dea1cf7ed3846719448e74feeb56c28e3a9019 [40/106] UPSTREAM: mips: Add clock_getres entry point
config: mips-malta_kvm_guest_defconfig (attached as .config)
compiler: mipsel-linux-gcc (GCC) 9.3.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout 23dea1cf7ed3846719448e74feeb56c28e3a9019
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day GCC_VERSION=9.3.0 make.cross ARCH=mips
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from lib/vdso/gettimeofday.c:26,
from <command-line>:
arch/mips/include/asm/vdso/gettimeofday.h: In function 'clock_gettime_fallback':
arch/mips/include/asm/vdso/gettimeofday.h:70:31: error: '__NR_clock_gettime64' undeclared (first use in this function)
70 | register long nr asm("v0") = __NR_clock_gettime64;
| ^~~~~~~~~~~~~~~~~~~~
arch/mips/include/asm/vdso/gettimeofday.h:70:31: note: each undeclared identifier is reported only once for each function it appears in
arch/mips/include/asm/vdso/gettimeofday.h: In function 'clock_getres_fallback':
>> arch/mips/include/asm/vdso/gettimeofday.h:94:31: error: '__NR_clock_getres_time64' undeclared (first use in this function)
94 | register long nr asm("v0") = __NR_clock_getres_time64;
| ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from <command-line>:
lib/vdso/gettimeofday.c: In function '__cvdso_clock_gettime32':
lib/vdso/gettimeofday.c:113:6: error: dereferencing pointer to incomplete type 'struct compat_timespec'
113 | res->tv_sec = ts.tv_sec;
| ^~
vim +/__NR_clock_getres_time64 +94 arch/mips/include/asm/vdso/gettimeofday.h
83
84 static __always_inline int clock_getres_fallback(
85 clockid_t _clkid,
86 struct __kernel_timespec *_ts)
87 {
88 register struct __kernel_timespec *ts asm("a1") = _ts;
89 register clockid_t clkid asm("a0") = _clkid;
90 register long ret asm("v0");
91 #if _MIPS_SIM == _MIPS_SIM_ABI64
92 register long nr asm("v0") = __NR_clock_getres;
93 #else
> 94 register long nr asm("v0") = __NR_clock_getres_time64;
95 #endif
96 register long error asm("a3");
97
98 asm volatile(
99 " syscall\n"
100 : "=r" (ret), "=r" (error)
101 : "r" (clkid), "r" (ts), "r" (nr)
102 : "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13",
103 "$14", "$15", "$24", "$25", "hi", "lo", "memory");
104
105 return error ? -ret : ret;
106 }
107
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 1 month