Skip to content

Commit

Permalink
net/hns3: fix max packet size rollback in PF
Browse files Browse the repository at this point in the history
[ upstream commit e8f1f78 ]

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: 25fb790 ("net/hns3: fix HW buffer size on MTU update")
Fixes: 1f5ca0b ("net/hns3: support some device operations")
Fixes: d51867d ("net/hns3: add initialization")

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
  • Loading branch information
LiHuiSong1 authored and bluca committed Feb 17, 2022
1 parent 4636734 commit edfefb9
Showing 1 changed file with 4 additions and 7 deletions.
11 changes: 4 additions & 7 deletions drivers/net/hns3/hns3_ethdev.c
Original file line number Diff line number Diff line change
Expand Up @@ -2457,7 +2457,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;

Expand All @@ -2467,22 +2466,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;
}
Expand Down

0 comments on commit edfefb9

Please sign in to comment.