Commit d82650be authored by Jian Shen's avatar Jian Shen Committed by David S. Miller

net: hns3: don't rollback when destroy mqprio fail

For destroy mqprio is irreversible in stack, so it's unnecessary
to rollback the tc configuration when destroy mqprio failed.
Otherwise, it may cause the configuration being inconsistent
between driver and netstack.

As the failure is usually caused by reset, and the driver will
restore the configuration after reset, so it can keep the
configuration being consistent between driver and hardware.

Fixes: 5a5c9091 ("net: hns3: add support for tc mqprio offload")
Signed-off-by: default avatarJian Shen <shenjian15@huawei.com>
Signed-off-by: default avatarGuangbin Huang <huangguangbin2@huawei.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent a8e76fef
...@@ -514,12 +514,17 @@ static int hclge_setup_tc(struct hnae3_handle *h, ...@@ -514,12 +514,17 @@ static int hclge_setup_tc(struct hnae3_handle *h,
return hclge_notify_init_up(hdev); return hclge_notify_init_up(hdev);
err_out: err_out:
/* roll-back */ if (!tc) {
memcpy(&kinfo->tc_info, &old_tc_info, sizeof(old_tc_info)); dev_warn(&hdev->pdev->dev,
if (hclge_config_tc(hdev, &kinfo->tc_info)) "failed to destroy mqprio, will active after reset, ret = %d\n",
dev_err(&hdev->pdev->dev, ret);
"failed to roll back tc configuration\n"); } else {
/* roll-back */
memcpy(&kinfo->tc_info, &old_tc_info, sizeof(old_tc_info));
if (hclge_config_tc(hdev, &kinfo->tc_info))
dev_err(&hdev->pdev->dev,
"failed to roll back tc configuration\n");
}
hclge_notify_init_up(hdev); hclge_notify_init_up(hdev);
return ret; return ret;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment