Looks correct. I guess mpu mode is not used too often. My suggestion would 
probably be to get select_cb from a Memo pool...

Simon


Am 6. September 2017 16:12:47 MESZ schrieb David Lockyer 
<david.lock...@chronos.co.uk>:
>Hi,
>
>I have a project that uses an STM32F MCU running FreeRTOS (cortex mpu 
>port) & lwip, with the MPU enabled.
>
>I'm upgrading to lwip 2.0.2 from lwip 1.4.1, that I had to customize to
>
>be compatible with the MPU, in particular in lwip_select().
>
>The motivation was to use the LWIP_MPU_COMPATIBLE define, so a direct 
>modification of the stack source was not required.  However for me it 
>still appears to try to access another threads memory, triggering an 
>exception.
>
>The changes I had to make were:
>
>Index: lib/lwip-2.0.2/src/api/sockets.c
>===================================================================
>--- lib/lwip-2.0.2/src/api/sockets.c    (revision xxxxx)
>+++ lib/lwip-2.0.2/src/api/sockets.c    (working copy)
>@@ -1428,7 +1428,9 @@
>      /* Put this select_cb on top of list */
>      select_cb.next = select_cb_list;
>      if (select_cb_list != NULL) {
>+      RAISE_PRIVILEGE();
>        select_cb_list->prev = &select_cb;
>+      RESET_PRIVILEGE();
>      }
>      select_cb_list = &select_cb;
>     /* Increasing this counter tells event_callback that the list has 
>changed. */
>@@ -1508,7 +1510,9 @@
>      /* Take us off the list */
>      SYS_ARCH_PROTECT(lev);
>      if (select_cb.next != NULL) {
>+      RAISE_PRIVILEGE();
>        select_cb.next->prev = select_cb.prev;
>+      RESET_PRIVILEGE();
>      }
>      if (select_cb_list == &select_cb) {
>        LWIP_ASSERT("select_cb.prev == NULL", select_cb.prev == NULL);
>@@ -1515,7 +1519,9 @@
>        select_cb_list = select_cb.next;
>      } else {
>        LWIP_ASSERT("select_cb.prev != NULL", select_cb.prev != NULL);
>+      RAISE_PRIVILEGE();
>        select_cb.prev->next = select_cb.next;
>+      RESET_PRIVILEGE();
>      }
>     /* Increasing this counter tells event_callback that the list has 
>changed. */
>      select_cb_ctr++;
>
>Is there something else I missed here that would remove the need for 
>this modification?
>
>
>Kind regards,
>
>David Lockyer
>
>
>
>______________________________________________________________________
>This email has been scanned by the Symantec Email Security.cloud
>service.
>For more information please visit http://www.symanteccloud.com
>______________________________________________________________________

-- 
Diese Nachricht wurde von meinem Android-Gerät mit K-9 Mail gesendet.
_______________________________________________
lwip-users mailing list
lwip-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/lwip-users

Reply via email to