Re: [PATCH v5 1/2] IMA: Define workqueue for early boot "key" measurements

From: Lakshmi Ramasubramanian
Date: Thu Dec 19 2019 - 11:55:44 EST


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