lkml.org 
[lkml]   [2020]   [Jul]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 05/58] net: cxgb4: fix return error value in t4_prep_fw
    Date
    From: Li Heng <liheng40@huawei.com>

    [ Upstream commit 8a259e6b73ad8181b0b2ef338b35043433db1075 ]

    t4_prep_fw goto bye tag with positive return value when something
    bad happened and which can not free resource in adap_init0.
    so fix it to return negative value.

    Fixes: 16e47624e76b ("cxgb4: Add new scheme to update T4/T5 firmware")
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Li Heng <liheng40@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/ethernet/chelsio/cxgb4/t4_hw.c | 8 ++++----
    1 file changed, 4 insertions(+), 4 deletions(-)

    diff --git a/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c b/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
    index fd6492fd3dc07..9d07fa318ac3d 100644
    --- a/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
    +++ b/drivers/net/ethernet/chelsio/cxgb4/t4_hw.c
    @@ -3093,7 +3093,7 @@ int t4_prep_fw(struct adapter *adap, struct fw_info *fw_info,
    drv_fw = &fw_info->fw_hdr;

    /* Read the header of the firmware on the card */
    - ret = -t4_read_flash(adap, FLASH_FW_START,
    + ret = t4_read_flash(adap, FLASH_FW_START,
    sizeof(*card_fw) / sizeof(uint32_t),
    (uint32_t *)card_fw, 1);
    if (ret == 0) {
    @@ -3122,8 +3122,8 @@ int t4_prep_fw(struct adapter *adap, struct fw_info *fw_info,
    should_install_fs_fw(adap, card_fw_usable,
    be32_to_cpu(fs_fw->fw_ver),
    be32_to_cpu(card_fw->fw_ver))) {
    - ret = -t4_fw_upgrade(adap, adap->mbox, fw_data,
    - fw_size, 0);
    + ret = t4_fw_upgrade(adap, adap->mbox, fw_data,
    + fw_size, 0);
    if (ret != 0) {
    dev_err(adap->pdev_dev,
    "failed to install firmware: %d\n", ret);
    @@ -3154,7 +3154,7 @@ int t4_prep_fw(struct adapter *adap, struct fw_info *fw_info,
    FW_HDR_FW_VER_MICRO_G(c), FW_HDR_FW_VER_BUILD_G(c),
    FW_HDR_FW_VER_MAJOR_G(k), FW_HDR_FW_VER_MINOR_G(k),
    FW_HDR_FW_VER_MICRO_G(k), FW_HDR_FW_VER_BUILD_G(k));
    - ret = EINVAL;
    + ret = -EINVAL;
    goto bye;
    }

    --
    2.25.1


    \
     
     \ /
      Last update: 2020-07-20 17:38    [W:3.590 / U:0.100 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site