[1/2] eventdev: check timer adapter status before start
Checks
Commit Message
From: Pavan Nikhilesh <pbhagavatula@marvell.com>
Check if timer adapter is already started before starting it.
Update the unit test accordingly.
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
---
app/test/test_event_timer_adapter.c | 4 ++--
lib/librte_eventdev/rte_event_timer_adapter.c | 6 ++++++
lib/librte_eventdev/rte_event_timer_adapter.h | 1 +
3 files changed, 9 insertions(+), 2 deletions(-)
Comments
> -----Original Message-----
> From: Pavan Nikhilesh Bhagavatula [mailto:pbhagavatula@marvell.com]
> Sent: Saturday, March 16, 2019 3:28 PM
> To: Jerin Jacob Kollanukkaran <jerinj@marvell.com>; Carrillo, Erik G
> <erik.g.carrillo@intel.com>
> Cc: dev@dpdk.org; Pavan Nikhilesh Bhagavatula
> <pbhagavatula@marvell.com>
> Subject: [dpdk-dev] [PATCH 1/2] eventdev: check timer adapter status
> before start
>
> From: Pavan Nikhilesh <pbhagavatula@marvell.com>
>
> Check if timer adapter is already started before starting it.
> Update the unit test accordingly.
>
> Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Acked-by: Erik Gabriel Carrillo <erik.g.carrillo@intel.com>
@@ -1015,8 +1015,8 @@ adapter_start(void)
TEST_ASSERT_SUCCESS(_timdev_setup(180 * NSECPERSEC,
NSECPERSEC / 10),
"Failed to start adapter");
- TEST_ASSERT_SUCCESS(rte_event_timer_adapter_start(timdev),
- "Failed to repeatedly start adapter");
+ TEST_ASSERT_EQUAL(rte_event_timer_adapter_start(timdev), -EALREADY,
+ "Timer adapter started without call to stop.");
return TEST_SUCCESS;
}
@@ -261,6 +261,12 @@ rte_event_timer_adapter_start(const struct rte_event_timer_adapter *adapter)
ADAPTER_VALID_OR_ERR_RET(adapter, -EINVAL);
FUNC_PTR_OR_ERR_RET(adapter->ops->start, -EINVAL);
+ if (adapter->data->started) {
+ EVTIM_LOG_ERR("event timer adapter %"PRIu8" already started",
+ adapter->data->id);
+ return -EALREADY;
+ }
+
ret = adapter->ops->start(adapter);
if (ret < 0)
return ret;
@@ -339,6 +339,7 @@ rte_event_timer_adapter_get_info(
* - -EINVAL if adapter identifier invalid
* - -ENOENT if software adapter but no service core mapped
* - -ENOTSUP if software adapter and more than one service core mapped
+ * - -EALREADY if adapter has already been started
*/
int __rte_experimental
rte_event_timer_adapter_start(