enic_link_update(dev);
_rte_eth_dev_callback_process(dev, RTE_ETH_EVENT_INTR_LSC, NULL);
enic_log_q_error(enic);
+ /* Re-enable irq in case of INTx */
+ rte_intr_ack(&enic->pdev->intr_handle);
}
static int enic_rxq_intr_init(struct enic *enic)
* When Geneve with options offload is available, always disable it
* first as it can interfere with user flow rules.
*/
- if (enic->geneve_opt_avail &&
- vnic_dev_overlay_offload_ctrl(enic->vdev,
+ if (enic->geneve_opt_avail) {
+ /*
+ * Disabling fails if the feature is provisioned but
+ * not enabled. So ignore result and do not log error.
+ */
+ vnic_dev_overlay_offload_ctrl(enic->vdev,
OVERLAY_FEATURE_GENEVE,
- OVERLAY_OFFLOAD_DISABLE)) {
- dev_err(enic, "failed to disable geneve+option\n");
+ OVERLAY_OFFLOAD_DISABLE);
}
enic->overlay_offload = false;
if (enic->disable_overlay && enic->vxlan) {