lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202112310646.kuh2pXiG-lkp@intel.com>
Date:   Fri, 31 Dec 2021 06:50:01 +0800
From:   kernel test robot <lkp@...el.com>
To:     Ard Biesheuvel <ardb@...nel.org>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org
Subject: [ardb:xor-restrict 1/2] arch/powerpc/lib/xor_vmx.c:52:6: error:
 conflicting types for '__xor_altivec_2'; have 'void(long unsigned int,  long
 unsigned int *, long unsigned int *)'

tree:   git://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git xor-restrict
head:   d2950492157a7e6af397c6d68c6e212a4844be64
commit: e754a2be51e5330e138271067808681b4a13ade2 [1/2] lib/xor: make xor prototypes more friendely to compiler vectorization
config: powerpc-g5_defconfig (https://download.01.org/0day-ci/archive/20211231/202112310646.kuh2pXiG-lkp@intel.com/config)
compiler: powerpc-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git/commit/?id=e754a2be51e5330e138271067808681b4a13ade2
        git remote add ardb git://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git
        git fetch --no-tags ardb xor-restrict
        git checkout e754a2be51e5330e138271067808681b4a13ade2
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=powerpc SHELL=/bin/bash

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@...el.com>

All errors (new ones prefixed by >>):

>> arch/powerpc/lib/xor_vmx.c:52:6: error: conflicting types for '__xor_altivec_2'; have 'void(long unsigned int,  long unsigned int *, long unsigned int *)'
      52 | void __xor_altivec_2(unsigned long bytes, unsigned long *v1_in,
         |      ^~~~~~~~~~~~~~~
   In file included from arch/powerpc/lib/xor_vmx.c:20:
   arch/powerpc/lib/xor_vmx.h:9:6: note: previous declaration of '__xor_altivec_2' with type 'void(long unsigned int,  long unsigned int * __restrict__,  const long unsigned int * __restrict__)'
       9 | void __xor_altivec_2(unsigned long bytes, unsigned long * __restrict p1,
         |      ^~~~~~~~~~~~~~~
>> arch/powerpc/lib/xor_vmx.c:70:6: error: conflicting types for '__xor_altivec_3'; have 'void(long unsigned int,  long unsigned int *, long unsigned int *, long unsigned int *)'
      70 | void __xor_altivec_3(unsigned long bytes, unsigned long *v1_in,
         |      ^~~~~~~~~~~~~~~
   In file included from arch/powerpc/lib/xor_vmx.c:20:
   arch/powerpc/lib/xor_vmx.h:11:6: note: previous declaration of '__xor_altivec_3' with type 'void(long unsigned int,  long unsigned int * __restrict__,  const long unsigned int * __restrict__,  const long unsigned int * __restrict__)'
      11 | void __xor_altivec_3(unsigned long bytes, unsigned long * __restrict p1,
         |      ^~~~~~~~~~~~~~~
>> arch/powerpc/lib/xor_vmx.c:92:6: error: conflicting types for '__xor_altivec_4'; have 'void(long unsigned int,  long unsigned int *, long unsigned int *, long unsigned int *, long unsigned int *)'
      92 | void __xor_altivec_4(unsigned long bytes, unsigned long *v1_in,
         |      ^~~~~~~~~~~~~~~
   In file included from arch/powerpc/lib/xor_vmx.c:20:
   arch/powerpc/lib/xor_vmx.h:14:6: note: previous declaration of '__xor_altivec_4' with type 'void(long unsigned int,  long unsigned int * __restrict__,  const long unsigned int * __restrict__,  const long unsigned int * __restrict__,  const long unsigned int * __restrict__)'
      14 | void __xor_altivec_4(unsigned long bytes, unsigned long * __restrict p1,
         |      ^~~~~~~~~~~~~~~
>> arch/powerpc/lib/xor_vmx.c:119:6: error: conflicting types for '__xor_altivec_5'; have 'void(long unsigned int,  long unsigned int *, long unsigned int *, long unsigned int *, long unsigned int *, long unsigned int *)'
     119 | void __xor_altivec_5(unsigned long bytes, unsigned long *v1_in,
         |      ^~~~~~~~~~~~~~~
   In file included from arch/powerpc/lib/xor_vmx.c:20:
   arch/powerpc/lib/xor_vmx.h:18:6: note: previous declaration of '__xor_altivec_5' with type 'void(long unsigned int,  long unsigned int * __restrict__,  const long unsigned int * __restrict__,  const long unsigned int * __restrict__,  const long unsigned int * __restrict__,  const long unsigned int * __restrict__)'
      18 | void __xor_altivec_5(unsigned long bytes, unsigned long * __restrict p1,
         |      ^~~~~~~~~~~~~~~


vim +52 arch/powerpc/lib/xor_vmx.c

ef1313deafb7ba Anton Blanchard 2013-10-14   23  
ef1313deafb7ba Anton Blanchard 2013-10-14   24  #define DEFINE(V)				\
ef1313deafb7ba Anton Blanchard 2013-10-14   25  	unative_t *V = (unative_t *)V##_in;	\
ef1313deafb7ba Anton Blanchard 2013-10-14   26  	unative_t V##_0, V##_1, V##_2, V##_3
ef1313deafb7ba Anton Blanchard 2013-10-14   27  
ef1313deafb7ba Anton Blanchard 2013-10-14   28  #define LOAD(V)			\
ef1313deafb7ba Anton Blanchard 2013-10-14   29  	do {			\
ef1313deafb7ba Anton Blanchard 2013-10-14   30  		V##_0 = V[0];	\
ef1313deafb7ba Anton Blanchard 2013-10-14   31  		V##_1 = V[1];	\
ef1313deafb7ba Anton Blanchard 2013-10-14   32  		V##_2 = V[2];	\
ef1313deafb7ba Anton Blanchard 2013-10-14   33  		V##_3 = V[3];	\
ef1313deafb7ba Anton Blanchard 2013-10-14   34  	} while (0)
ef1313deafb7ba Anton Blanchard 2013-10-14   35  
ef1313deafb7ba Anton Blanchard 2013-10-14   36  #define STORE(V)		\
ef1313deafb7ba Anton Blanchard 2013-10-14   37  	do {			\
ef1313deafb7ba Anton Blanchard 2013-10-14   38  		V[0] = V##_0;	\
ef1313deafb7ba Anton Blanchard 2013-10-14   39  		V[1] = V##_1;	\
ef1313deafb7ba Anton Blanchard 2013-10-14   40  		V[2] = V##_2;	\
ef1313deafb7ba Anton Blanchard 2013-10-14   41  		V[3] = V##_3;	\
ef1313deafb7ba Anton Blanchard 2013-10-14   42  	} while (0)
ef1313deafb7ba Anton Blanchard 2013-10-14   43  
ef1313deafb7ba Anton Blanchard 2013-10-14   44  #define XOR(V1, V2)					\
ef1313deafb7ba Anton Blanchard 2013-10-14   45  	do {						\
ef1313deafb7ba Anton Blanchard 2013-10-14   46  		V1##_0 = vec_xor(V1##_0, V2##_0);	\
ef1313deafb7ba Anton Blanchard 2013-10-14   47  		V1##_1 = vec_xor(V1##_1, V2##_1);	\
ef1313deafb7ba Anton Blanchard 2013-10-14   48  		V1##_2 = vec_xor(V1##_2, V2##_2);	\
ef1313deafb7ba Anton Blanchard 2013-10-14   49  		V1##_3 = vec_xor(V1##_3, V2##_3);	\
ef1313deafb7ba Anton Blanchard 2013-10-14   50  	} while (0)
ef1313deafb7ba Anton Blanchard 2013-10-14   51  
f718d426d7e42e Matt Brown      2017-05-24  @52  void __xor_altivec_2(unsigned long bytes, unsigned long *v1_in,
ef1313deafb7ba Anton Blanchard 2013-10-14   53  		     unsigned long *v2_in)
ef1313deafb7ba Anton Blanchard 2013-10-14   54  {
ef1313deafb7ba Anton Blanchard 2013-10-14   55  	DEFINE(v1);
ef1313deafb7ba Anton Blanchard 2013-10-14   56  	DEFINE(v2);
ef1313deafb7ba Anton Blanchard 2013-10-14   57  	unsigned long lines = bytes / (sizeof(unative_t)) / 4;
ef1313deafb7ba Anton Blanchard 2013-10-14   58  
ef1313deafb7ba Anton Blanchard 2013-10-14   59  	do {
ef1313deafb7ba Anton Blanchard 2013-10-14   60  		LOAD(v1);
ef1313deafb7ba Anton Blanchard 2013-10-14   61  		LOAD(v2);
ef1313deafb7ba Anton Blanchard 2013-10-14   62  		XOR(v1, v2);
ef1313deafb7ba Anton Blanchard 2013-10-14   63  		STORE(v1);
ef1313deafb7ba Anton Blanchard 2013-10-14   64  
ef1313deafb7ba Anton Blanchard 2013-10-14   65  		v1 += 4;
ef1313deafb7ba Anton Blanchard 2013-10-14   66  		v2 += 4;
ef1313deafb7ba Anton Blanchard 2013-10-14   67  	} while (--lines > 0);
ef1313deafb7ba Anton Blanchard 2013-10-14   68  }
ef1313deafb7ba Anton Blanchard 2013-10-14   69  
f718d426d7e42e Matt Brown      2017-05-24  @70  void __xor_altivec_3(unsigned long bytes, unsigned long *v1_in,
ef1313deafb7ba Anton Blanchard 2013-10-14   71  		     unsigned long *v2_in, unsigned long *v3_in)
ef1313deafb7ba Anton Blanchard 2013-10-14   72  {
ef1313deafb7ba Anton Blanchard 2013-10-14   73  	DEFINE(v1);
ef1313deafb7ba Anton Blanchard 2013-10-14   74  	DEFINE(v2);
ef1313deafb7ba Anton Blanchard 2013-10-14   75  	DEFINE(v3);
ef1313deafb7ba Anton Blanchard 2013-10-14   76  	unsigned long lines = bytes / (sizeof(unative_t)) / 4;
ef1313deafb7ba Anton Blanchard 2013-10-14   77  
ef1313deafb7ba Anton Blanchard 2013-10-14   78  	do {
ef1313deafb7ba Anton Blanchard 2013-10-14   79  		LOAD(v1);
ef1313deafb7ba Anton Blanchard 2013-10-14   80  		LOAD(v2);
ef1313deafb7ba Anton Blanchard 2013-10-14   81  		LOAD(v3);
ef1313deafb7ba Anton Blanchard 2013-10-14   82  		XOR(v1, v2);
ef1313deafb7ba Anton Blanchard 2013-10-14   83  		XOR(v1, v3);
ef1313deafb7ba Anton Blanchard 2013-10-14   84  		STORE(v1);
ef1313deafb7ba Anton Blanchard 2013-10-14   85  
ef1313deafb7ba Anton Blanchard 2013-10-14   86  		v1 += 4;
ef1313deafb7ba Anton Blanchard 2013-10-14   87  		v2 += 4;
ef1313deafb7ba Anton Blanchard 2013-10-14   88  		v3 += 4;
ef1313deafb7ba Anton Blanchard 2013-10-14   89  	} while (--lines > 0);
ef1313deafb7ba Anton Blanchard 2013-10-14   90  }
ef1313deafb7ba Anton Blanchard 2013-10-14   91  
f718d426d7e42e Matt Brown      2017-05-24  @92  void __xor_altivec_4(unsigned long bytes, unsigned long *v1_in,
ef1313deafb7ba Anton Blanchard 2013-10-14   93  		     unsigned long *v2_in, unsigned long *v3_in,
ef1313deafb7ba Anton Blanchard 2013-10-14   94  		     unsigned long *v4_in)
ef1313deafb7ba Anton Blanchard 2013-10-14   95  {
ef1313deafb7ba Anton Blanchard 2013-10-14   96  	DEFINE(v1);
ef1313deafb7ba Anton Blanchard 2013-10-14   97  	DEFINE(v2);
ef1313deafb7ba Anton Blanchard 2013-10-14   98  	DEFINE(v3);
ef1313deafb7ba Anton Blanchard 2013-10-14   99  	DEFINE(v4);
ef1313deafb7ba Anton Blanchard 2013-10-14  100  	unsigned long lines = bytes / (sizeof(unative_t)) / 4;
ef1313deafb7ba Anton Blanchard 2013-10-14  101  
ef1313deafb7ba Anton Blanchard 2013-10-14  102  	do {
ef1313deafb7ba Anton Blanchard 2013-10-14  103  		LOAD(v1);
ef1313deafb7ba Anton Blanchard 2013-10-14  104  		LOAD(v2);
ef1313deafb7ba Anton Blanchard 2013-10-14  105  		LOAD(v3);
ef1313deafb7ba Anton Blanchard 2013-10-14  106  		LOAD(v4);
ef1313deafb7ba Anton Blanchard 2013-10-14  107  		XOR(v1, v2);
ef1313deafb7ba Anton Blanchard 2013-10-14  108  		XOR(v3, v4);
ef1313deafb7ba Anton Blanchard 2013-10-14  109  		XOR(v1, v3);
ef1313deafb7ba Anton Blanchard 2013-10-14  110  		STORE(v1);
ef1313deafb7ba Anton Blanchard 2013-10-14  111  
ef1313deafb7ba Anton Blanchard 2013-10-14  112  		v1 += 4;
ef1313deafb7ba Anton Blanchard 2013-10-14  113  		v2 += 4;
ef1313deafb7ba Anton Blanchard 2013-10-14  114  		v3 += 4;
ef1313deafb7ba Anton Blanchard 2013-10-14  115  		v4 += 4;
ef1313deafb7ba Anton Blanchard 2013-10-14  116  	} while (--lines > 0);
ef1313deafb7ba Anton Blanchard 2013-10-14  117  }
ef1313deafb7ba Anton Blanchard 2013-10-14  118  
f718d426d7e42e Matt Brown      2017-05-24 @119  void __xor_altivec_5(unsigned long bytes, unsigned long *v1_in,

:::::: The code at line 52 was first introduced by commit
:::::: f718d426d7e42eec6e5d2932f52a51de23bd3b30 powerpc/lib/xor_vmx: Ensure no altivec code executes before enable_kernel_altivec()

:::::: TO: Matt Brown <matthew.brown.dev@...il.com>
:::::: CC: Michael Ellerman <mpe@...erman.id.au>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ