Packet buffer allocation and hardware pause configuration fail normally
when a reset occurs. If the execution fails, rollback of the packet
buffer still fails. So this rollback is meaningless.
Fixes:
62e3ccc2b94c ("net/hns3: support flow control")
Cc: stable@dpdk.org
Signed-off-by: Huisong Li <lihuisong@huawei.com>
Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
enum hns3_fc_status fc_status = hw->current_fc_status;
enum hns3_fc_mode requested_fc_mode = hw->requested_fc_mode;
uint8_t hw_pfc_map = hw->dcb_info.hw_pfc_map;
enum hns3_fc_status fc_status = hw->current_fc_status;
enum hns3_fc_mode requested_fc_mode = hw->requested_fc_mode;
uint8_t hw_pfc_map = hw->dcb_info.hw_pfc_map;
if (pf->tx_sch_mode != HNS3_FLAG_TC_BASE_SCH_MODE &&
pf->tx_sch_mode != HNS3_FLAG_VNET_BASE_SCH_MODE)
if (pf->tx_sch_mode != HNS3_FLAG_TC_BASE_SCH_MODE &&
pf->tx_sch_mode != HNS3_FLAG_VNET_BASE_SCH_MODE)
ret = hns3_buffer_alloc(hw);
if (ret)
ret = hns3_buffer_alloc(hw);
if (ret)
+ goto buffer_alloc_fail;
hw->current_fc_status = HNS3_FC_STATUS_PFC;
hw->requested_fc_mode = HNS3_FC_FULL;
hw->current_fc_status = HNS3_FC_STATUS_PFC;
hw->requested_fc_mode = HNS3_FC_FULL;
pfc_setup_fail:
hw->requested_fc_mode = requested_fc_mode;
hw->current_fc_status = fc_status;
pfc_setup_fail:
hw->requested_fc_mode = requested_fc_mode;
hw->current_fc_status = fc_status;
hw->dcb_info.hw_pfc_map = hw_pfc_map;
hw->dcb_info.hw_pfc_map = hw_pfc_map;
- status = hns3_buffer_alloc(hw);
- if (status)
- hns3_err(hw, "recover packet buffer fail! status = %d", status);
uint8_t pfc_en = hw->dcb_info.pfc_en;
uint8_t priority = pfc_conf->priority;
uint16_t pause_time = pf->pause_time;
uint8_t pfc_en = hw->dcb_info.pfc_en;
uint8_t priority = pfc_conf->priority;
uint16_t pause_time = pf->pause_time;
pf->pause_time = pfc_conf->fc.pause_time;
hns3_get_fc_mode(hw, pfc_conf->fc.mode);
pf->pause_time = pfc_conf->fc.pause_time;
hns3_get_fc_mode(hw, pfc_conf->fc.mode);
pf->pause_time = pause_time;
hw->dcb_info.pfc_en = pfc_en;
hw->dcb_info.hw_pfc_map = hw_pfc_map;
pf->pause_time = pause_time;
hw->dcb_info.pfc_en = pfc_en;
hw->dcb_info.hw_pfc_map = hw_pfc_map;
- status = hns3_buffer_alloc(hw);
- if (status)
- hns3_err(hw, "recover packet buffer fail: %d", status);