crypto: aml-dma: fix errors found in coverity check
authorMatthew Shyu <matthew.shyu@amlogic.com>
Tue, 19 Jun 2018 11:04:13 +0000 (19:04 +0800)
committerYixun Lan <yixun.lan@amlogic.com>
Thu, 21 Jun 2018 04:11:11 +0000 (21:11 -0700)
PD#168725: fix errors found in coverity check

Change-Id: I7528dc0c6122d32e3f2937a4b1869031d10851af
Signed-off-by: Matthew Shyu <matthew.shyu@amlogic.com>
drivers/amlogic/crypto/aml-aes-dma.c
drivers/amlogic/crypto/aml-dma.c
drivers/amlogic/crypto/aml-tdes-dma.c

index fd0c7e7..1239089 100644 (file)
@@ -988,6 +988,7 @@ static void aml_aes_done_task(unsigned long data)
                                if (!dd->in_sg || !dd->out_sg) {
                                        pr_err("aml-aes: sg invalid\n");
                                        err = -EINVAL;
+                                       break;
                                }
                        }
                }
index cf7ea7c..f50417b 100644 (file)
@@ -124,6 +124,7 @@ static int aml_dma_probe(struct platform_device *pdev)
        return err;
 
 dma_err:
+       kfree(dma_dd);
        dev_err(dev, "initialization failed.\n");
 
        return err;
index 6c7b658..8927412 100644 (file)
@@ -777,10 +777,13 @@ static void aml_tdes_done_task(unsigned long data)
                        uint32_t i = 0;
 
                        for (i = 0; i < dd->fast_nents; i++) {
-                               if (!dd->in_sg || !dd->out_sg)
-                                       err = -EINVAL;
                                dd->in_sg = sg_next(dd->in_sg);
                                dd->out_sg = sg_next(dd->out_sg);
+                               if (!dd->in_sg || !dd->out_sg) {
+                                       pr_err("aml-tdes: sg invalid\n");
+                                       err = -EINVAL;
+                                       break;
+                               }
                        }
                }