mirror of
https://github.com/Dasharo/linux.git
synced 2026-03-06 15:25:10 -08:00
ima: kexec: silence RCU list traversal warning
The ima_measurements list is append-only and doesn't require rcu_read_lock() protection. However, lockdep issues a warning when traversing RCU lists without the read lock: security/integrity/ima/ima_kexec.c:40 RCU-list traversed in non-reader section!! Fix this by using the variant of list_for_each_entry_rcu() with the last argument set to true. This tells the RCU subsystem that traversing this append-only list without the read lock is intentional and safe. This change silences the lockdep warning while maintaining the correct semantics for the append-only list traversal. Signed-off-by: Breno Leitao <leitao@debian.org> Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
This commit is contained in:
@@ -37,7 +37,8 @@ static int ima_dump_measurement_list(unsigned long *buffer_size, void **buffer,
|
||||
|
||||
memset(&khdr, 0, sizeof(khdr));
|
||||
khdr.version = 1;
|
||||
list_for_each_entry_rcu(qe, &ima_measurements, later) {
|
||||
/* This is an append-only list, no need to hold the RCU read lock */
|
||||
list_for_each_entry_rcu(qe, &ima_measurements, later, true) {
|
||||
if (file.count < file.size) {
|
||||
khdr.count++;
|
||||
ima_measurements_show(&file, qe);
|
||||
|
||||
Reference in New Issue
Block a user