<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Mar 15, 2018 at 2:38 PM, Sebastian Huber <span dir="ltr"><<a href="mailto:sebastian.huber@embedded-brains.de" target="_blank">sebastian.huber@embedded-brains.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="gmail-">On 15/03/18 09:20, Udit agarwal wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Also, will it be ok to keep atsam_trng_mutex even after user has finished using getentropy() i.e when we don't use destroy(&atsam_trng_mutex) at all?<br>
</blockquote>
<br></span>
Why do you want to destroy the mutex?</blockquote><div>Just trying to reduce redundancy, but then i don't think that's a good idea. BTW, here's atsam patch, please have a look:<br><br>From 35313002ea19715c5914c5983a24471b0763aa68 Mon Sep 17 00:00:00 2001<br>From: Udit agarwal <<a href="mailto:dev.madaari@gmail.com">dev.madaari@gmail.com</a>><br>Date: Thu, 15 Mar 2018 16:21:51 +0530<br>Subject: [PATCH] Added mutex across TRNG_GetRandData<br><br>---<br> c/src/lib/libbsp/arm/atsam/startup/getentropy-trng.c | 7 +++++++<br> 1 file changed, 7 insertions(+)<br><br>diff --git a/c/src/lib/libbsp/arm/atsam/startup/getentropy-trng.c b/c/src/lib/libbsp/arm/atsam/startup/getentropy-trng.c<br>index 11e24dc..2789970 100644<br>--- a/c/src/lib/libbsp/arm/atsam/startup/getentropy-trng.c<br>+++ b/c/src/lib/libbsp/arm/atsam/startup/getentropy-trng.c<br>@@ -16,6 +16,9 @@<br> #include <unistd.h><br> #include <string.h><br> #include <rtems/sysinit.h><br>+#include <rtems/thread.h><br>+<br>+static rtems_mutex atsam_trng_mutex = RTEMS_MUTEX_INITIALIZER("atsam_trng");<br> <br> static void atsam_trng_enable(void)<br> {<br>@@ -25,6 +28,9 @@ static void atsam_trng_enable(void)<br> <br> int getentropy(void *ptr, size_t n)<br> {<br>+<br>+    rtems_mutex_lock(&atsam_trng_mutex);<br>+<br>     while (n > 0) {<br>         uint32_t random;<br>         size_t copy;<br>@@ -51,6 +57,7 @@ int getentropy(void *ptr, size_t n)<br>         ptr += copy;<br>     }<br> <br>+    rtems_mutex_unlock(&atsam_trng_mutex);<br>     return 0;<br> }<br> <br>-- <br>1.9.1<br><br> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="gmail-HOEnZb"><div class="gmail-h5"><br>
<br>
-- <br>
Sebastian Huber, embedded brains GmbH<br>
<br>
Addr<a href="https://maps.google.com/?q=ess+:+Dornierstr.+4,+D-82178+Puchheim,+G&entry=gmail&source=g">ess : Dornierstr. 4, D-82178 Puchheim, G</a>ermany<br>
Phone   : <a href="tel:%2B49%2089%20189%2047%2041-16" value="+4989189474116" target="_blank">+49 89 189 47 41-16</a><br>
Fax     : <a href="tel:%2B49%2089%20189%2047%2041-09" value="+4989189474109" target="_blank">+49 89 189 47 41-09</a><br>
E-Mail  : <a href="mailto:sebastian.huber@embedded-brains.de" target="_blank">sebastian.huber@embedded-brain<wbr>s.de</a><br>
PGP     : Public key available on request.<br>
<br>
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.<br>
<br>
</div></div></blockquote></div><br></div></div>