On 20 November 2014 07:46, [email protected]
<[email protected]> wrote:
> ->Nit: This should really go as two patches with the commit messages below.
> ->1. api: doxygen: fix retval for odp_shm_free
> ->2. platform: odp_shared_memory.c: implement func odp_shm_free
>
> I think make it together is better , because the change of the reval for
> odp_shm_free
>  is need to according to the implement of the func odp_shm_free.
>  Make one patch can make sure this change will take effect together.

ok

>
> ________________________________
> [email protected]
>
>
> From: Anders Roxell
> Date: 2014-11-20 04:33
> To: Yan Songming
> CC: lng-odp
> Subject: Re: [lng-odp] [PATCH v3] add implement for odp_shm_free
> Change subject to something like this:
> platform: odp_shared_memory.c: implement odp_shm_free
>
> Nit: This should really go as two patches with the commit messages below.
> 1. api: doxygen: fix retval for odp_shm_free
> 2. platform: odp_shared_memory.c: implement func odp_shm_free
>
> On 2014-11-19 23:36, Yan Songming wrote:
>> New API implementing odp_shm_free to match the odp_shm_reserve.
>>
>> Signed-off-by: Yan Songming <[email protected]>
>> ---
>> v3 change the return value of odp_shm_free.
>> v2 fix the problem which Maxim found.
>> ---
>>  .../linux-generic/include/api/odp_shared_memory.h  |  2 +-
>>  platform/linux-generic/odp_shared_memory.c         | 43
>> +++++++++++++++++++---
>>  2 files changed, 38 insertions(+), 7 deletions(-)
>>
>> diff --git a/platform/linux-generic/include/api/odp_shared_memory.h
>> b/platform/linux-generic/include/api/odp_shared_memory.h
>> index ff6f9a9..d42e272 100644
>> --- a/platform/linux-generic/include/api/odp_shared_memory.h
>> +++ b/platform/linux-generic/include/api/odp_shared_memory.h
>> @@ -81,7 +81,7 @@ odp_shm_t odp_shm_reserve(const char *name, uint64_t
>> size, uint64_t align,
>>   * @param[in] shm Block handle
>>   *
>>   * @retval 0 for success
>> - * @retval 1 on failure
>> + * @retval -1 on failure
>>   */
>>  int odp_shm_free(odp_shm_t shm);
>>
>> diff --git a/platform/linux-generic/odp_shared_memory.c
>> b/platform/linux-generic/odp_shared_memory.c
>> index 24a5d60..bc0ab55 100644
>> --- a/platform/linux-generic/odp_shared_memory.c
>> +++ b/platform/linux-generic/odp_shared_memory.c
>> @@ -114,6 +114,43 @@ static int find_block(const char *name, uint32_t
>> *index)
>>  return 0;
>>  }
>>
>> +int odp_shm_free(odp_shm_t shm)
>> +{
>> + uint32_t i;
>> + int ret;
>> + odp_shm_block_t *shm_block;
>> + uint64_t alloc_size;
>> +
>> + i = from_handle(shm);
>> + if (odp_shm_tbl->block[i].addr == NULL) {
>> + /* free block */
>> + ODP_DBG("odp_shm_free: Free block\n");
>> + return 0;
>> + }
>> +
>> + odp_spinlock_lock(&odp_shm_tbl->lock);
>> + shm_block = &odp_shm_tbl->block[i];
>> +
>> + alloc_size = shm_block->size + shm_block->align;
>> + ret = munmap(shm_block->addr, alloc_size);
>> + if (0 != ret) {
>> + ODP_DBG("odp_shm_free: munmap failed\n");
>> + odp_spinlock_unlock(&odp_shm_tbl->lock);
>> + return -1;
>> + }
>> +
>> + if (shm_block->flags & ODP_SHM_PROC) {
>
> Don't we need to ODP_SHM_SW_ONLY as well?
>
> Cheers,
> Anders

_______________________________________________
lng-odp mailing list
[email protected]
http://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to