[PATCH] KVM: PPC: Book3S: Add capabilities for Meltdown/Spectre workarounds
kbuild test robot
lkp at intel.com
Tue Jan 9 22:54:57 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-defconfig (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: error: unused variable 'c' [-Werror=unused-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: error: unused variable 'c' [-Werror=unused-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: error: unused variable 'c' [-Werror=unused-variable]
struct h_cpu_char_result c;
^
cc1: all warnings being treated as errors
vim +/c +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
---
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: 24050 bytes
Desc: not available
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20180109/363ed053/attachment-0001.gz>
More information about the Linuxppc-dev
mailing list