diff --git a/executer/kernel/mcctrl/control.c b/executer/kernel/mcctrl/control.c index bf452753..d32732e9 100644 --- a/executer/kernel/mcctrl/control.c +++ b/executer/kernel/mcctrl/control.c @@ -1099,6 +1099,7 @@ void mcctrl_put_per_proc_data(struct mcctrl_per_proc_data *ppd) struct mcctrl_per_thread_data *ptd; struct mcctrl_per_thread_data *next; + write_lock_irqsave(&ppd->per_thread_data_hash_lock[i], flags); list_for_each_entry_safe(ptd, next, ppd->per_thread_data_hash + i, hash) { packet = ptd->data; @@ -1114,6 +1115,7 @@ void mcctrl_put_per_proc_data(struct mcctrl_per_proc_data *ppd) ppd->ud->ikc2linux[smp_processor_id()] : ppd->ud->ikc2linux[0])); } + write_unlock_irqrestore(&ppd->per_thread_data_hash_lock[i], flags); } flags = ihk_ikc_spinlock_lock(&ppd->wq_list_lock);