aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2009-09-17 00:03:29 -0400
committerDan Williams <dan.j.williams@intel.com>2009-09-17 00:03:29 -0400
commit1b6df6930994d5d027375b07ac9da63644eb5758 (patch)
tree1cf584491f4f1f5407a49ad531ec0b60205f6e38
parent376ec37667b510453f5a62fcd95d762786e6a0a9 (diff)
raid6test: fix stack overflow
Testing on x86_64 with NDISKS=255 yields: do_IRQ: modprobe near stack overflow (cur:ffff88007d19c000,sp:ffff88007d19c128) ...and eventually general protection fault: 0000 [#1] Moving the scribble buffers off the stack allows the test to complete successfully. Signed-off-by: Dan Williams <dan.j.williams@intel.com>
-rw-r--r--crypto/async_tx/raid6test.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/crypto/async_tx/raid6test.c b/crypto/async_tx/raid6test.c
index 98c83ca96c83..3ec27c7e62ea 100644
--- a/crypto/async_tx/raid6test.c
+++ b/crypto/async_tx/raid6test.c
@@ -28,6 +28,7 @@
28#define NDISKS 16 /* Including P and Q */ 28#define NDISKS 16 /* Including P and Q */
29 29
30static struct page *dataptrs[NDISKS]; 30static struct page *dataptrs[NDISKS];
31static addr_conv_t addr_conv[NDISKS];
31static struct page *data[NDISKS+3]; 32static struct page *data[NDISKS+3];
32static struct page *spare; 33static struct page *spare;
33static struct page *recovi; 34static struct page *recovi;
@@ -69,7 +70,6 @@ static char disk_type(int d, int disks)
69static void raid6_dual_recov(int disks, size_t bytes, int faila, int failb, struct page **ptrs) 70static void raid6_dual_recov(int disks, size_t bytes, int faila, int failb, struct page **ptrs)
70{ 71{
71 struct async_submit_ctl submit; 72 struct async_submit_ctl submit;
72 addr_conv_t addr_conv[disks];
73 struct completion cmp; 73 struct completion cmp;
74 struct dma_async_tx_descriptor *tx = NULL; 74 struct dma_async_tx_descriptor *tx = NULL;
75 enum sum_check_flags result = ~0; 75 enum sum_check_flags result = ~0;
@@ -156,7 +156,6 @@ static int test_disks(int i, int j, int disks)
156 156
157static int test(int disks, int *tests) 157static int test(int disks, int *tests)
158{ 158{
159 addr_conv_t addr_conv[disks];
160 struct dma_async_tx_descriptor *tx; 159 struct dma_async_tx_descriptor *tx;
161 struct async_submit_ctl submit; 160 struct async_submit_ctl submit;
162 struct completion cmp; 161 struct completion cmp;