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: 5a5c90917467 ("net: hns3: add support for tc mqprio offload") Signed-off-by: Jian Shen <shenjian15@huawei.com> Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
a8e76fefe3
commit
d82650be60
@ -514,12 +514,17 @@ static int hclge_setup_tc(struct hnae3_handle *h,
|
||||
return hclge_notify_init_up(hdev);
|
||||
|
||||
err_out:
|
||||
/* 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");
|
||||
|
||||
if (!tc) {
|
||||
dev_warn(&hdev->pdev->dev,
|
||||
"failed to destroy mqprio, will active after reset, ret = %d\n",
|
||||
ret);
|
||||
} 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);
|
||||
|
||||
return ret;
|
||||
|
Loading…
x
Reference in New Issue
Block a user