trng: kinetis: Use statically allocated stack
Change TRNG poller task to use a statically allocated stack; allocating
this way uses the same mechanism as other Mynewt standard tasks, and
avoids the requirement of a heap.
Signed-off-by: Fabio Utzig <utzig@apache.org>
diff --git a/hw/drivers/trng/trng_kinetis/src/trng_kinetis.c b/hw/drivers/trng/trng_kinetis/src/trng_kinetis.c
index 7f38cdf..815552a 100644
--- a/hw/drivers/trng/trng_kinetis/src/trng_kinetis.c
+++ b/hw/drivers/trng/trng_kinetis/src/trng_kinetis.c
@@ -46,13 +46,13 @@
static uint16_t rng_cache_out;
static uint16_t rng_cache_in;
static struct os_mutex rng_cache_mu;
-static os_stack_t *pstack;
static bool running;
static struct os_eventq rng_evtq;
#define TRNG_POLLER_PRIO (8)
#define TRNG_POLLER_STACK_SIZE OS_STACK_ALIGN(64)
-static struct os_task poller_task;
+static struct os_task trng_poller_task;
+OS_TASK_STACK_DEFINE(trng_poller_stack, TRNG_POLLER_STACK_SIZE);
static inline void
kinetis_trng_start(void)
@@ -220,11 +220,9 @@
os_eventq_init(&rng_evtq);
os_mutex_init(&rng_cache_mu);
- pstack = malloc(sizeof(os_stack_t) * TRNG_POLLER_STACK_SIZE);
- assert(pstack);
-
- rc = os_task_init(&poller_task, "trng_poller", trng_poller_handler, NULL,
- TRNG_POLLER_PRIO, OS_WAIT_FOREVER, pstack, TRNG_POLLER_STACK_SIZE);
+ rc = os_task_init(&trng_poller_task, "trng_poller", trng_poller_handler, NULL,
+ TRNG_POLLER_PRIO, OS_WAIT_FOREVER, trng_poller_stack,
+ TRNG_POLLER_STACK_SIZE);
if (rc) {
return rc;
}