Fix DSW's rte_event_enqueue_burst(), so that a call with a zero-sized
event array immediately flushes the port's output buffers. Prior to
this patch, the flush operation would be deferred to the next enqueue
or dequeue call, which is inconsistent with DSW documentation.
Fixes: 1c8e3caa3bfb ("event/dsw: add event scheduling and device start/stop")
Cc: [email protected]
Signed-off-by: Mattias Rönnblom <[email protected]>
---
drivers/event/dsw/dsw_event.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/event/dsw/dsw_event.c b/drivers/event/dsw/dsw_event.c
index 61a66fabf..1641c2d06 100644
--- a/drivers/event/dsw/dsw_event.c
+++ b/drivers/event/dsw/dsw_event.c
@@ -1047,6 +1047,7 @@ dsw_event_enqueue_burst_generic(void *port, const struct
rte_event events[],
*/
if (unlikely(events_len == 0)) {
dsw_port_note_op(source_port, DSW_MAX_PORT_OPS_PER_BG_TASK);
+ dsw_port_flush_out_buffers(dsw, port);
return 0;
}
--
2.17.1