2014-01-24 18:39:44

by Dave Jones

[permalink] [raw]
Subject: Fix ccp_run_passthru_cmd dma variable assignments

There are some suspicious looking lines of code in the new ccp driver, including
one that assigns a variable to itself, and another that overwrites a previous assignment.

This may have been a cut-and-paste error where 'src' was forgotten to be changed to 'dst'.
I have no hardware to test this, so this is untested.

Signed-off-by: Dave Jones <[email protected]>

diff --git a/drivers/crypto/ccp/ccp-ops.c b/drivers/crypto/ccp/ccp-ops.c
index 71ed3ade7e12..c266a7b154bb 100644
--- a/drivers/crypto/ccp/ccp-ops.c
+++ b/drivers/crypto/ccp/ccp-ops.c
@@ -1666,8 +1666,8 @@ static int ccp_run_passthru_cmd(struct ccp_cmd_queue *cmd_q,

op.dst.type = CCP_MEMTYPE_SYSTEM;
op.dst.u.dma.address = sg_dma_address(dst.sg_wa.sg);
- op.src.u.dma.offset = dst.sg_wa.sg_used;
- op.src.u.dma.length = op.src.u.dma.length;
+ op.dst.u.dma.offset = dst.sg_wa.sg_used;
+ op.dst.u.dma.length = op.src.u.dma.length;

ret = ccp_perform_passthru(&op);
if (ret) {


2014-01-24 20:17:21

by Tom Lendacky

[permalink] [raw]
Subject: Re: Fix ccp_run_passthru_cmd dma variable assignments

On 01/24/2014 12:39 PM, Dave Jones wrote:
> There are some suspicious looking lines of code in the new ccp driver, including
> one that assigns a variable to itself, and another that overwrites a previous assignment.
>
> This may have been a cut-and-paste error where 'src' was forgotten to be changed to 'dst'.
> I have no hardware to test this, so this is untested.

Yes, this was a cut-and-paste error that was not discovered with my tests. I've
updated my testcases and tested/verified this fix.

Herbert, this should probably go through the cryptodev-2.6 tree right?

Acked-by: Tom Lendacky <[email protected]>

Thanks,
Tom

>
> Signed-off-by: Dave Jones <[email protected]>
>
> diff --git a/drivers/crypto/ccp/ccp-ops.c b/drivers/crypto/ccp/ccp-ops.c
> index 71ed3ade7e12..c266a7b154bb 100644
> --- a/drivers/crypto/ccp/ccp-ops.c
> +++ b/drivers/crypto/ccp/ccp-ops.c
> @@ -1666,8 +1666,8 @@ static int ccp_run_passthru_cmd(struct ccp_cmd_queue *cmd_q,
>
> op.dst.type = CCP_MEMTYPE_SYSTEM;
> op.dst.u.dma.address = sg_dma_address(dst.sg_wa.sg);
> - op.src.u.dma.offset = dst.sg_wa.sg_used;
> - op.src.u.dma.length = op.src.u.dma.length;
> + op.dst.u.dma.offset = dst.sg_wa.sg_used;
> + op.dst.u.dma.length = op.src.u.dma.length;
>
> ret = ccp_perform_passthru(&op);
> if (ret) {
>

2014-02-09 09:20:59

by Herbert Xu

[permalink] [raw]
Subject: Re: Fix ccp_run_passthru_cmd dma variable assignments

On Fri, Jan 24, 2014 at 02:17:12PM -0600, Tom Lendacky wrote:
> On 01/24/2014 12:39 PM, Dave Jones wrote:
> > There are some suspicious looking lines of code in the new ccp driver, including
> > one that assigns a variable to itself, and another that overwrites a previous assignment.
> >
> > This may have been a cut-and-paste error where 'src' was forgotten to be changed to 'dst'.
> > I have no hardware to test this, so this is untested.
>
> Yes, this was a cut-and-paste error that was not discovered with my tests. I've
> updated my testcases and tested/verified this fix.
>
> Herbert, this should probably go through the cryptodev-2.6 tree right?
>
> Acked-by: Tom Lendacky <[email protected]>

Applied to cryptodev. Thanks.
--
Email: Herbert Xu <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt