net/ice: acquire and disable DCF capability
Since the DCF (Device Config Function) controls the flow setting of other VFs by the mailbox with PF, for security, it needs to acquire the DCF capability from PF when starts, and disable it when exits. Signed-off-by: Haiyue Wang <haiyue.wang@intel.com> Acked-by: Qi Zhang <qi.z.zhang@intel.com>
This commit is contained in:
parent
7564d55096
commit
cf5cad3bc7
@ -227,7 +227,7 @@ ice_dcf_get_vf_resource(struct ice_dcf_hw *hw)
|
||||
int err, i;
|
||||
|
||||
caps = VIRTCHNL_VF_OFFLOAD_WB_ON_ITR | VIRTCHNL_VF_OFFLOAD_RX_POLLING |
|
||||
VIRTCHNL_VF_CAP_ADV_LINK_SPEED |
|
||||
VIRTCHNL_VF_CAP_ADV_LINK_SPEED | VIRTCHNL_VF_CAP_DCF |
|
||||
VF_BASE_MODE_OFFLOADS;
|
||||
|
||||
err = ice_dcf_send_cmd_req_no_irq(hw, VIRTCHNL_OP_GET_VF_RESOURCES,
|
||||
@ -264,6 +264,30 @@ ice_dcf_get_vf_resource(struct ice_dcf_hw *hw)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
ice_dcf_mode_disable(struct ice_dcf_hw *hw)
|
||||
{
|
||||
int err;
|
||||
|
||||
err = ice_dcf_send_cmd_req_no_irq(hw, VIRTCHNL_OP_DCF_DISABLE,
|
||||
NULL, 0);
|
||||
if (err) {
|
||||
PMD_DRV_LOG(ERR, "Failed to send msg OP_DCF_DISABLE");
|
||||
return err;
|
||||
}
|
||||
|
||||
err = ice_dcf_recv_cmd_rsp_no_irq(hw, VIRTCHNL_OP_DCF_DISABLE,
|
||||
hw->arq_buf, ICE_DCF_AQ_BUF_SZ, NULL);
|
||||
if (err) {
|
||||
PMD_DRV_LOG(ERR,
|
||||
"Failed to get response of OP_DCF_DISABLE %d",
|
||||
err);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
ice_dcf_check_reset_done(struct ice_dcf_hw *hw)
|
||||
{
|
||||
@ -467,6 +491,7 @@ ice_dcf_uninit_hw(struct rte_eth_dev *eth_dev, struct ice_dcf_hw *hw)
|
||||
rte_intr_callback_unregister(intr_handle,
|
||||
ice_dcf_dev_interrupt_handler, hw);
|
||||
|
||||
ice_dcf_mode_disable(hw);
|
||||
iavf_shutdown_adminq(&hw->avf);
|
||||
|
||||
rte_free(hw->arq_buf);
|
||||
|
Loading…
x
Reference in New Issue
Block a user