crypto: atmel-aes - adjust duplicate test
authorJulia Lawall <Julia.Lawall@lip6.fr>
Mon, 21 Jan 2013 13:02:51 +0000 (14:02 +0100)
committerHerbert Xu <herbert@gondor.apana.org.au>
Mon, 4 Feb 2013 13:16:52 +0000 (21:16 +0800)
Delete successive tests to the same location.  The code tested the result
of a previous allocation, that itself was already tested.  It is changed to
test the result of the most recent allocation.

A simplified version of the semantic match that finds this problem is as
follows: (http://coccinelle.lip6.fr/)

// <smpl>
@s exists@
local idexpression y;
expression x,e;
@@

*if ( \(x == NULL\|IS_ERR(x)\|y != 0\) )
 { ... when forall
   return ...; }
... when != \(y = e\|y += e\|y -= e\|y |= e\|y &= e\|y++\|y--\|&y\)
    when != \(XT_GETPAGE(...,y)\|WMI_CMD_BUF(...)\)
*if ( \(x == NULL\|IS_ERR(x)\|y != 0\) )
 { ... when forall
   return ...; }
// </smpl>

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Acked-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/atmel-aes.c

index 8061336..fe19bae 100644 (file)
@@ -332,7 +332,7 @@ static int atmel_aes_crypt_cpu_start(struct atmel_aes_dev *dd)
                return -EINVAL;
 
        dd->nb_out_sg = atmel_aes_sg_length(dd->req, dd->out_sg);
-       if (!dd->nb_in_sg)
+       if (!dd->nb_out_sg)
                return -EINVAL;
 
        dd->bufcnt = sg_copy_to_buffer(dd->in_sg, dd->nb_in_sg,