On 12/19/19 5:11 AM, Mimi Zohar wrote:
Getting rid of the temporary list is definitely a big improvement. As
James suggested, using test_and_set_bit() and test_bit() would improve
this code even more. I think, James correct me if I'm wrong, you
would be able to get rid of both the mutex and "process".
Mimi
I am not sure if the mutex can be removed.
In ima_queue_key() we need to test the flag and add the key to the list
as an atomic operation:
if (!test_bit())
insert_key_to_list
Suppose the if condition is true, but before we could insert the key to
the list, ima_process_queued_keys() runs and processes queued keys we'll
add the key to the list and never process it.
Is there an API in the kernel to test and add an entry to a list
atomically?
thanks,
-lakshmi