eventdev driver may return error on dequeue timeout tick conversion. Change the pmd callback interface to address the same.
Signed-off-by: Jerin Jacob <jerin.ja...@caviumnetworks.com> --- drivers/event/skeleton/skeleton_eventdev.c | 4 +++- lib/librte_eventdev/rte_eventdev.c | 3 +-- lib/librte_eventdev/rte_eventdev_pmd.h | 5 ++++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/event/skeleton/skeleton_eventdev.c b/drivers/event/skeleton/skeleton_eventdev.c index dee0faf..05ec58b 100644 --- a/drivers/event/skeleton/skeleton_eventdev.c +++ b/drivers/event/skeleton/skeleton_eventdev.c @@ -319,7 +319,7 @@ skeleton_eventdev_port_unlink(struct rte_eventdev *dev, void *port, } -static void +static int skeleton_eventdev_timeout_ticks(struct rte_eventdev *dev, uint64_t ns, uint64_t *timeout_ticks) { @@ -330,6 +330,8 @@ skeleton_eventdev_timeout_ticks(struct rte_eventdev *dev, uint64_t ns, RTE_SET_USED(skel); *timeout_ticks = ns * scale; + + return 0; } static void diff --git a/lib/librte_eventdev/rte_eventdev.c b/lib/librte_eventdev/rte_eventdev.c index 68bfc3b..178bdcf 100644 --- a/lib/librte_eventdev/rte_eventdev.c +++ b/lib/librte_eventdev/rte_eventdev.c @@ -902,8 +902,7 @@ rte_event_dequeue_timeout_ticks(uint8_t dev_id, uint64_t ns, if (timeout_ticks == NULL) return -EINVAL; - (*dev->dev_ops->timeout_ticks)(dev, ns, timeout_ticks); - return 0; + return (*dev->dev_ops->timeout_ticks)(dev, ns, timeout_ticks); } int diff --git a/lib/librte_eventdev/rte_eventdev_pmd.h b/lib/librte_eventdev/rte_eventdev_pmd.h index 828dfce..45ac8ea 100644 --- a/lib/librte_eventdev/rte_eventdev_pmd.h +++ b/lib/librte_eventdev/rte_eventdev_pmd.h @@ -406,8 +406,11 @@ typedef int (*eventdev_port_unlink_t)(struct rte_eventdev *dev, void *port, * @param[out] timeout_ticks * Value for the *timeout_ticks* parameter in rte_event_dequeue() function * + * @return + * Returns 0 on success. + * */ -typedef void (*eventdev_dequeue_timeout_ticks_t)(struct rte_eventdev *dev, +typedef int (*eventdev_dequeue_timeout_ticks_t)(struct rte_eventdev *dev, uint64_t ns, uint64_t *timeout_ticks); /** -- 2.5.5