Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 94de648d authored by Anatolij Gustschin's avatar Anatolij Gustschin Committed by Dan Williams
Browse files

dmatest: correct raid6 PQ test



The number of PQ sources specified by module parameter "pq_sources"
is always forced odd to fit into dmatest's destination verificaton
scheme. But number of PQ sources and coefficients as passed to the
driver's prep_dma_pq() is not adjusted accordingly.

Fix it now to get correct PQ testing results in the case passed
"pq_sources" parameter is even.

Signed-off-by: default avatarAnatolij Gustschin <agust@denx.de>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Cc: Maciej Sosnowski <maciej.sosnowski@intel.com>
Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
parent 76bd061f
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -237,7 +237,7 @@ static int dmatest_func(void *data)
	dma_cookie_t		cookie;
	enum dma_status		status;
	enum dma_ctrl_flags 	flags;
	u8			pq_coefs[pq_sources];
	u8			pq_coefs[pq_sources + 1];
	int			ret;
	int			src_cnt;
	int			dst_cnt;
@@ -257,7 +257,7 @@ static int dmatest_func(void *data)
	} else if (thread->type == DMA_PQ) {
		src_cnt = pq_sources | 1; /* force odd to ensure dst = src */
		dst_cnt = 2;
		for (i = 0; i < pq_sources; i++)
		for (i = 0; i < src_cnt; i++)
			pq_coefs[i] = 1;
	} else
		goto err_srcs;
@@ -355,7 +355,7 @@ static int dmatest_func(void *data)
			for (i = 0; i < dst_cnt; i++)
				dma_pq[i] = dma_dsts[i] + dst_off;
			tx = dev->device_prep_dma_pq(chan, dma_pq, dma_srcs,
						     pq_sources, pq_coefs,
						     src_cnt, pq_coefs,
						     len, flags);
		}