diff options
author | Dan Williams <dan.j.williams@intel.com> | 2009-09-17 08:03:29 +0400 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2009-09-17 08:03:29 +0400 |
commit | 1b6df6930994d5d027375b07ac9da63644eb5758 (patch) | |
tree | 1cf584491f4f1f5407a49ad531ec0b60205f6e38 /crypto/async_tx | |
parent | 376ec37667b510453f5a62fcd95d762786e6a0a9 (diff) | |
download | linux-1b6df6930994d5d027375b07ac9da63644eb5758.tar.xz |
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>
Diffstat (limited to 'crypto/async_tx')
-rw-r--r-- | crypto/async_tx/raid6test.c | 3 |
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 @@ #define NDISKS 16 /* Including P and Q */ static struct page *dataptrs[NDISKS]; +static addr_conv_t addr_conv[NDISKS]; static struct page *data[NDISKS+3]; static struct page *spare; static struct page *recovi; @@ -69,7 +70,6 @@ static char disk_type(int d, int disks) static void raid6_dual_recov(int disks, size_t bytes, int faila, int failb, struct page **ptrs) { struct async_submit_ctl submit; - addr_conv_t addr_conv[disks]; struct completion cmp; struct dma_async_tx_descriptor *tx = NULL; enum sum_check_flags result = ~0; @@ -156,7 +156,6 @@ static int test_disks(int i, int j, int disks) static int test(int disks, int *tests) { - addr_conv_t addr_conv[disks]; struct dma_async_tx_descriptor *tx; struct async_submit_ctl submit; struct completion cmp; |