diff options
| -rw-r--r-- | drivers/firmware/efi/vars.c | 8 | 
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/firmware/efi/vars.c b/drivers/firmware/efi/vars.c index 96d328b21c3..391c67b182d 100644 --- a/drivers/firmware/efi/vars.c +++ b/drivers/firmware/efi/vars.c @@ -622,10 +622,12 @@ int efivar_entry_set_safe(efi_char16_t *name, efi_guid_t vendor, u32 attributes,  	if (!ops->query_variable_store)  		return -ENOSYS; -	if (!block && spin_trylock_irqsave(&__efivars->lock, flags)) -		return -EBUSY; -	else +	if (!block) { +		if (!spin_trylock_irqsave(&__efivars->lock, flags)) +			return -EBUSY; +	} else {  		spin_lock_irqsave(&__efivars->lock, flags); +	}  	status = check_var_size(attributes, size + ucs2_strsize(name, 1024));  	if (status != EFI_SUCCESS) {  |