Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

firmware: Do not use WARN_ON(!spin_is_locked())

spin_is_locked() always returns false for uniprocessor configurations
in several architectures, so do not use WARN_ON with it.
Use lockdep_assert_held() instead to also reduce overhead in
non-debug kernels.

Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Cc: <stable@vger.kernel.org>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>

authored by

Guenter Roeck and committed by
Matt Fleming
aee530cf 7d1311b9

+4 -4
+4 -4
drivers/firmware/efi/vars.c
··· 481 481 */ 482 482 static void efivar_entry_list_del_unlock(struct efivar_entry *entry) 483 483 { 484 - WARN_ON(!spin_is_locked(&__efivars->lock)); 484 + lockdep_assert_held(&__efivars->lock); 485 485 486 486 list_del(&entry->list); 487 487 spin_unlock_irq(&__efivars->lock); ··· 507 507 const struct efivar_operations *ops = __efivars->ops; 508 508 efi_status_t status; 509 509 510 - WARN_ON(!spin_is_locked(&__efivars->lock)); 510 + lockdep_assert_held(&__efivars->lock); 511 511 512 512 status = ops->set_variable(entry->var.VariableName, 513 513 &entry->var.VendorGuid, ··· 667 667 int strsize1, strsize2; 668 668 bool found = false; 669 669 670 - WARN_ON(!spin_is_locked(&__efivars->lock)); 670 + lockdep_assert_held(&__efivars->lock); 671 671 672 672 list_for_each_entry_safe(entry, n, head, list) { 673 673 strsize1 = ucs2_strsize(name, 1024); ··· 739 739 const struct efivar_operations *ops = __efivars->ops; 740 740 efi_status_t status; 741 741 742 - WARN_ON(!spin_is_locked(&__efivars->lock)); 742 + lockdep_assert_held(&__efivars->lock); 743 743 744 744 status = ops->get_variable(entry->var.VariableName, 745 745 &entry->var.VendorGuid,