| 8126 | } |
| 8127 | |
| 8128 | static void ixgbevf_mbx_process(struct rte_eth_dev *dev) |
| 8129 | { |
| 8130 | struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private); |
| 8131 | u32 in_msg = 0; |
| 8132 | |
| 8133 | /* peek the message first */ |
| 8134 | in_msg = IXGBE_READ_REG(hw, IXGBE_VFMBMEM); |
| 8135 | |
| 8136 | /* PF reset VF event */ |
| 8137 | if (in_msg == IXGBE_PF_CONTROL_MSG) { |
| 8138 | /* dummy mbx read to ack pf */ |
| 8139 | if (ixgbe_read_mbx(hw, &in_msg, 1, 0)) |
| 8140 | return; |
| 8141 | rte_eth_dev_callback_process(dev, RTE_ETH_EVENT_INTR_RESET, |
| 8142 | NULL); |
| 8143 | } |
| 8144 | } |
| 8145 | |
| 8146 | static int |
| 8147 | ixgbevf_dev_interrupt_get_status(struct rte_eth_dev *dev) |
no test coverage detected