if (ret < 0)
return NULL;
- rte_spinlock_lock(&enic->flows_lock);
flow = enic_flow_add_filter(enic, &enic_filter, &enic_action,
error);
if (flow)
LIST_INSERT_HEAD(&enic->flows, flow, next);
- rte_spinlock_unlock(&enic->flows_lock);
return flow;
}
FLOW_TRACE();
- rte_spinlock_lock(&enic->flows_lock);
enic_flow_del_filter(enic, flow, error);
LIST_REMOVE(flow, next);
- rte_spinlock_unlock(&enic->flows_lock);
rte_free(flow);
return 0;
}
FLOW_TRACE();
- rte_spinlock_lock(&enic->flows_lock);
while (!LIST_EMPTY(&enic->flows)) {
flow = LIST_FIRST(&enic->flows);
LIST_REMOVE(flow, next);
rte_free(flow);
}
- rte_spinlock_unlock(&enic->flows_lock);
return 0;
}
vnic_dev_set_reset_flag(enic->vdev, 0);
LIST_INIT(&enic->flows);
- rte_spinlock_init(&enic->flows_lock);
/* set up link status checking */
vnic_dev_notify_set(enic->vdev, -1); /* No Intr for notify */