mirror of https://gitee.com/openkylin/linux.git
net: hns3: add compatible handling for command HCLGE_OPC_PF_RST_DONE
Since old firmware does not support HCLGE_OPC_PF_RST_DONE, it will
return -EOPNOTSUPP to the driver when received this command. So
for this case, it should just print a warning and return success
to the caller.
Fixes: 72e2fb0799
("net: hns3: clear reset interrupt status in hclge_irq_handle()")
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c78806f31f
commit
648db0514a
|
@ -3587,12 +3587,28 @@ static int hclge_set_rst_done(struct hclge_dev *hdev)
|
|||
{
|
||||
struct hclge_pf_rst_done_cmd *req;
|
||||
struct hclge_desc desc;
|
||||
int ret;
|
||||
|
||||
req = (struct hclge_pf_rst_done_cmd *)desc.data;
|
||||
hclge_cmd_setup_basic_desc(&desc, HCLGE_OPC_PF_RST_DONE, false);
|
||||
req->pf_rst_done |= HCLGE_PF_RESET_DONE_BIT;
|
||||
|
||||
return hclge_cmd_send(&hdev->hw, &desc, 1);
|
||||
ret = hclge_cmd_send(&hdev->hw, &desc, 1);
|
||||
/* To be compatible with the old firmware, which does not support
|
||||
* command HCLGE_OPC_PF_RST_DONE, just print a warning and
|
||||
* return success
|
||||
*/
|
||||
if (ret == -EOPNOTSUPP) {
|
||||
dev_warn(&hdev->pdev->dev,
|
||||
"current firmware does not support command(0x%x)!\n",
|
||||
HCLGE_OPC_PF_RST_DONE);
|
||||
return 0;
|
||||
} else if (ret) {
|
||||
dev_err(&hdev->pdev->dev, "assert PF reset done fail %d!\n",
|
||||
ret);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int hclge_reset_prepare_up(struct hclge_dev *hdev)
|
||||
|
|
Loading…
Reference in New Issue