> On Sep 7, 2017, at 9:14 AM, David Lockyer <david.lock...@chronos.co.uk> wrote:
> 
> Hi Simon,
> 
> Okay, thank you for the suggestion. Just to be clear are you suggesting 
> modifying lwip_select() to allocate select_cb from a pool & free prior to 
> return?
> 
> I will have to investigate the speed impact of this, as I have 
> MEM_LIBC_MALLOC and MAEP_MEM_MALLOC both defined as 1.
> 
> David
> 
> 
> 

Normally the MPU allocations that use dynamic memory are abstracted behind 
macros that use static memory in the !LWIP_MPU_COMPATIBLE case.  Take a look at 
API_VAR_ALLOC for both LWIP_MPU_COMPATBILE and !LWIP_MPU_COMPATBILE cases

Typically each allocation type has its own memory pool.  Not sure if Simon is 
suggesting that as well.  I know there’s been a hesitancy to add new memory 
pools

Joel
> 
> On 07/09/17 13:12, goldsimon wrote:
>> 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> <mailto: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 
>> <http://www.symanteccloud.com/>
>> ______________________________________________________________________
>> 
>> -- 
>> Diese Nachricht wurde von meinem Android-Gerät mit K-9 Mail gesendet.
>> ______________________________________________________________________
>> This email has been scanned by the Symantec Email Security.cloud service.
>> For more information please visit http://www.symanteccloud.com 
>> <http://www.symanteccloud.com/>
>> ______________________________________________________________________
>> 
>> 
>> _______________________________________________
>> lwip-users mailing list
>> lwip-users@nongnu.org <mailto:lwip-users@nongnu.org>
>> https://lists.nongnu.org/mailman/listinfo/lwip-users 
>> <https://lists.nongnu.org/mailman/listinfo/lwip-users>
> 
> ______________________________________________________________________
> This email has been scanned by the Symantec Email Security.cloud service.
> For more information please visit http://www.symanteccloud.com
> ______________________________________________________________________
> _______________________________________________
> lwip-users mailing list
> lwip-users@nongnu.org
> https://lists.nongnu.org/mailman/listinfo/lwip-users

_______________________________________________
lwip-users mailing list
lwip-users@nongnu.org
https://lists.nongnu.org/mailman/listinfo/lwip-users

Reply via email to