[1/6] net/hns3: fix fail to rollback the max packet size in PF
Checks
Commit Message
From: Huisong Li <lihuisong@huawei.com>
HNS3 PF driver use the hns->pf.mps to restore the MTU when a reset occurs.
If user fails to configure the MTU, the MPS of PF may not be restored to
the original value,
Fixes: 25fb790f7868 ("net/hns3: fix HW buffer size on MTU update")
Fixes: 1f5ca0b460cd ("net/hns3: support some device operations")
Fixes: d51867db65c1 ("net/hns3: add initialization")
Cc: stable@dpdk.org
Signed-off-by: Huisong Li <lihuisong@huawei.com>
Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
---
drivers/net/hns3/hns3_ethdev.c | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)
Comments
On 1/28/2022 2:07 AM, Min Hu (Connor) wrote:
> From: Huisong Li <lihuisong@huawei.com>
>
> HNS3 PF driver use the hns->pf.mps to restore the MTU when a reset occurs.
> If user fails to configure the MTU, the MPS of PF may not be restored to
> the original value,
>
> Fixes: 25fb790f7868 ("net/hns3: fix HW buffer size on MTU update")
> Fixes: 1f5ca0b460cd ("net/hns3: support some device operations")
> Fixes: d51867db65c1 ("net/hns3: add initialization")
> Cc: stable@dpdk.org
>
> Signed-off-by: Huisong Li <lihuisong@huawei.com>
> Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
Series applied to dpdk-next-net/main, thanks.
@@ -2075,7 +2075,6 @@ static int
hns3_config_mtu(struct hns3_hw *hw, uint16_t mps)
{
struct hns3_adapter *hns = HNS3_DEV_HW_TO_ADAPTER(hw);
- uint16_t original_mps = hns->pf.mps;
int err;
int ret;
@@ -2085,22 +2084,20 @@ hns3_config_mtu(struct hns3_hw *hw, uint16_t mps)
return ret;
}
- hns->pf.mps = mps;
ret = hns3_buffer_alloc(hw);
if (ret) {
hns3_err(hw, "failed to allocate buffer, ret = %d", ret);
goto rollback;
}
+ hns->pf.mps = mps;
+
return 0;
rollback:
- err = hns3_set_mac_mtu(hw, original_mps);
- if (err) {
+ err = hns3_set_mac_mtu(hw, hns->pf.mps);
+ if (err)
hns3_err(hw, "fail to rollback MTU, err = %d", err);
- return ret;
- }
- hns->pf.mps = original_mps;
return ret;
}