After more investigation, I've found that slab_alloc and slab_free on l4rm_region_cache are not all into a critical section (for example: l4rm_attach may be called by several threads). At first, I though region_list_lock aimed at that, but in fact, this is not the case.
My first idea is to put slab_alloc between l4rm_lock_region_list and l4rm_unlock_region_list into l4rm_region_desc_alloc. Same for slab_free. But I'm not sure this is a good idea. What is your opinion ?
Regards Marc