From: Yan Sonming <[email protected]>
Signed-off-by: Yan Sonming <[email protected]>
Signed-off-by: Mike Holmes <[email protected]>
---
platform/linux-generic/include/odp_internal.h | 1 +
platform/linux-generic/odp_init.c | 5 +++++
platform/linux-generic/odp_schedule.c | 6 ++++++
3 files changed, 12 insertions(+)
diff --git a/platform/linux-generic/include/odp_internal.h
b/platform/linux-generic/include/odp_internal.h
index a7bb4a2..7f45a3e 100644
--- a/platform/linux-generic/include/odp_internal.h
+++ b/platform/linux-generic/include/odp_internal.h
@@ -59,6 +59,7 @@ int odp_crypto_term_global(void);
int odp_schedule_init_global(void);
int odp_schedule_term_global(void);
int odp_schedule_init_local(void);
+int odp_schedule_term_local(void);
int odp_timer_init_global(void);
int odp_timer_disarm_all(void);
diff --git a/platform/linux-generic/odp_init.c
b/platform/linux-generic/odp_init.c
index 69569f1..732bd8f 100644
--- a/platform/linux-generic/odp_init.c
+++ b/platform/linux-generic/odp_init.c
@@ -146,5 +146,10 @@ int odp_init_local(void)
int odp_term_local(void)
{
+ if (odp_schedule_term_local()) {
+ ODP_ERR("ODP schedule local term failed.\n");
+ return -1;
+ }
+
return (odp_thread_term_local() > 0) ? 1 : 0;
}
diff --git a/platform/linux-generic/odp_schedule.c
b/platform/linux-generic/odp_schedule.c
index be5149b..33bd6e2 100644
--- a/platform/linux-generic/odp_schedule.c
+++ b/platform/linux-generic/odp_schedule.c
@@ -4,6 +4,7 @@
* SPDX-License-Identifier: BSD-3-Clause
*/
+#include <string.h>
#include <odp/schedule.h>
#include <odp_schedule_internal.h>
#include <odp/align.h>
@@ -188,6 +189,11 @@ int odp_schedule_init_local(void)
return 0;
}
+int odp_schedule_term_local(void)
+{
+ memset(&sched_local, 0, sizeof(sched_local_t));
+ return 0;
+}
void odp_schedule_mask_set(odp_queue_t queue, int prio)
{
--
2.1.0
_______________________________________________
lng-odp mailing list
[email protected]
http://lists.linaro.org/mailman/listinfo/lng-odp