From: Rohit Raj <rohit....@nxp.com>

Fix Issues reported by NXP Internal Coverity.

Fixes: 64f131a82fbe ("bus/fslmc: add qbman debug")
Cc: hemant.agra...@nxp.com
Cc: sta...@dpdk.org

Signed-off-by: Rohit Raj <rohit....@nxp.com>
---
 drivers/bus/fslmc/qbman/qbman_debug.c | 49 +++++++++++++++++----------
 1 file changed, 32 insertions(+), 17 deletions(-)

diff --git a/drivers/bus/fslmc/qbman/qbman_debug.c 
b/drivers/bus/fslmc/qbman/qbman_debug.c
index eea06988ff..0e471ec3fd 100644
--- a/drivers/bus/fslmc/qbman/qbman_debug.c
+++ b/drivers/bus/fslmc/qbman/qbman_debug.c
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: BSD-3-Clause
  * Copyright (C) 2015 Freescale Semiconductor, Inc.
- * Copyright 2018-2020 NXP
+ * Copyright 2018-2020,2022 NXP
  */
 
 #include "compat.h"
@@ -37,6 +37,7 @@ int qbman_bp_query(struct qbman_swp *s, uint32_t bpid,
                   struct qbman_bp_query_rslt *r)
 {
        struct qbman_bp_query_desc *p;
+       struct qbman_bp_query_rslt *bp_query_rslt;
 
        /* Start the management command */
        p = (struct qbman_bp_query_desc *)qbman_swp_mc_start(s);
@@ -47,14 +48,16 @@ int qbman_bp_query(struct qbman_swp *s, uint32_t bpid,
        p->bpid = bpid;
 
        /* Complete the management command */
-       *r = *(struct qbman_bp_query_rslt *)qbman_swp_mc_complete(s, p,
-                                                QBMAN_BP_QUERY);
-       if (!r) {
+       bp_query_rslt = (struct qbman_bp_query_rslt *)qbman_swp_mc_complete(s,
+                                               p, QBMAN_BP_QUERY);
+       if (!bp_query_rslt) {
                pr_err("qbman: Query BPID %d failed, no response\n",
                        bpid);
                return -EIO;
        }
 
+       *r = *bp_query_rslt;
+
        /* Decode the outcome */
        QBMAN_BUG_ON((r->verb & QBMAN_RESPONSE_VERB_MASK) != QBMAN_BP_QUERY);
 
@@ -202,20 +205,23 @@ int qbman_fq_query(struct qbman_swp *s, uint32_t fqid,
                   struct qbman_fq_query_rslt *r)
 {
        struct qbman_fq_query_desc *p;
+       struct qbman_fq_query_rslt *fq_query_rslt;
 
        p = (struct qbman_fq_query_desc *)qbman_swp_mc_start(s);
        if (!p)
                return -EBUSY;
 
        p->fqid = fqid;
-       *r = *(struct qbman_fq_query_rslt *)qbman_swp_mc_complete(s, p,
-                                         QBMAN_FQ_QUERY);
-       if (!r) {
+       fq_query_rslt = (struct qbman_fq_query_rslt *)qbman_swp_mc_complete(s,
+                                       p, QBMAN_FQ_QUERY);
+       if (!fq_query_rslt) {
                pr_err("qbman: Query FQID %d failed, no response\n",
                        fqid);
                return -EIO;
        }
 
+       *r = *fq_query_rslt;
+
        /* Decode the outcome */
        QBMAN_BUG_ON((r->verb & QBMAN_RESPONSE_VERB_MASK) != QBMAN_FQ_QUERY);
 
@@ -398,20 +404,23 @@ int qbman_cgr_query(struct qbman_swp *s, uint32_t cgid,
                    struct qbman_cgr_query_rslt *r)
 {
        struct qbman_cgr_query_desc *p;
+       struct qbman_cgr_query_rslt *cgr_query_rslt;
 
        p = (struct qbman_cgr_query_desc *)qbman_swp_mc_start(s);
        if (!p)
                return -EBUSY;
 
        p->cgid = cgid;
-       *r = *(struct qbman_cgr_query_rslt *)qbman_swp_mc_complete(s, p,
-                                                       QBMAN_CGR_QUERY);
-       if (!r) {
+       cgr_query_rslt = (struct qbman_cgr_query_rslt *)qbman_swp_mc_complete(s,
+                                       p, QBMAN_CGR_QUERY);
+       if (!cgr_query_rslt) {
                pr_err("qbman: Query CGID %d failed, no response\n",
                        cgid);
                return -EIO;
        }
 
+       *r = *cgr_query_rslt;
+
        /* Decode the outcome */
        QBMAN_BUG_ON((r->verb & QBMAN_RESPONSE_VERB_MASK) != QBMAN_CGR_QUERY);
 
@@ -473,20 +482,23 @@ int qbman_cgr_wred_query(struct qbman_swp *s, uint32_t 
cgid,
                        struct qbman_wred_query_rslt *r)
 {
        struct qbman_cgr_query_desc *p;
+       struct qbman_wred_query_rslt *wred_query_rslt;
 
        p = (struct qbman_cgr_query_desc *)qbman_swp_mc_start(s);
        if (!p)
                return -EBUSY;
 
        p->cgid = cgid;
-       *r = *(struct qbman_wred_query_rslt *)qbman_swp_mc_complete(s, p,
-                                                       QBMAN_WRED_QUERY);
-       if (!r) {
+       wred_query_rslt = (struct qbman_wred_query_rslt *)qbman_swp_mc_complete(
+                                       s, p, QBMAN_WRED_QUERY);
+       if (!wred_query_rslt) {
                pr_err("qbman: Query CGID WRED %d failed, no response\n",
                        cgid);
                return -EIO;
        }
 
+       *r = *wred_query_rslt;
+
        /* Decode the outcome */
        QBMAN_BUG_ON((r->verb & QBMAN_RESPONSE_VERB_MASK) != QBMAN_WRED_QUERY);
 
@@ -527,7 +539,7 @@ void qbman_cgr_attr_wred_dp_decompose(uint32_t dp, uint64_t 
*minth,
        if (mn == 0)
                *maxth = ma;
        else
-               *maxth = ((ma+256) * (1<<(mn-1)));
+               *maxth = ((uint64_t)(ma+256) * (1<<(mn-1)));
 
        if (step_s == 0)
                *minth = *maxth - step_i;
@@ -630,6 +642,7 @@ int qbman_wqchan_query(struct qbman_swp *s, uint16_t chanid,
                       struct qbman_wqchan_query_rslt *r)
 {
        struct qbman_wqchan_query_desc *p;
+       struct qbman_wqchan_query_rslt *wqchan_query_rslt;
 
        /* Start the management command */
        p = (struct qbman_wqchan_query_desc *)qbman_swp_mc_start(s);
@@ -640,14 +653,16 @@ int qbman_wqchan_query(struct qbman_swp *s, uint16_t 
chanid,
        p->chid = chanid;
 
        /* Complete the management command */
-       *r = *(struct qbman_wqchan_query_rslt *)qbman_swp_mc_complete(s, p,
-                                                       QBMAN_WQ_QUERY);
-       if (!r) {
+       wqchan_query_rslt = (struct qbman_wqchan_query_rslt 
*)qbman_swp_mc_complete(
+                                               s, p, QBMAN_WQ_QUERY);
+       if (!wqchan_query_rslt) {
                pr_err("qbman: Query WQ Channel %d failed, no response\n",
                        chanid);
                return -EIO;
        }
 
+       *r = *wqchan_query_rslt;
+
        /* Decode the outcome */
        QBMAN_BUG_ON((r->verb & QBMAN_RESPONSE_VERB_MASK) != QBMAN_WQ_QUERY);
 
-- 
2.25.1

Reply via email to