2023-02-18 13:04:11

by Maxim Korotkov

[permalink] [raw]
Subject: [PATCH] bnx2: remove deadcode in bnx2_init_cpus()

The load_cpu_fw function has no error return code
and always returns zero. Checking the value returned by
this function does not make sense.
As a result, bnx2_init_cpus will also return only zero

Found by Security Code and Linux Verification
Center (linuxtesting.org) with SVACE

Fixes: 57579f7629a3 ("bnx2: Use request_firmware()")
Signed-off-by: Maxim Korotkov <[email protected]>
---
drivers/net/ethernet/broadcom/bnx2.c | 22 ++++++----------------
1 file changed, 6 insertions(+), 16 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/bnx2.c b/drivers/net/ethernet/broadcom/bnx2.c
index 9f473854b0f4..4dacb65a7348 100644
--- a/drivers/net/ethernet/broadcom/bnx2.c
+++ b/drivers/net/ethernet/broadcom/bnx2.c
@@ -3908,37 +3908,27 @@ bnx2_init_cpus(struct bnx2 *bp)
(const struct bnx2_mips_fw_file *) bp->mips_firmware->data;
const struct bnx2_rv2p_fw_file *rv2p_fw =
(const struct bnx2_rv2p_fw_file *) bp->rv2p_firmware->data;
- int rc;

/* Initialize the RV2P processor. */
load_rv2p_fw(bp, RV2P_PROC1, &rv2p_fw->proc1);
load_rv2p_fw(bp, RV2P_PROC2, &rv2p_fw->proc2);

/* Initialize the RX Processor. */
- rc = load_cpu_fw(bp, &cpu_reg_rxp, &mips_fw->rxp);
- if (rc)
- goto init_cpu_err;
+ (void)load_cpu_fw(bp, &cpu_reg_rxp, &mips_fw->rxp);

/* Initialize the TX Processor. */
- rc = load_cpu_fw(bp, &cpu_reg_txp, &mips_fw->txp);
- if (rc)
- goto init_cpu_err;
+ (void)load_cpu_fw(bp, &cpu_reg_txp, &mips_fw->txp);

/* Initialize the TX Patch-up Processor. */
- rc = load_cpu_fw(bp, &cpu_reg_tpat, &mips_fw->tpat);
- if (rc)
- goto init_cpu_err;
+ (void)load_cpu_fw(bp, &cpu_reg_tpat, &mips_fw->tpat);

/* Initialize the Completion Processor. */
- rc = load_cpu_fw(bp, &cpu_reg_com, &mips_fw->com);
- if (rc)
- goto init_cpu_err;
+ (void)load_cpu_fw(bp, &cpu_reg_com, &mips_fw->com);

/* Initialize the Command Processor. */
- rc = load_cpu_fw(bp, &cpu_reg_cp, &mips_fw->cp);
+ (void)load_cpu_fw(bp, &cpu_reg_cp, &mips_fw->cp);

-init_cpu_err:
- return rc;
+ return 0;
}

static void
--
2.37.2



2023-02-18 16:13:26

by Vadim Fedorenko

[permalink] [raw]
Subject: Re: [PATCH] bnx2: remove deadcode in bnx2_init_cpus()

On 18.02.2023 13:00, Maxim Korotkov wrote:
> The load_cpu_fw function has no error return code
> and always returns zero. Checking the value returned by
> this function does not make sense.
> As a result, bnx2_init_cpus will also return only zero
>
In this case it's safe to convert both load_cpu_fw and bnx2_init_cpus to void
and remove the check in bnx2_init_chip. This will reduce the code a bit.



2023-02-19 09:53:38

by Leon Romanovsky

[permalink] [raw]
Subject: Re: [PATCH] bnx2: remove deadcode in bnx2_init_cpus()

On Sat, Feb 18, 2023 at 04:00:16PM +0300, Maxim Korotkov wrote:
> The load_cpu_fw function has no error return code
> and always returns zero. Checking the value returned by
> this function does not make sense.
> As a result, bnx2_init_cpus will also return only zero
>
> Found by Security Code and Linux Verification
> Center (linuxtesting.org) with SVACE
>
> Fixes: 57579f7629a3 ("bnx2: Use request_firmware()")
> Signed-off-by: Maxim Korotkov <[email protected]>
> ---
> drivers/net/ethernet/broadcom/bnx2.c | 22 ++++++----------------
> 1 file changed, 6 insertions(+), 16 deletions(-)
>
> diff --git a/drivers/net/ethernet/broadcom/bnx2.c b/drivers/net/ethernet/broadcom/bnx2.c
> index 9f473854b0f4..4dacb65a7348 100644
> --- a/drivers/net/ethernet/broadcom/bnx2.c
> +++ b/drivers/net/ethernet/broadcom/bnx2.c
> @@ -3908,37 +3908,27 @@ bnx2_init_cpus(struct bnx2 *bp)
> (const struct bnx2_mips_fw_file *) bp->mips_firmware->data;
> const struct bnx2_rv2p_fw_file *rv2p_fw =
> (const struct bnx2_rv2p_fw_file *) bp->rv2p_firmware->data;
> - int rc;
>
> /* Initialize the RV2P processor. */
> load_rv2p_fw(bp, RV2P_PROC1, &rv2p_fw->proc1);
> load_rv2p_fw(bp, RV2P_PROC2, &rv2p_fw->proc2);
>
> /* Initialize the RX Processor. */
> - rc = load_cpu_fw(bp, &cpu_reg_rxp, &mips_fw->rxp);
> - if (rc)
> - goto init_cpu_err;
> + (void)load_cpu_fw(bp, &cpu_reg_rxp, &mips_fw->rxp);

Please don't cast return types to void. It is useless.

Thanks