crypto: cavium - Fix statistics pending request value

The pending request counter was read from the wrong register. While
at it, there is no need to use an atomic for it as it is only read
localy in a loop.

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>
This commit is contained in:
Jan Glauber 2018-04-09 17:45:53 +02:00 committed by Herbert Xu
parent a40c880455
commit 1cc7e01ff9
2 changed files with 5 additions and 9 deletions

View File

@ -469,6 +469,8 @@ static int zip_show_stats(struct seq_file *s, void *unused)
struct zip_stats *st; struct zip_stats *st;
for (index = 0; index < MAX_ZIP_DEVICES; index++) { for (index = 0; index < MAX_ZIP_DEVICES; index++) {
u64 pending = 0;
if (zip_dev[index]) { if (zip_dev[index]) {
zip = zip_dev[index]; zip = zip_dev[index];
st = &zip->stats; st = &zip->stats;
@ -476,10 +478,8 @@ static int zip_show_stats(struct seq_file *s, void *unused)
/* Get all the pending requests */ /* Get all the pending requests */
for (q = 0; q < ZIP_NUM_QUEUES; q++) { for (q = 0; q < ZIP_NUM_QUEUES; q++) {
val = zip_reg_read((zip->reg_base + val = zip_reg_read((zip->reg_base +
ZIP_DBG_COREX_STA(q))); ZIP_DBG_QUEX_STA(q)));
val = (val >> 32); pending += val >> 32 & 0xffffff;
val = val & 0xffffff;
atomic64_add(val, &st->pending_req);
} }
val = atomic64_read(&st->comp_req_complete); val = atomic64_read(&st->comp_req_complete);
@ -514,10 +514,7 @@ static int zip_show_stats(struct seq_file *s, void *unused)
(u64)atomic64_read(&st->decomp_in_bytes), (u64)atomic64_read(&st->decomp_in_bytes),
(u64)atomic64_read(&st->decomp_out_bytes), (u64)atomic64_read(&st->decomp_out_bytes),
(u64)atomic64_read(&st->decomp_bad_reqs), (u64)atomic64_read(&st->decomp_bad_reqs),
(u64)atomic64_read(&st->pending_req)); pending);
/* Reset pending requests count */
atomic64_set(&st->pending_req, 0);
} }
} }
return 0; return 0;

View File

@ -74,7 +74,6 @@ struct zip_stats {
atomic64_t comp_req_complete; atomic64_t comp_req_complete;
atomic64_t decomp_req_submit; atomic64_t decomp_req_submit;
atomic64_t decomp_req_complete; atomic64_t decomp_req_complete;
atomic64_t pending_req;
atomic64_t comp_in_bytes; atomic64_t comp_in_bytes;
atomic64_t comp_out_bytes; atomic64_t comp_out_bytes;
atomic64_t decomp_in_bytes; atomic64_t decomp_in_bytes;