[PATCH] KVM: PPC: Book3S: Add capabilities for Meltdown/Spectre workarounds
kbuild test robot
lkp at intel.com
Wed Jan 10 00:48:47 AEDT 2018
Hi Paul,
I love your patch! Yet something to improve:
[auto build test ERROR on kvm/linux-next]
[also build test ERROR on v4.15-rc7 next-20180109]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Paul-Mackerras/KVM-PPC-Book3S-Add-capabilities-for-Meltdown-Spectre-workarounds/20180109-165503
base: https://git.kernel.org/pub/scm/virt/kvm/kvm.git linux-next
config: powerpc-allyesconfig (attached as .config)
compiler: powerpc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.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
make.cross ARCH=powerpc
All errors (new ones prefixed by >>):
arch/powerpc/kvm/powerpc.c: In function 'check_pseries_safe_cache':
>> arch/powerpc/kvm/powerpc.c:527:27: error: storage size of 'c' isn't known
struct h_cpu_char_result c;
^
>> arch/powerpc/kvm/powerpc.c:534:7: error: implicit declaration of function 'plpar_get_cpu_characteristics' [-Werror=implicit-function-declaration]
rc = plpar_get_cpu_characteristics(&c);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> arch/powerpc/kvm/powerpc.c:536:22: error: 'H_GET_CPU_CHAR_BEHAV_L1_FLUSH_LOW_PRIV' undeclared (first use in this function)
if (!(c.behavior & H_GET_CPU_CHAR_BEHAV_L1_FLUSH_LOW_PRIV))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/powerpc/kvm/powerpc.c:536:22: note: each undeclared identifier is reported only once for each function it appears in
>> arch/powerpc/kvm/powerpc.c:538:27: error: 'H_GET_CPU_CHAR_CHAR_L1D_PRIVATE' undeclared (first use in this function); did you mean 'H_GET_CPU_CHAR_BEHAV_L1_FLUSH_LOW_PRIV'?
else if ((c.character & H_GET_CPU_CHAR_CHAR_L1D_PRIVATE) &&
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
H_GET_CPU_CHAR_BEHAV_L1_FLUSH_LOW_PRIV
>> arch/powerpc/kvm/powerpc.c:539:21: error: 'H_GET_CPU_CHAR_CHAR_ORI30_L1_FLUSH' undeclared (first use in this function); did you mean 'H_GET_CPU_CHAR_CHAR_L1D_PRIVATE'?
((c.character & H_GET_CPU_CHAR_CHAR_ORI30_L1_FLUSH) ||
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
H_GET_CPU_CHAR_CHAR_L1D_PRIVATE
>> arch/powerpc/kvm/powerpc.c:540:21: error: 'H_GET_CPU_CHAR_CHAR_MTTRIG2_L1_FLUSH' undeclared (first use in this function); did you mean 'H_GET_CPU_CHAR_CHAR_ORI30_L1_FLUSH'?
(c.character & H_GET_CPU_CHAR_CHAR_MTTRIG2_L1_FLUSH)))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
H_GET_CPU_CHAR_CHAR_ORI30_L1_FLUSH
arch/powerpc/kvm/powerpc.c:527:27: warning: unused variable 'c' [-Wunused-variable]
struct h_cpu_char_result c;
^
arch/powerpc/kvm/powerpc.c: In function 'check_pseries_safe_bounds_check':
arch/powerpc/kvm/powerpc.c:549:27: error: storage size of 'c' isn't known
struct h_cpu_char_result c;
^
>> arch/powerpc/kvm/powerpc.c:558:22: error: 'H_GET_CPU_CHAR_BEHAV_SPEC_BAR_BNDS_CHK' undeclared (first use in this function)
if (!(c.behavior & H_GET_CPU_CHAR_BEHAV_SPEC_BAR_BNDS_CHK))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> arch/powerpc/kvm/powerpc.c:560:26: error: 'H_GET_CPU_CHAR_CHAR_ORI31_SPEC_BAR' undeclared (first use in this function); did you mean 'H_GET_CPU_CHAR_BEHAV_SPEC_BAR_BNDS_CHK'?
else if (c.character & H_GET_CPU_CHAR_CHAR_ORI31_SPEC_BAR)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
H_GET_CPU_CHAR_BEHAV_SPEC_BAR_BNDS_CHK
arch/powerpc/kvm/powerpc.c:549:27: warning: unused variable 'c' [-Wunused-variable]
struct h_cpu_char_result c;
^
arch/powerpc/kvm/powerpc.c: In function 'check_pseries_safe_indirect_branch':
arch/powerpc/kvm/powerpc.c:569:27: error: storage size of 'c' isn't known
struct h_cpu_char_result c;
^
>> arch/powerpc/kvm/powerpc.c:578:21: error: 'H_GET_CPU_CHAR_CHAR_BCCTR_SERIAL' undeclared (first use in this function)
if (c.character & H_GET_CPU_CHAR_CHAR_BCCTR_SERIAL)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/powerpc/kvm/powerpc.c:569:27: warning: unused variable 'c' [-Wunused-variable]
struct h_cpu_char_result c;
^
cc1: some warnings being treated as errors
vim +527 arch/powerpc/kvm/powerpc.c
523
524 #ifdef CONFIG_PPC_PSERIES
525 static bool check_pseries_safe_cache(int *rp)
526 {
> 527 struct h_cpu_char_result c;
528 unsigned long rc;
529 int r = 0;
530
531 if (!machine_is(pseries))
532 return false;
533
> 534 rc = plpar_get_cpu_characteristics(&c);
535 if (rc == H_SUCCESS) {
> 536 if (!(c.behavior & H_GET_CPU_CHAR_BEHAV_L1_FLUSH_LOW_PRIV))
537 r = 2;
> 538 else if ((c.character & H_GET_CPU_CHAR_CHAR_L1D_PRIVATE) &&
> 539 ((c.character & H_GET_CPU_CHAR_CHAR_ORI30_L1_FLUSH) ||
> 540 (c.character & H_GET_CPU_CHAR_CHAR_MTTRIG2_L1_FLUSH)))
541 r = 1;
542 }
543 *rp = r;
544 return true;
545 }
546
547 static bool check_pseries_safe_bounds_check(int *rp)
548 {
> 549 struct h_cpu_char_result c;
550 unsigned long rc;
551 int r = 0;
552
553 if (!machine_is(pseries))
554 return false;
555
556 rc = plpar_get_cpu_characteristics(&c);
557 if (rc == H_SUCCESS) {
> 558 if (!(c.behavior & H_GET_CPU_CHAR_BEHAV_SPEC_BAR_BNDS_CHK))
559 r = 2;
> 560 else if (c.character & H_GET_CPU_CHAR_CHAR_ORI31_SPEC_BAR)
561 r = 1;
562 }
563 *rp = r;
564 return true;
565 }
566
567 static bool check_pseries_safe_indirect_branch(int *rp)
568 {
569 struct h_cpu_char_result c;
570 unsigned long rc;
571 int r = 0;
572
573 if (!machine_is(pseries))
574 return false;
575
576 rc = plpar_get_cpu_characteristics(&c);
577 if (rc == H_SUCCESS) {
> 578 if (c.character & H_GET_CPU_CHAR_CHAR_BCCTR_SERIAL)
579 r = 2;
580 }
581 *rp = r;
582 return true;
583 }
584
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 56071 bytes
Desc: not available
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20180109/7d0f0dd0/attachment-0001.gz>
More information about the Linuxppc-dev
mailing list