Commit 7367f5b0 authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'for-linus' of git://neil.brown.name/md

* 'for-linus' of git://neil.brown.name/md:
  Further tidyup of raid6 naming in lib/raid6
  Make lib/raid6/test build correctly.
  Rename raid6 files now they're in a 'raid6' directory.
parents ce4327d3 a8e026c7
...@@ -62,7 +62,9 @@ extern const char raid6_empty_zero_page[PAGE_SIZE]; ...@@ -62,7 +62,9 @@ extern const char raid6_empty_zero_page[PAGE_SIZE];
#define disable_kernel_altivec() #define disable_kernel_altivec()
#define EXPORT_SYMBOL(sym) #define EXPORT_SYMBOL(sym)
#define EXPORT_SYMBOL_GPL(sym)
#define MODULE_LICENSE(licence) #define MODULE_LICENSE(licence)
#define MODULE_DESCRIPTION(desc)
#define subsys_initcall(x) #define subsys_initcall(x)
#define module_exit(x) #define module_exit(x)
#endif /* __KERNEL__ */ #endif /* __KERNEL__ */
......
obj-$(CONFIG_RAID6_PQ) += raid6_pq.o obj-$(CONFIG_RAID6_PQ) += raid6_pq.o
raid6_pq-y += raid6algos.o raid6recov.o raid6tables.o \ raid6_pq-y += algos.o recov.o tables.o int1.o int2.o int4.o \
raid6int1.o raid6int2.o raid6int4.o \ int8.o int16.o int32.o altivec1.o altivec2.o altivec4.o \
raid6int8.o raid6int16.o raid6int32.o \ altivec8.o mmx.o sse1.o sse2.o
raid6altivec1.o raid6altivec2.o raid6altivec4.o \
raid6altivec8.o \
raid6mmx.o raid6sse1.o raid6sse2.o
hostprogs-y += mktables hostprogs-y += mktables
quiet_cmd_unroll = UNROLL $@ quiet_cmd_unroll = UNROLL $@
...@@ -16,63 +13,63 @@ ifeq ($(CONFIG_ALTIVEC),y) ...@@ -16,63 +13,63 @@ ifeq ($(CONFIG_ALTIVEC),y)
altivec_flags := -maltivec -mabi=altivec altivec_flags := -maltivec -mabi=altivec
endif endif
targets += raid6int1.c targets += int1.c
$(obj)/raid6int1.c: UNROLL := 1 $(obj)/int1.c: UNROLL := 1
$(obj)/raid6int1.c: $(src)/raid6int.uc $(src)/unroll.awk FORCE $(obj)/int1.c: $(src)/int.uc $(src)/unroll.awk FORCE
$(call if_changed,unroll) $(call if_changed,unroll)
targets += raid6int2.c targets += int2.c
$(obj)/raid6int2.c: UNROLL := 2 $(obj)/int2.c: UNROLL := 2
$(obj)/raid6int2.c: $(src)/raid6int.uc $(src)/unroll.awk FORCE $(obj)/int2.c: $(src)/int.uc $(src)/unroll.awk FORCE
$(call if_changed,unroll) $(call if_changed,unroll)
targets += raid6int4.c targets += int4.c
$(obj)/raid6int4.c: UNROLL := 4 $(obj)/int4.c: UNROLL := 4
$(obj)/raid6int4.c: $(src)/raid6int.uc $(src)/unroll.awk FORCE $(obj)/int4.c: $(src)/int.uc $(src)/unroll.awk FORCE
$(call if_changed,unroll) $(call if_changed,unroll)
targets += raid6int8.c targets += int8.c
$(obj)/raid6int8.c: UNROLL := 8 $(obj)/int8.c: UNROLL := 8
$(obj)/raid6int8.c: $(src)/raid6int.uc $(src)/unroll.awk FORCE $(obj)/int8.c: $(src)/int.uc $(src)/unroll.awk FORCE
$(call if_changed,unroll) $(call if_changed,unroll)
targets += raid6int16.c targets += int16.c
$(obj)/raid6int16.c: UNROLL := 16 $(obj)/int16.c: UNROLL := 16
$(obj)/raid6int16.c: $(src)/raid6int.uc $(src)/unroll.awk FORCE $(obj)/int16.c: $(src)/int.uc $(src)/unroll.awk FORCE
$(call if_changed,unroll) $(call if_changed,unroll)
targets += raid6int32.c targets += int32.c
$(obj)/raid6int32.c: UNROLL := 32 $(obj)/int32.c: UNROLL := 32
$(obj)/raid6int32.c: $(src)/raid6int.uc $(src)/unroll.awk FORCE $(obj)/int32.c: $(src)/int.uc $(src)/unroll.awk FORCE
$(call if_changed,unroll) $(call if_changed,unroll)
CFLAGS_raid6altivec1.o += $(altivec_flags) CFLAGS_altivec1.o += $(altivec_flags)
targets += raid6altivec1.c targets += altivec1.c
$(obj)/raid6altivec1.c: UNROLL := 1 $(obj)/altivec1.c: UNROLL := 1
$(obj)/raid6altivec1.c: $(src)/raid6altivec.uc $(src)/unroll.awk FORCE $(obj)/altivec1.c: $(src)/altivec.uc $(src)/unroll.awk FORCE
$(call if_changed,unroll) $(call if_changed,unroll)
CFLAGS_raid6altivec2.o += $(altivec_flags) CFLAGS_altivec2.o += $(altivec_flags)
targets += raid6altivec2.c targets += altivec2.c
$(obj)/raid6altivec2.c: UNROLL := 2 $(obj)/altivec2.c: UNROLL := 2
$(obj)/raid6altivec2.c: $(src)/raid6altivec.uc $(src)/unroll.awk FORCE $(obj)/altivec2.c: $(src)/altivec.uc $(src)/unroll.awk FORCE
$(call if_changed,unroll) $(call if_changed,unroll)
CFLAGS_raid6altivec4.o += $(altivec_flags) CFLAGS_altivec4.o += $(altivec_flags)
targets += raid6altivec4.c targets += altivec4.c
$(obj)/raid6altivec4.c: UNROLL := 4 $(obj)/altivec4.c: UNROLL := 4
$(obj)/raid6altivec4.c: $(src)/raid6altivec.uc $(src)/unroll.awk FORCE $(obj)/altivec4.c: $(src)/altivec.uc $(src)/unroll.awk FORCE
$(call if_changed,unroll) $(call if_changed,unroll)
CFLAGS_raid6altivec8.o += $(altivec_flags) CFLAGS_altivec8.o += $(altivec_flags)
targets += raid6altivec8.c targets += altivec8.c
$(obj)/raid6altivec8.c: UNROLL := 8 $(obj)/altivec8.c: UNROLL := 8
$(obj)/raid6altivec8.c: $(src)/raid6altivec.uc $(src)/unroll.awk FORCE $(obj)/altivec8.c: $(src)/altivec.uc $(src)/unroll.awk FORCE
$(call if_changed,unroll) $(call if_changed,unroll)
quiet_cmd_mktable = TABLE $@ quiet_cmd_mktable = TABLE $@
cmd_mktable = $(obj)/mktables > $@ || ( rm -f $@ && exit 1 ) cmd_mktable = $(obj)/mktables > $@ || ( rm -f $@ && exit 1 )
targets += raid6tables.c targets += tables.c
$(obj)/raid6tables.c: $(obj)/mktables FORCE $(obj)/tables.c: $(obj)/mktables FORCE
$(call if_changed,mktable) $(call if_changed,mktable)
...@@ -11,17 +11,17 @@ ...@@ -11,17 +11,17 @@
* ----------------------------------------------------------------------- */ * ----------------------------------------------------------------------- */
/* /*
* raid6algos.c * raid6/algos.c
* *
* Algorithm list and algorithm selection for RAID-6 * Algorithm list and algorithm selection for RAID-6
*/ */
#include <linux/raid/pq.h> #include <linux/raid/pq.h>
#include <linux/gfp.h>
#ifndef __KERNEL__ #ifndef __KERNEL__
#include <sys/mman.h> #include <sys/mman.h>
#include <stdio.h> #include <stdio.h>
#else #else
#include <linux/gfp.h>
#if !RAID6_USE_EMPTY_ZERO_PAGE #if !RAID6_USE_EMPTY_ZERO_PAGE
/* In .bss so it's zeroed */ /* In .bss so it's zeroed */
const char raid6_empty_zero_page[PAGE_SIZE] __attribute__((aligned(256))); const char raid6_empty_zero_page[PAGE_SIZE] __attribute__((aligned(256)));
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
* ----------------------------------------------------------------------- */ * ----------------------------------------------------------------------- */
/* /*
* raid6mmx.c * raid6/mmx.c
* *
* MMX implementation of RAID-6 syndrome functions * MMX implementation of RAID-6 syndrome functions
*/ */
...@@ -19,9 +19,9 @@ ...@@ -19,9 +19,9 @@
#if defined(__i386__) && !defined(__arch_um__) #if defined(__i386__) && !defined(__arch_um__)
#include <linux/raid/pq.h> #include <linux/raid/pq.h>
#include "raid6x86.h" #include "x86.h"
/* Shared with raid6sse1.c */ /* Shared with raid6/sse1.c */
const struct raid6_mmx_constants { const struct raid6_mmx_constants {
u64 x1d; u64 x1d;
} raid6_mmx_constants = { } raid6_mmx_constants = {
......
#
# This is a simple Makefile to test some of the RAID-6 code
# from userspace.
#
CC = gcc
OPTFLAGS = -O2 # Adjust as desired
CFLAGS = -I.. -I ../../../include -g $(OPTFLAGS)
LD = ld
AWK = awk
AR = ar
RANLIB = ranlib
.c.o:
$(CC) $(CFLAGS) -c -o $@ $<
%.c: ../%.c
cp -f $< $@
%.uc: ../%.uc
cp -f $< $@
all: raid6.a raid6test
raid6.a: raid6int1.o raid6int2.o raid6int4.o raid6int8.o raid6int16.o \
raid6int32.o \
raid6mmx.o raid6sse1.o raid6sse2.o \
raid6altivec1.o raid6altivec2.o raid6altivec4.o raid6altivec8.o \
raid6recov.o raid6algos.o \
raid6tables.o
rm -f $@
$(AR) cq $@ $^
$(RANLIB) $@
raid6test: test.c raid6.a
$(CC) $(CFLAGS) -o raid6test $^
raid6altivec1.c: raid6altivec.uc ../unroll.awk
$(AWK) ../unroll.awk -vN=1 < raid6altivec.uc > $@
raid6altivec2.c: raid6altivec.uc ../unroll.awk
$(AWK) ../unroll.awk -vN=2 < raid6altivec.uc > $@
raid6altivec4.c: raid6altivec.uc ../unroll.awk
$(AWK) ../unroll.awk -vN=4 < raid6altivec.uc > $@
raid6altivec8.c: raid6altivec.uc ../unroll.awk
$(AWK) ../unroll.awk -vN=8 < raid6altivec.uc > $@
raid6int1.c: raid6int.uc ../unroll.awk
$(AWK) ../unroll.awk -vN=1 < raid6int.uc > $@
raid6int2.c: raid6int.uc ../unroll.awk
$(AWK) ../unroll.awk -vN=2 < raid6int.uc > $@
raid6int4.c: raid6int.uc ../unroll.awk
$(AWK) ../unroll.awk -vN=4 < raid6int.uc > $@
raid6int8.c: raid6int.uc ../unroll.awk
$(AWK) ../unroll.awk -vN=8 < raid6int.uc > $@
raid6int16.c: raid6int.uc ../unroll.awk
$(AWK) ../unroll.awk -vN=16 < raid6int.uc > $@
raid6int32.c: raid6int.uc ../unroll.awk
$(AWK) ../unroll.awk -vN=32 < raid6int.uc > $@
raid6tables.c: mktables
./mktables > raid6tables.c
clean:
rm -f *.o *.a mktables mktables.c raid6int.uc raid6*.c raid6test
spotless: clean
rm -f *~
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
* ----------------------------------------------------------------------- */ * ----------------------------------------------------------------------- */
/* /*
* raid6recov.c * raid6/recov.c
* *
* RAID-6 data recovery in dual failure mode. In single failure mode, * RAID-6 data recovery in dual failure mode. In single failure mode,
* use the RAID-5 algorithm (or, in the case of Q failure, just reconstruct * use the RAID-5 algorithm (or, in the case of Q failure, just reconstruct
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
* ----------------------------------------------------------------------- */ * ----------------------------------------------------------------------- */
/* /*
* raid6sse1.c * raid6/sse1.c
* *
* SSE-1/MMXEXT implementation of RAID-6 syndrome functions * SSE-1/MMXEXT implementation of RAID-6 syndrome functions
* *
...@@ -24,9 +24,9 @@ ...@@ -24,9 +24,9 @@
#if defined(__i386__) && !defined(__arch_um__) #if defined(__i386__) && !defined(__arch_um__)
#include <linux/raid/pq.h> #include <linux/raid/pq.h>
#include "raid6x86.h" #include "x86.h"
/* Defined in raid6mmx.c */ /* Defined in raid6/mmx.c */
extern const struct raid6_mmx_constants { extern const struct raid6_mmx_constants {
u64 x1d; u64 x1d;
} raid6_mmx_constants; } raid6_mmx_constants;
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
* ----------------------------------------------------------------------- */ * ----------------------------------------------------------------------- */
/* /*
* raid6sse2.c * raid6/sse2.c
* *
* SSE-2 implementation of RAID-6 syndrome functions * SSE-2 implementation of RAID-6 syndrome functions
* *
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
#if (defined(__i386__) || defined(__x86_64__)) && !defined(__arch_um__) #if (defined(__i386__) || defined(__x86_64__)) && !defined(__arch_um__)
#include <linux/raid/pq.h> #include <linux/raid/pq.h>
#include "raid6x86.h" #include "x86.h"
static const struct raid6_sse_constants { static const struct raid6_sse_constants {
u64 x1d[2]; u64 x1d[2];
......
#
# This is a simple Makefile to test some of the RAID-6 code
# from userspace.
#
CC = gcc
OPTFLAGS = -O2 # Adjust as desired
CFLAGS = -I.. -I ../../../include -g $(OPTFLAGS)
LD = ld
AWK = awk -f
AR = ar
RANLIB = ranlib
.c.o:
$(CC) $(CFLAGS) -c -o $@ $<
%.c: ../%.c
cp -f $< $@
%.uc: ../%.uc
cp -f $< $@
all: raid6.a raid6test
raid6.a: int1.o int2.o int4.o int8.o int16.o int32.o mmx.o sse1.o sse2.o \
altivec1.o altivec2.o altivec4.o altivec8.o recov.o algos.o \
tables.o
rm -f $@
$(AR) cq $@ $^
$(RANLIB) $@
raid6test: test.c raid6.a
$(CC) $(CFLAGS) -o raid6test $^
altivec1.c: altivec.uc ../unroll.awk
$(AWK) ../unroll.awk -vN=1 < altivec.uc > $@
altivec2.c: altivec.uc ../unroll.awk
$(AWK) ../unroll.awk -vN=2 < altivec.uc > $@
altivec4.c: altivec.uc ../unroll.awk
$(AWK) ../unroll.awk -vN=4 < altivec.uc > $@
altivec8.c: altivec.uc ../unroll.awk
$(AWK) ../unroll.awk -vN=8 < altivec.uc > $@
int1.c: int.uc ../unroll.awk
$(AWK) ../unroll.awk -vN=1 < int.uc > $@
int2.c: int.uc ../unroll.awk
$(AWK) ../unroll.awk -vN=2 < int.uc > $@
int4.c: int.uc ../unroll.awk
$(AWK) ../unroll.awk -vN=4 < int.uc > $@
int8.c: int.uc ../unroll.awk
$(AWK) ../unroll.awk -vN=8 < int.uc > $@
int16.c: int.uc ../unroll.awk
$(AWK) ../unroll.awk -vN=16 < int.uc > $@
int32.c: int.uc ../unroll.awk
$(AWK) ../unroll.awk -vN=32 < int.uc > $@
tables.c: mktables
./mktables > tables.c
clean:
rm -f *.o *.a mktables mktables.c *.uc int*.c altivec*.c tables.c raid6test
spotless: clean
rm -f *~
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
* ----------------------------------------------------------------------- */ * ----------------------------------------------------------------------- */
/* /*
* raid6x86.h * raid6/x86.h
* *
* Definitions common to x86 and x86-64 RAID-6 code only * Definitions common to x86 and x86-64 RAID-6 code only
*/ */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment