| 6936 | } |
| 6937 | |
| 6938 | static void |
| 6939 | i40e_dev_alarm_handler(void *param) |
| 6940 | { |
| 6941 | struct rte_eth_dev *dev = (struct rte_eth_dev *)param; |
| 6942 | struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private); |
| 6943 | uint32_t icr0; |
| 6944 | |
| 6945 | /* Disable interrupt */ |
| 6946 | i40e_pf_disable_irq0(hw); |
| 6947 | |
| 6948 | /* read out interrupt causes */ |
| 6949 | icr0 = I40E_READ_REG(hw, I40E_PFINT_ICR0); |
| 6950 | |
| 6951 | /* No interrupt event indicated */ |
| 6952 | if (!(icr0 & I40E_PFINT_ICR0_INTEVENT_MASK)) |
| 6953 | goto done; |
| 6954 | if (icr0 & I40E_PFINT_ICR0_ECC_ERR_MASK) |
| 6955 | PMD_DRV_LOG(ERR, "ICR0: unrecoverable ECC error"); |
| 6956 | if (icr0 & I40E_PFINT_ICR0_MAL_DETECT_MASK) { |
| 6957 | PMD_DRV_LOG(ERR, "ICR0: malicious programming detected"); |
| 6958 | i40e_handle_mdd_event(dev); |
| 6959 | } |
| 6960 | if (icr0 & I40E_PFINT_ICR0_GRST_MASK) |
| 6961 | PMD_DRV_LOG(INFO, "ICR0: global reset requested"); |
| 6962 | if (icr0 & I40E_PFINT_ICR0_PCI_EXCEPTION_MASK) |
| 6963 | PMD_DRV_LOG(INFO, "ICR0: PCI exception activated"); |
| 6964 | if (icr0 & I40E_PFINT_ICR0_STORM_DETECT_MASK) |
| 6965 | PMD_DRV_LOG(INFO, "ICR0: a change in the storm control state"); |
| 6966 | if (icr0 & I40E_PFINT_ICR0_HMC_ERR_MASK) |
| 6967 | PMD_DRV_LOG(ERR, "ICR0: HMC error"); |
| 6968 | if (icr0 & I40E_PFINT_ICR0_PE_CRITERR_MASK) |
| 6969 | PMD_DRV_LOG(ERR, "ICR0: protocol engine critical error"); |
| 6970 | |
| 6971 | if (icr0 & I40E_PFINT_ICR0_VFLR_MASK) { |
| 6972 | PMD_DRV_LOG(INFO, "ICR0: VF reset detected"); |
| 6973 | i40e_dev_handle_vfr_event(dev); |
| 6974 | } |
| 6975 | if (icr0 & I40E_PFINT_ICR0_ADMINQ_MASK) { |
| 6976 | PMD_DRV_LOG(INFO, "ICR0: adminq event"); |
| 6977 | i40e_dev_handle_aq_msg(dev); |
| 6978 | } |
| 6979 | |
| 6980 | done: |
| 6981 | /* Enable interrupt */ |
| 6982 | i40e_pf_enable_irq0(hw); |
| 6983 | rte_eal_alarm_set(I40E_ALARM_INTERVAL, |
| 6984 | i40e_dev_alarm_handler, dev); |
| 6985 | } |
| 6986 | |
| 6987 | int |
| 6988 | i40e_add_macvlan_filters(struct i40e_vsi *vsi, |
nothing calls this directly
no test coverage detected