gpoulios commented on PR #16309:
URL: https://github.com/apache/nuttx/pull/16309#issuecomment-2862158650

   > @gpoulios why mark the patch to draft?
   
   3 reasons:
    - I don't see this getting @raiden00pl 's approval so I thought I'd try 
re-writing some parts of the code but it turns out I can't. On the contrary, 
I'm thinking of putting back `reg_pair_to_64` and co. as they are [actually 
licensed under 
BSD](https://github.com/tiiuae/imx-optee-os/blob/8dd180b6d149c1e1314b5869697179f665bd9ca3/lib/libutils/ext/include/util.h#L169).
    - I need to guard all list accesses around a mutex. Btw, @xiaoxiang781216 
would you rather see this as a new commit or an amendment to the existing one?
    - I noticed the IDs in `tee_ioctl_shm_alloc_data`, 
`tee_ioctl_shm_register_fd_data`, and `tee_ioctl_shm_register_data` are _all_ 
output parameters (whereas I was using `rdata.id` as input):
   
   
https://github.com/apache/nuttx/blob/468c9eacd8fd30817cd683a07a10ead8d2652a0a/include/nuttx/tee.h#L113
   
   
https://github.com/apache/nuttx/blob/468c9eacd8fd30817cd683a07a10ead8d2652a0a/include/nuttx/tee.h#L145
   
   
https://github.com/apache/nuttx/blob/468c9eacd8fd30817cd683a07a10ead8d2652a0a/include/nuttx/tee.h#L393
   
   @xiaoxiang781216 Do we really need those? I'm having a hard time generating 
unique IDs for shared memory registrations. Thinking of the following options:
    1. casting the actual buffer address to int32
       - not guaranteed to be unique, either because of 64-bit addresses or due 
to overall between user and kernel VA space
    2. traversing the list to find a free integer ID starting from 0
       - needs at least one list traversal on best case, more if `MAX_INT32` 
has been reached
    3. using list head's ID + 1
       - we need to stick to adding new entries at the head of the list but is 
efficient
    4. using a `shm_nextid` field in `struct optee_priv_data`
       - need to guard with mutex (which I'm also doing for list accesses right 
now, so not such a big deal)
    
   Leaning towards 3, but would appreciate your thoughts on this.
    
   On the contrary, points for removing the IDs entirely:
    - we can also remove this (correct me if I'm wrong) 
https://github.com/apache/nuttx/blob/1a8fba827a73bb842a60f86b610470c2f38ad4f4/drivers/misc/optee.c#L586
    - it's not like we can prevent duplicate list entries anyways (especially 
given we have both user and kernel registrations).


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to