Merge remote-tracking branch 'md/for-next'
authorStephen Rothwell <sfr@canb.auug.org.au>
Tue, 13 Sep 2016 01:17:56 +0000 (11:17 +1000)
committerStephen Rothwell <sfr@canb.auug.org.au>
Tue, 13 Sep 2016 01:17:56 +0000 (11:17 +1000)
1  2 
include/linux/raid/pq.h
lib/raid6/Makefile
lib/raid6/algos.c

diff --combined include/linux/raid/pq.h
index 395a4c674168c956d0c319ce4771897bd77bc5d9,1abd89584568d30b99cc6504b1c1488adf41c365..4d57bbaaa1bfb1f9d37e3238a56d27217ecc158c
@@@ -102,8 -102,10 +102,11 @@@ extern const struct raid6_calls raid6_a
  extern const struct raid6_calls raid6_avx2x1;
  extern const struct raid6_calls raid6_avx2x2;
  extern const struct raid6_calls raid6_avx2x4;
+ extern const struct raid6_calls raid6_avx512x1;
+ extern const struct raid6_calls raid6_avx512x2;
+ extern const struct raid6_calls raid6_avx512x4;
  extern const struct raid6_calls raid6_tilegx8;
 +extern const struct raid6_calls raid6_s390vx8;
  
  struct raid6_recov_calls {
        void (*data2)(int, size_t, int, int, void **);
  extern const struct raid6_recov_calls raid6_recov_intx1;
  extern const struct raid6_recov_calls raid6_recov_ssse3;
  extern const struct raid6_recov_calls raid6_recov_avx2;
+ extern const struct raid6_recov_calls raid6_recov_avx512;
 +extern const struct raid6_recov_calls raid6_recov_s390xc;
  
  extern const struct raid6_calls raid6_neonx1;
  extern const struct raid6_calls raid6_neonx2;
diff --combined lib/raid6/Makefile
index 29f503ebfd60c7772098b1718f07537fe9a2f3b4,cd05ee1fb8094d6d9df215ef402ddae235641115..3057011f5599bed39532bbe83e6d84cc4a3f05f8
@@@ -3,11 -3,10 +3,11 @@@ obj-$(CONFIG_RAID6_PQ)        += raid6_pq.
  raid6_pq-y    += algos.o recov.o tables.o int1.o int2.o int4.o \
                   int8.o int16.o int32.o
  
- raid6_pq-$(CONFIG_X86) += recov_ssse3.o recov_avx2.o mmx.o sse1.o sse2.o avx2.o
+ raid6_pq-$(CONFIG_X86) += recov_ssse3.o recov_avx2.o mmx.o sse1.o sse2.o avx2.o avx512.o recov_avx512.o
  raid6_pq-$(CONFIG_ALTIVEC) += altivec1.o altivec2.o altivec4.o altivec8.o
  raid6_pq-$(CONFIG_KERNEL_MODE_NEON) += neon.o neon1.o neon2.o neon4.o neon8.o
  raid6_pq-$(CONFIG_TILEGX) += tilegx8.o
 +raid6_pq-$(CONFIG_S390) += s390vx8.o recov_s390xc.o
  
  hostprogs-y   += mktables
  
@@@ -117,11 -116,6 +117,11 @@@ $(obj)/tilegx8.c:   UNROLL := 
  $(obj)/tilegx8.c:   $(src)/tilegx.uc $(src)/unroll.awk FORCE
        $(call if_changed,unroll)
  
 +targets += s390vx8.c
 +$(obj)/s390vx8.c:   UNROLL := 8
 +$(obj)/s390vx8.c:   $(src)/s390vx.uc $(src)/unroll.awk FORCE
 +      $(call if_changed,unroll)
 +
  quiet_cmd_mktable = TABLE   $@
        cmd_mktable = $(obj)/mktables > $@ || ( rm -f $@ && exit 1 )
  
diff --combined lib/raid6/algos.c
index 592ff49df47ddee2d8d8f46ba335a1fc303cecb3,149d947a4fec5a9fc5dc4ebd5ccd454cf038755f..7857049fd7d3660022e9372fdd5a11adc243099b
@@@ -49,6 -49,10 +49,10 @@@ const struct raid6_calls * const raid6_
        &raid6_avx2x1,
        &raid6_avx2x2,
  #endif
+ #ifdef CONFIG_AS_AVX512
+       &raid6_avx512x1,
+       &raid6_avx512x2,
+ #endif
  #endif
  #if defined(__x86_64__) && !defined(__arch_um__)
        &raid6_sse2x1,
        &raid6_avx2x2,
        &raid6_avx2x4,
  #endif
+ #ifdef CONFIG_AS_AVX512
+       &raid6_avx512x1,
+       &raid6_avx512x2,
+       &raid6_avx512x4,
+ #endif
  #endif
  #ifdef CONFIG_ALTIVEC
        &raid6_altivec1,
@@@ -68,9 -77,6 +77,9 @@@
  #endif
  #if defined(CONFIG_TILEGX)
        &raid6_tilegx8,
 +#endif
 +#if defined(CONFIG_S390)
 +      &raid6_s390vx8,
  #endif
        &raid6_intx1,
        &raid6_intx2,
@@@ -92,14 -98,14 +101,17 @@@ void (*raid6_datap_recov)(int, size_t, 
  EXPORT_SYMBOL_GPL(raid6_datap_recov);
  
  const struct raid6_recov_calls *const raid6_recov_algos[] = {
+ #ifdef CONFIG_AS_AVX512
+       &raid6_recov_avx512,
+ #endif
  #ifdef CONFIG_AS_AVX2
        &raid6_recov_avx2,
  #endif
  #ifdef CONFIG_AS_SSSE3
        &raid6_recov_ssse3,
 +#endif
 +#ifdef CONFIG_S390
 +      &raid6_recov_s390xc,
  #endif
        &raid6_recov_intx1,
        NULL
This page took 0.035162 seconds and 5 git commands to generate.