Skip to content

Commit

Permalink
hinic: bump up the timeout of SET_FUNC_STATE cmd
Browse files Browse the repository at this point in the history
We free memory regardless of the return value of SET_FUNC_STATE
cmd in hinic_close function to avoid memory leak and this cmd may
timeout when fw is busy with handling other cmds, so we bump up the
timeout of this cmd to ensure it won't return failure.

Fixes: 00e57a6 ("net-next/hinic: Add Tx operation")
Signed-off-by: Luo bin <[email protected]>
Signed-off-by: Jakub Kicinski <[email protected]>
  • Loading branch information
Luo bin authored and kuba-moo committed Sep 5, 2020
1 parent cc8e58f commit 4e4269e
Showing 1 changed file with 11 additions and 5 deletions.
16 changes: 11 additions & 5 deletions drivers/net/ethernet/huawei/hinic/hinic_hw_mgmt.c
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,8 @@

#define MGMT_MSG_TIMEOUT 5000

#define SET_FUNC_PORT_MBOX_TIMEOUT 30000

#define SET_FUNC_PORT_MGMT_TIMEOUT 25000

#define mgmt_to_pfhwdev(pf_mgmt) \
Expand Down Expand Up @@ -361,16 +363,20 @@ int hinic_msg_to_mgmt(struct hinic_pf_to_mgmt *pf_to_mgmt,
return -EINVAL;
}

if (cmd == HINIC_PORT_CMD_SET_FUNC_STATE)
timeout = SET_FUNC_PORT_MGMT_TIMEOUT;
if (HINIC_IS_VF(hwif)) {
if (cmd == HINIC_PORT_CMD_SET_FUNC_STATE)
timeout = SET_FUNC_PORT_MBOX_TIMEOUT;

if (HINIC_IS_VF(hwif))
return hinic_mbox_to_pf(pf_to_mgmt->hwdev, mod, cmd, buf_in,
in_size, buf_out, out_size, 0);
else
in_size, buf_out, out_size, timeout);
} else {
if (cmd == HINIC_PORT_CMD_SET_FUNC_STATE)
timeout = SET_FUNC_PORT_MGMT_TIMEOUT;

return msg_to_mgmt_sync(pf_to_mgmt, mod, cmd, buf_in, in_size,
buf_out, out_size, MGMT_DIRECT_SEND,
MSG_NOT_RESP, timeout);
}
}

static void recv_mgmt_msg_work_handler(struct work_struct *work)
Expand Down

0 comments on commit 4e4269e

Please sign in to comment.