diff options
-rw-r--r-- | crypto/async_tx/Kconfig | 14 | ||||
-rw-r--r-- | drivers/md/Kconfig | 18 | ||||
-rw-r--r-- | drivers/md/Makefile | 77 | ||||
-rw-r--r-- | lib/Kconfig | 3 | ||||
-rw-r--r-- | lib/Makefile | 1 | ||||
-rw-r--r-- | lib/raid6/Makefile | 78 | ||||
-rw-r--r-- | lib/raid6/mktables.c (renamed from drivers/md/mktables.c) | 0 | ||||
-rw-r--r-- | lib/raid6/raid6algos.c (renamed from drivers/md/raid6algos.c) | 0 | ||||
-rw-r--r-- | lib/raid6/raid6altivec.uc (renamed from drivers/md/raid6altivec.uc) | 0 | ||||
-rw-r--r-- | lib/raid6/raid6int.uc (renamed from drivers/md/raid6int.uc) | 0 | ||||
-rw-r--r-- | lib/raid6/raid6mmx.c (renamed from drivers/md/raid6mmx.c) | 0 | ||||
-rw-r--r-- | lib/raid6/raid6recov.c (renamed from drivers/md/raid6recov.c) | 0 | ||||
-rw-r--r-- | lib/raid6/raid6sse1.c (renamed from drivers/md/raid6sse1.c) | 0 | ||||
-rw-r--r-- | lib/raid6/raid6sse2.c (renamed from drivers/md/raid6sse2.c) | 0 | ||||
-rw-r--r-- | lib/raid6/raid6test/Makefile (renamed from drivers/md/raid6test/Makefile) | 0 | ||||
-rw-r--r-- | lib/raid6/raid6test/test.c (renamed from drivers/md/raid6test/test.c) | 0 | ||||
-rw-r--r-- | lib/raid6/raid6x86.h (renamed from drivers/md/raid6x86.h) | 0 | ||||
-rw-r--r-- | lib/raid6/unroll.awk (renamed from drivers/md/unroll.awk) | 0 |
18 files changed, 97 insertions, 94 deletions
diff --git a/crypto/async_tx/Kconfig b/crypto/async_tx/Kconfig index e28e276ac611..5de2ed13b35d 100644 --- a/crypto/async_tx/Kconfig +++ b/crypto/async_tx/Kconfig | |||
@@ -22,6 +22,20 @@ config ASYNC_RAID6_RECOV | |||
22 | tristate | 22 | tristate |
23 | select ASYNC_CORE | 23 | select ASYNC_CORE |
24 | select ASYNC_PQ | 24 | select ASYNC_PQ |
25 | select ASYNC_XOR | ||
26 | |||
27 | config ASYNC_RAID6_TEST | ||
28 | tristate "Self test for hardware accelerated raid6 recovery" | ||
29 | depends on ASYNC_RAID6_RECOV | ||
30 | select ASYNC_MEMCPY | ||
31 | ---help--- | ||
32 | This is a one-shot self test that permutes through the | ||
33 | recovery of all the possible two disk failure scenarios for a | ||
34 | N-disk array. Recovery is performed with the asynchronous | ||
35 | raid6 recovery routines, and will optionally use an offload | ||
36 | engine if one is available. | ||
37 | |||
38 | If unsure, say N. | ||
25 | 39 | ||
26 | config ASYNC_TX_DISABLE_PQ_VAL_DMA | 40 | config ASYNC_TX_DISABLE_PQ_VAL_DMA |
27 | bool | 41 | bool |
diff --git a/drivers/md/Kconfig b/drivers/md/Kconfig index 4a6feac8c94a..bf1a95e31559 100644 --- a/drivers/md/Kconfig +++ b/drivers/md/Kconfig | |||
@@ -121,7 +121,7 @@ config MD_RAID10 | |||
121 | config MD_RAID456 | 121 | config MD_RAID456 |
122 | tristate "RAID-4/RAID-5/RAID-6 mode" | 122 | tristate "RAID-4/RAID-5/RAID-6 mode" |
123 | depends on BLK_DEV_MD | 123 | depends on BLK_DEV_MD |
124 | select MD_RAID6_PQ | 124 | select RAID6_PQ |
125 | select ASYNC_MEMCPY | 125 | select ASYNC_MEMCPY |
126 | select ASYNC_XOR | 126 | select ASYNC_XOR |
127 | select ASYNC_PQ | 127 | select ASYNC_PQ |
@@ -165,22 +165,6 @@ config MULTICORE_RAID456 | |||
165 | 165 | ||
166 | If unsure, say N. | 166 | If unsure, say N. |
167 | 167 | ||
168 | config MD_RAID6_PQ | ||
169 | tristate | ||
170 | |||
171 | config ASYNC_RAID6_TEST | ||
172 | tristate "Self test for hardware accelerated raid6 recovery" | ||
173 | depends on MD_RAID6_PQ | ||
174 | select ASYNC_RAID6_RECOV | ||
175 | ---help--- | ||
176 | This is a one-shot self test that permutes through the | ||
177 | recovery of all the possible two disk failure scenarios for a | ||
178 | N-disk array. Recovery is performed with the asynchronous | ||
179 | raid6 recovery routines, and will optionally use an offload | ||
180 | engine if one is available. | ||
181 | |||
182 | If unsure, say N. | ||
183 | |||
184 | config MD_MULTIPATH | 168 | config MD_MULTIPATH |
185 | tristate "Multipath I/O support" | 169 | tristate "Multipath I/O support" |
186 | depends on BLK_DEV_MD | 170 | depends on BLK_DEV_MD |
diff --git a/drivers/md/Makefile b/drivers/md/Makefile index e355e7f6a536..5e3aac41919d 100644 --- a/drivers/md/Makefile +++ b/drivers/md/Makefile | |||
@@ -12,13 +12,6 @@ dm-log-userspace-y \ | |||
12 | += dm-log-userspace-base.o dm-log-userspace-transfer.o | 12 | += dm-log-userspace-base.o dm-log-userspace-transfer.o |
13 | md-mod-y += md.o bitmap.o | 13 | md-mod-y += md.o bitmap.o |
14 | raid456-y += raid5.o | 14 | raid456-y += raid5.o |
15 | raid6_pq-y += raid6algos.o raid6recov.o raid6tables.o \ | ||
16 | raid6int1.o raid6int2.o raid6int4.o \ | ||
17 | raid6int8.o raid6int16.o raid6int32.o \ | ||
18 | raid6altivec1.o raid6altivec2.o raid6altivec4.o \ | ||
19 | raid6altivec8.o \ | ||
20 | raid6mmx.o raid6sse1.o raid6sse2.o | ||
21 | hostprogs-y += mktables | ||
22 | 15 | ||
23 | # Note: link order is important. All raid personalities | 16 | # Note: link order is important. All raid personalities |
24 | # and must come before md.o, as they each initialise | 17 | # and must come before md.o, as they each initialise |
@@ -29,7 +22,6 @@ obj-$(CONFIG_MD_LINEAR) += linear.o | |||
29 | obj-$(CONFIG_MD_RAID0) += raid0.o | 22 | obj-$(CONFIG_MD_RAID0) += raid0.o |
30 | obj-$(CONFIG_MD_RAID1) += raid1.o | 23 | obj-$(CONFIG_MD_RAID1) += raid1.o |
31 | obj-$(CONFIG_MD_RAID10) += raid10.o | 24 | obj-$(CONFIG_MD_RAID10) += raid10.o |
32 | obj-$(CONFIG_MD_RAID6_PQ) += raid6_pq.o | ||
33 | obj-$(CONFIG_MD_RAID456) += raid456.o | 25 | obj-$(CONFIG_MD_RAID456) += raid456.o |
34 | obj-$(CONFIG_MD_MULTIPATH) += multipath.o | 26 | obj-$(CONFIG_MD_MULTIPATH) += multipath.o |
35 | obj-$(CONFIG_MD_FAULTY) += faulty.o | 27 | obj-$(CONFIG_MD_FAULTY) += faulty.o |
@@ -45,75 +37,6 @@ obj-$(CONFIG_DM_MIRROR) += dm-mirror.o dm-log.o dm-region-hash.o | |||
45 | obj-$(CONFIG_DM_LOG_USERSPACE) += dm-log-userspace.o | 37 | obj-$(CONFIG_DM_LOG_USERSPACE) += dm-log-userspace.o |
46 | obj-$(CONFIG_DM_ZERO) += dm-zero.o | 38 | obj-$(CONFIG_DM_ZERO) += dm-zero.o |
47 | 39 | ||
48 | quiet_cmd_unroll = UNROLL $@ | ||
49 | cmd_unroll = $(AWK) -f$(srctree)/$(src)/unroll.awk -vN=$(UNROLL) \ | ||
50 | < $< > $@ || ( rm -f $@ && exit 1 ) | ||
51 | |||
52 | ifeq ($(CONFIG_ALTIVEC),y) | ||
53 | altivec_flags := -maltivec -mabi=altivec | ||
54 | endif | ||
55 | |||
56 | ifeq ($(CONFIG_DM_UEVENT),y) | 40 | ifeq ($(CONFIG_DM_UEVENT),y) |
57 | dm-mod-objs += dm-uevent.o | 41 | dm-mod-objs += dm-uevent.o |
58 | endif | 42 | endif |
59 | |||
60 | targets += raid6int1.c | ||
61 | $(obj)/raid6int1.c: UNROLL := 1 | ||
62 | $(obj)/raid6int1.c: $(src)/raid6int.uc $(src)/unroll.awk FORCE | ||
63 | $(call if_changed,unroll) | ||
64 | |||
65 | targets += raid6int2.c | ||
66 | $(obj)/raid6int2.c: UNROLL := 2 | ||
67 | $(obj)/raid6int2.c: $(src)/raid6int.uc $(src)/unroll.awk FORCE | ||
68 | $(call if_changed,unroll) | ||
69 | |||
70 | targets += raid6int4.c | ||
71 | $(obj)/raid6int4.c: UNROLL := 4 | ||
72 | $(obj)/raid6int4.c: $(src)/raid6int.uc $(src)/unroll.awk FORCE | ||
73 | $(call if_changed,unroll) | ||
74 | |||
75 | targets += raid6int8.c | ||
76 | $(obj)/raid6int8.c: UNROLL := 8 | ||
77 | $(obj)/raid6int8.c: $(src)/raid6int.uc $(src)/unroll.awk FORCE | ||
78 | $(call if_changed,unroll) | ||
79 | |||
80 | targets += raid6int16.c | ||
81 | $(obj)/raid6int16.c: UNROLL := 16 | ||
82 | $(obj)/raid6int16.c: $(src)/raid6int.uc $(src)/unroll.awk FORCE | ||
83 | $(call if_changed,unroll) | ||
84 | |||
85 | targets += raid6int32.c | ||
86 | $(obj)/raid6int32.c: UNROLL := 32 | ||
87 | $(obj)/raid6int32.c: $(src)/raid6int.uc $(src)/unroll.awk FORCE | ||
88 | $(call if_changed,unroll) | ||
89 | |||
90 | CFLAGS_raid6altivec1.o += $(altivec_flags) | ||
91 | targets += raid6altivec1.c | ||
92 | $(obj)/raid6altivec1.c: UNROLL := 1 | ||
93 | $(obj)/raid6altivec1.c: $(src)/raid6altivec.uc $(src)/unroll.awk FORCE | ||
94 | $(call if_changed,unroll) | ||
95 | |||
96 | CFLAGS_raid6altivec2.o += $(altivec_flags) | ||
97 | targets += raid6altivec2.c | ||
98 | $(obj)/raid6altivec2.c: UNROLL := 2 | ||
99 | $(obj)/raid6altivec2.c: $(src)/raid6altivec.uc $(src)/unroll.awk FORCE | ||
100 | $(call if_changed,unroll) | ||
101 | |||
102 | CFLAGS_raid6altivec4.o += $(altivec_flags) | ||
103 | targets += raid6altivec4.c | ||
104 | $(obj)/raid6altivec4.c: UNROLL := 4 | ||
105 | $(obj)/raid6altivec4.c: $(src)/raid6altivec.uc $(src)/unroll.awk FORCE | ||
106 | $(call if_changed,unroll) | ||
107 | |||
108 | CFLAGS_raid6altivec8.o += $(altivec_flags) | ||
109 | targets += raid6altivec8.c | ||
110 | $(obj)/raid6altivec8.c: UNROLL := 8 | ||
111 | $(obj)/raid6altivec8.c: $(src)/raid6altivec.uc $(src)/unroll.awk FORCE | ||
112 | $(call if_changed,unroll) | ||
113 | |||
114 | quiet_cmd_mktable = TABLE $@ | ||
115 | cmd_mktable = $(obj)/mktables > $@ || ( rm -f $@ && exit 1 ) | ||
116 | |||
117 | targets += raid6tables.c | ||
118 | $(obj)/raid6tables.c: $(obj)/mktables FORCE | ||
119 | $(call if_changed,mktable) | ||
diff --git a/lib/Kconfig b/lib/Kconfig index 5b916bc0fbae..fa9bf2c06199 100644 --- a/lib/Kconfig +++ b/lib/Kconfig | |||
@@ -7,6 +7,9 @@ config BINARY_PRINTF | |||
7 | 7 | ||
8 | menu "Library routines" | 8 | menu "Library routines" |
9 | 9 | ||
10 | config RAID6_PQ | ||
11 | tristate | ||
12 | |||
10 | config BITREVERSE | 13 | config BITREVERSE |
11 | tristate | 14 | tristate |
12 | 15 | ||
diff --git a/lib/Makefile b/lib/Makefile index 0bfabba1bb32..e6a3763b8212 100644 --- a/lib/Makefile +++ b/lib/Makefile | |||
@@ -69,6 +69,7 @@ obj-$(CONFIG_ZLIB_DEFLATE) += zlib_deflate/ | |||
69 | obj-$(CONFIG_REED_SOLOMON) += reed_solomon/ | 69 | obj-$(CONFIG_REED_SOLOMON) += reed_solomon/ |
70 | obj-$(CONFIG_LZO_COMPRESS) += lzo/ | 70 | obj-$(CONFIG_LZO_COMPRESS) += lzo/ |
71 | obj-$(CONFIG_LZO_DECOMPRESS) += lzo/ | 71 | obj-$(CONFIG_LZO_DECOMPRESS) += lzo/ |
72 | obj-$(CONFIG_RAID6_PQ) += raid6/ | ||
72 | 73 | ||
73 | lib-$(CONFIG_DECOMPRESS_GZIP) += decompress_inflate.o | 74 | lib-$(CONFIG_DECOMPRESS_GZIP) += decompress_inflate.o |
74 | lib-$(CONFIG_DECOMPRESS_BZIP2) += decompress_bunzip2.o | 75 | lib-$(CONFIG_DECOMPRESS_BZIP2) += decompress_bunzip2.o |
diff --git a/lib/raid6/Makefile b/lib/raid6/Makefile new file mode 100644 index 000000000000..19bf32da644f --- /dev/null +++ b/lib/raid6/Makefile | |||
@@ -0,0 +1,78 @@ | |||
1 | obj-$(CONFIG_RAID6_PQ) += raid6_pq.o | ||
2 | |||
3 | raid6_pq-y += raid6algos.o raid6recov.o raid6tables.o \ | ||
4 | raid6int1.o raid6int2.o raid6int4.o \ | ||
5 | raid6int8.o raid6int16.o raid6int32.o \ | ||
6 | raid6altivec1.o raid6altivec2.o raid6altivec4.o \ | ||
7 | raid6altivec8.o \ | ||
8 | raid6mmx.o raid6sse1.o raid6sse2.o | ||
9 | hostprogs-y += mktables | ||
10 | |||
11 | quiet_cmd_unroll = UNROLL $@ | ||
12 | cmd_unroll = $(AWK) -f$(srctree)/$(src)/unroll.awk -vN=$(UNROLL) \ | ||
13 | < $< > $@ || ( rm -f $@ && exit 1 ) | ||
14 | |||
15 | ifeq ($(CONFIG_ALTIVEC),y) | ||
16 | altivec_flags := -maltivec -mabi=altivec | ||
17 | endif | ||
18 | |||
19 | targets += raid6int1.c | ||
20 | $(obj)/raid6int1.c: UNROLL := 1 | ||
21 | $(obj)/raid6int1.c: $(src)/raid6int.uc $(src)/unroll.awk FORCE | ||
22 | $(call if_changed,unroll) | ||
23 | |||
24 | targets += raid6int2.c | ||
25 | $(obj)/raid6int2.c: UNROLL := 2 | ||
26 | $(obj)/raid6int2.c: $(src)/raid6int.uc $(src)/unroll.awk FORCE | ||
27 | $(call if_changed,unroll) | ||
28 | |||
29 | targets += raid6int4.c | ||
30 | $(obj)/raid6int4.c: UNROLL := 4 | ||
31 | $(obj)/raid6int4.c: $(src)/raid6int.uc $(src)/unroll.awk FORCE | ||
32 | $(call if_changed,unroll) | ||
33 | |||
34 | targets += raid6int8.c | ||
35 | $(obj)/raid6int8.c: UNROLL := 8 | ||
36 | $(obj)/raid6int8.c: $(src)/raid6int.uc $(src)/unroll.awk FORCE | ||
37 | $(call if_changed,unroll) | ||
38 | |||
39 | targets += raid6int16.c | ||
40 | $(obj)/raid6int16.c: UNROLL := 16 | ||
41 | $(obj)/raid6int16.c: $(src)/raid6int.uc $(src)/unroll.awk FORCE | ||
42 | $(call if_changed,unroll) | ||
43 | |||
44 | targets += raid6int32.c | ||
45 | $(obj)/raid6int32.c: UNROLL := 32 | ||
46 | $(obj)/raid6int32.c: $(src)/raid6int.uc $(src)/unroll.awk FORCE | ||
47 | $(call if_changed,unroll) | ||
48 | |||
49 | CFLAGS_raid6altivec1.o += $(altivec_flags) | ||
50 | targets += raid6altivec1.c | ||
51 | $(obj)/raid6altivec1.c: UNROLL := 1 | ||
52 | $(obj)/raid6altivec1.c: $(src)/raid6altivec.uc $(src)/unroll.awk FORCE | ||
53 | $(call if_changed,unroll) | ||
54 | |||
55 | CFLAGS_raid6altivec2.o += $(altivec_flags) | ||
56 | targets += raid6altivec2.c | ||
57 | $(obj)/raid6altivec2.c: UNROLL := 2 | ||
58 | $(obj)/raid6altivec2.c: $(src)/raid6altivec.uc $(src)/unroll.awk FORCE | ||
59 | $(call if_changed,unroll) | ||
60 | |||
61 | CFLAGS_raid6altivec4.o += $(altivec_flags) | ||
62 | targets += raid6altivec4.c | ||
63 | $(obj)/raid6altivec4.c: UNROLL := 4 | ||
64 | $(obj)/raid6altivec4.c: $(src)/raid6altivec.uc $(src)/unroll.awk FORCE | ||
65 | $(call if_changed,unroll) | ||
66 | |||
67 | CFLAGS_raid6altivec8.o += $(altivec_flags) | ||
68 | targets += raid6altivec8.c | ||
69 | $(obj)/raid6altivec8.c: UNROLL := 8 | ||
70 | $(obj)/raid6altivec8.c: $(src)/raid6altivec.uc $(src)/unroll.awk FORCE | ||
71 | $(call if_changed,unroll) | ||
72 | |||
73 | quiet_cmd_mktable = TABLE $@ | ||
74 | cmd_mktable = $(obj)/mktables > $@ || ( rm -f $@ && exit 1 ) | ||
75 | |||
76 | targets += raid6tables.c | ||
77 | $(obj)/raid6tables.c: $(obj)/mktables FORCE | ||
78 | $(call if_changed,mktable) | ||
diff --git a/drivers/md/mktables.c b/lib/raid6/mktables.c index 3b1500843bba..3b1500843bba 100644 --- a/drivers/md/mktables.c +++ b/lib/raid6/mktables.c | |||
diff --git a/drivers/md/raid6algos.c b/lib/raid6/raid6algos.c index 1f8784bfd44d..1f8784bfd44d 100644 --- a/drivers/md/raid6algos.c +++ b/lib/raid6/raid6algos.c | |||
diff --git a/drivers/md/raid6altivec.uc b/lib/raid6/raid6altivec.uc index 2654d5c854be..2654d5c854be 100644 --- a/drivers/md/raid6altivec.uc +++ b/lib/raid6/raid6altivec.uc | |||
diff --git a/drivers/md/raid6int.uc b/lib/raid6/raid6int.uc index d1e276a14fab..d1e276a14fab 100644 --- a/drivers/md/raid6int.uc +++ b/lib/raid6/raid6int.uc | |||
diff --git a/drivers/md/raid6mmx.c b/lib/raid6/raid6mmx.c index e7f6c13132bf..e7f6c13132bf 100644 --- a/drivers/md/raid6mmx.c +++ b/lib/raid6/raid6mmx.c | |||
diff --git a/drivers/md/raid6recov.c b/lib/raid6/raid6recov.c index 2609f00e0d61..2609f00e0d61 100644 --- a/drivers/md/raid6recov.c +++ b/lib/raid6/raid6recov.c | |||
diff --git a/drivers/md/raid6sse1.c b/lib/raid6/raid6sse1.c index b274dd5eab8f..b274dd5eab8f 100644 --- a/drivers/md/raid6sse1.c +++ b/lib/raid6/raid6sse1.c | |||
diff --git a/drivers/md/raid6sse2.c b/lib/raid6/raid6sse2.c index 6ed6c6c0389f..6ed6c6c0389f 100644 --- a/drivers/md/raid6sse2.c +++ b/lib/raid6/raid6sse2.c | |||
diff --git a/drivers/md/raid6test/Makefile b/lib/raid6/raid6test/Makefile index 2874cbef529d..2874cbef529d 100644 --- a/drivers/md/raid6test/Makefile +++ b/lib/raid6/raid6test/Makefile | |||
diff --git a/drivers/md/raid6test/test.c b/lib/raid6/raid6test/test.c index 7a930318b17d..7a930318b17d 100644 --- a/drivers/md/raid6test/test.c +++ b/lib/raid6/raid6test/test.c | |||
diff --git a/drivers/md/raid6x86.h b/lib/raid6/raid6x86.h index 4c22c1568558..4c22c1568558 100644 --- a/drivers/md/raid6x86.h +++ b/lib/raid6/raid6x86.h | |||
diff --git a/drivers/md/unroll.awk b/lib/raid6/unroll.awk index c6aa03631df8..c6aa03631df8 100644 --- a/drivers/md/unroll.awk +++ b/lib/raid6/unroll.awk | |||