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

Attachment: .config.gz
Description: application/gzip

Reply via email to