From 11a34b5ac88f49b8d353889f8a03b516b69fdb8c Mon Sep 17 00:00:00 2001 From: Timothy McDaniel Date: Sun, 1 Nov 2020 17:30:14 -0600 Subject: [PATCH] event/dlb: add queue and port release These entry points are NO-OPS. DLB does not support reconfiguring individual queues or ports. The entire device must be reconfigured. Signed-off-by: Timothy McDaniel Reviewed-by: Gage Eads --- drivers/event/dlb/dlb.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/drivers/event/dlb/dlb.c b/drivers/event/dlb/dlb.c index afef56cdcb..bda696a6c5 100644 --- a/drivers/event/dlb/dlb.c +++ b/drivers/event/dlb/dlb.c @@ -159,6 +159,9 @@ dlb_free_qe_mem(struct dlb_port *qm_port) rte_free(qm_port->consume_qe); qm_port->consume_qe = NULL; + + rte_memzone_free(dlb_port[qm_port->id][PORT_TYPE(qm_port)].mz); + dlb_port[qm_port->id][PORT_TYPE(qm_port)].mz = NULL; } static int @@ -3804,6 +3807,28 @@ dlb_eventdev_close(struct rte_eventdev *dev) return 0; } +static void +dlb_eventdev_port_release(void *port) +{ + struct dlb_eventdev_port *ev_port = port; + + if (ev_port) { + struct dlb_port *qm_port = &ev_port->qm_port; + + if (qm_port->config_state == DLB_CONFIGURED) + dlb_free_qe_mem(qm_port); + } +} + +static void +dlb_eventdev_queue_release(struct rte_eventdev *dev, uint8_t id) +{ + RTE_SET_USED(dev); + RTE_SET_USED(id); + + /* This function intentionally left blank. */ +} + void dlb_entry_points_init(struct rte_eventdev *dev) { @@ -3818,7 +3843,9 @@ dlb_entry_points_init(struct rte_eventdev *dev) .queue_def_conf = dlb_eventdev_queue_default_conf_get, .port_def_conf = dlb_eventdev_port_default_conf_get, .queue_setup = dlb_eventdev_queue_setup, + .queue_release = dlb_eventdev_queue_release, .port_setup = dlb_eventdev_port_setup, + .port_release = dlb_eventdev_port_release, .port_link = dlb_eventdev_port_link, .port_unlink = dlb_eventdev_port_unlink, .port_unlinks_in_progress = -- 2.20.1