To move the list iterator variable into the list_for_each_entry_*() macro in the future it should be avoided to use the list iterator variable after the loop body. To *never* use the list iterator variable after the loop it was concluded to use a separate iterator variable instead of a found boolean [1]. This removes the need to use a found variable and simply checking if the variable was set, can determine if the break/goto was hit. Link: https://lore.kernel.org/all/CAHk-=wgRr_D8CB-D9Kg-c=EHreAsk5SqXPwr9Y7k9sA6cWXJ6w@xxxxxxxxxxxxxx/ Signed-off-by: Jakob Koschel <jakobkoschel@xxxxxxxxx> --- drivers/firmware/efi/vars.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/drivers/firmware/efi/vars.c b/drivers/firmware/efi/vars.c index 3994aad38661..e4e1cc593441 100644 --- a/drivers/firmware/efi/vars.c +++ b/drivers/firmware/efi/vars.c @@ -809,22 +809,21 @@ EXPORT_SYMBOL_GPL(efivar_entry_set_safe); struct efivar_entry *efivar_entry_find(efi_char16_t *name, efi_guid_t guid, struct list_head *head, bool remove) { - struct efivar_entry *entry, *n; + struct efivar_entry *entry = NULL, *iter, *n; int strsize1, strsize2; - bool found = false; - list_for_each_entry_safe(entry, n, head, list) { + list_for_each_entry_safe(iter, n, head, list) { strsize1 = ucs2_strsize(name, 1024); - strsize2 = ucs2_strsize(entry->var.VariableName, 1024); + strsize2 = ucs2_strsize(iter->var.VariableName, 1024); if (strsize1 == strsize2 && - !memcmp(name, &(entry->var.VariableName), strsize1) && - !efi_guidcmp(guid, entry->var.VendorGuid)) { - found = true; + !memcmp(name, &(iter->var.VariableName), strsize1) && + !efi_guidcmp(guid, iter->var.VendorGuid)) { + entry = iter; break; } } - if (!found) + if (!entry) return NULL; if (remove) { -- 2.25.1