[lkml]   [2019]   [Dec]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH v4 2/2] IMA: Call workqueue functions to measure queued keys
On 12/17/2019 6:44 PM, Lakshmi Ramasubramanian wrote:

>> The direct implication of the comment and the lock dance with the
>> temporary list and the processed flag is that stuff can be added to the
>> ima_keys list after you drop the mutex.  Your explanation in the prior
>> couple of emails says that nothing can be added because the
>> ima_process_keys flag setting prevents it.  If the latter is true, you
>> can simply drop the lock after setting the flag and rely on ima_keys
>> not changing to run it through process_buffer_measurement without
>> needing any of the intermediate list or the processed flag.  If the
>> latter isn't true then any key added to ima_keys after the mutex is
>> dropped is never processed.
>> James

One more scenario needs to be taken care - that still doesn't require a
temp list, but will need a local flag.

Say, two threads race to call ima_process_queued_keys().
Both find ima_process_keys flag is false.
They now race to take to the lock.
Only the 1st one setting the flag to true should process queued keys.


 \ /
  Last update: 2019-12-18 04:00    [W:0.051 / U:8.272 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site