diff --git a/kernel/mem_domain.c b/kernel/mem_domain.c index ebbcc16f1a2..95f1cca696e 100644 --- a/kernel/mem_domain.c +++ b/kernel/mem_domain.c @@ -262,8 +262,10 @@ void k_mem_domain_add_thread(struct k_mem_domain *domain, k_tid_t thread) k_spinlock_key_t key; key = k_spin_lock(&z_mem_domain_lock); - remove_thread_locked(thread); - add_thread_locked(domain, thread); + if (thread->mem_domain_info.mem_domain != domain) { + remove_thread_locked(thread); + add_thread_locked(domain, thread); + } k_spin_unlock(&z_mem_domain_lock, key); }