if (ret < 0) {
PMD_INIT_LOG(ERR, "failed to write PCI offset 0x%x",
(pos + PCI_MSIX_FLAGS));
+ return -ENXIO;
}
+
return 0;
}
+
return -ENXIO;
}
{
struct hns3_hw *hw = &hns->hw;
- if (nb_rx_q < hw->num_tc) {
- hns3_err(hw, "number of Rx queues(%u) is less than tcs(%u).",
- nb_rx_q, hw->num_tc);
- return -EINVAL;
- }
-
- if (nb_tx_q < hw->num_tc) {
- hns3_err(hw, "number of Tx queues(%u) is less than tcs(%u).",
- nb_tx_q, hw->num_tc);
- return -EINVAL;
- }
-
return hns3_queue_to_tc_mapping(hw, nb_rx_q, nb_tx_q);
}
goto err_init_hardware;
}
- ret = hns3vf_set_alive(hw, true);
- if (ret) {
- PMD_INIT_LOG(ERR, "Failed to VF send alive to PF: %d", ret);
- goto err_init_hardware;
- }
-
return 0;
err_init_hardware:
hns3_rss_set_default_args(hw);
+ ret = hns3vf_set_alive(hw, true);
+ if (ret) {
+ PMD_INIT_LOG(ERR, "Failed to VF send alive to PF: %d", ret);
+ goto err_set_tc_queue;
+ }
+
return 0;
err_set_tc_queue:
case ETH_SPEED_NUM_50G:
case ETH_SPEED_NUM_100G:
case ETH_SPEED_NUM_200G:
- new_link.link_speed = mac->link_speed;
+ if (mac->link_status)
+ new_link.link_speed = mac->link_speed;
break;
default:
if (mac->link_status)
new_link.link_speed = ETH_SPEED_NUM_UNKNOWN;
- else
- new_link.link_speed = ETH_SPEED_NUM_NONE;
break;
}
+ if (!mac->link_status)
+ new_link.link_speed = ETH_SPEED_NUM_NONE;
+
new_link.link_duplex = mac->link_duplex;
new_link.link_status = mac->link_status ? ETH_LINK_UP : ETH_LINK_DOWN;
new_link.link_autoneg =
hns3_info(hw, "hns3vf dev restart successful!");
} else if (hw->adapter_state == HNS3_NIC_STOPPING)
hw->adapter_state = HNS3_NIC_CONFIGURED;
+
+ ret = hns3vf_set_alive(hw, true);
+ if (ret) {
+ hns3_err(hw, "failed to VF send alive to PF: %d", ret);
+ goto err_vlan_table;
+ }
+
return 0;
err_vlan_table: