OSDN Git Service

crypto: cavium - Prevent division by zero
authorJan Glauber <jglauber@cavium.com>
Mon, 9 Apr 2018 15:45:52 +0000 (17:45 +0200)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 20 Apr 2018 16:58:35 +0000 (00:58 +0800)
Avoid two potential divisions by zero when calculating average
values for the zip statistics.

Signed-off-by: Jan Glauber <jglauber@cavium.com>
Reviewed-by: Robert Richter <rrichter@cavium.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/cavium/zip/zip_main.c

index 1cd8aa4..79b449e 100644 (file)
@@ -482,10 +482,11 @@ static int zip_show_stats(struct seq_file *s, void *unused)
                                atomic64_add(val, &st->pending_req);
                        }
 
-                       avg_chunk = (atomic64_read(&st->comp_in_bytes) /
-                                    atomic64_read(&st->comp_req_complete));
-                       avg_cr = (atomic64_read(&st->comp_in_bytes) /
-                                 atomic64_read(&st->comp_out_bytes));
+                       val = atomic64_read(&st->comp_req_complete);
+                       avg_chunk = (val) ? atomic64_read(&st->comp_in_bytes) / val : 0;
+
+                       val = atomic64_read(&st->comp_out_bytes);
+                       avg_cr = (val) ? atomic64_read(&st->comp_in_bytes) / val : 0;
                        seq_printf(s, "        ZIP Device %d Stats\n"
                                      "-----------------------------------\n"
                                      "Comp Req Submitted        : \t%lld\n"