diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-01-31 17:10:36 +1100 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-01-31 17:10:36 +1100 | 
| commit | 04c2eee5b9dfcb13f3cd07a5537fb8c785f2751a (patch) | |
| tree | a70cf1df64b3715c502211233dc307abacaed7da /drivers/firmware/efivars.c | |
| parent | bdb0ae6a767ef2622eb282e06fc225e855341653 (diff) | |
| parent | becbd6608026c15afd88fd3d0c893dfb7b8c7845 (diff) | |
Merge branch 'x86-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 EFI fixes from Peter Anvin:
 "This is a collection of fixes for the EFI support.  The controversial
  bit here is a set of patches which bumps the boot protocol version as
  part of fixing some serious problems with the EFI handover protocol,
  used when booting under EFI using a bootloader as opposed to directly
  from EFI.  These changes should also make it a lot saner to support
  cross-mode 32/64-bit EFI booting in the future.  Getting these changes
  into 3.8 means we avoid presenting an inconsistent ABI to bootloaders.
  Other changes are display detection and fixing efivarfs."
* 'x86-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  x86, efi: remove attribute check from setup_efi_pci
  x86, build: Dynamically find entry points in compressed startup code
  x86, efi: Fix PCI ROM handing in EFI boot stub, in 32-bit mode
  x86, efi: Fix 32-bit EFI handover protocol entry point
  x86, efi: Fix display detection in EFI boot stub
  x86, boot: Define the 2.12 bzImage boot protocol
  x86/boot: Fix minor fd leakage in tools/relocs.c
  x86, efi: Set runtime_version to the EFI spec revision
  x86, efi: fix 32-bit warnings in setup_efi_pci()
  efivarfs: Delete dentry from dcache in efivarfs_file_write()
  efivarfs: Never return ENOENT from firmware
  efi, x86: Pass a proper identity mapping in efi_call_phys_prelog
  efivarfs: Drop link count of the right inode
Diffstat (limited to 'drivers/firmware/efivars.c')
| -rw-r--r-- | drivers/firmware/efivars.c | 5 | 
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/firmware/efivars.c b/drivers/firmware/efivars.c index 1065119dff92..f5596db0cf58 100644 --- a/drivers/firmware/efivars.c +++ b/drivers/firmware/efivars.c @@ -674,7 +674,7 @@ static int efi_status_to_err(efi_status_t status)  		err = -EACCES;  		break;  	case EFI_NOT_FOUND: -		err = -ENOENT; +		err = -EIO;  		break;  	default:  		err = -EINVAL; @@ -793,6 +793,7 @@ static ssize_t efivarfs_file_write(struct file *file,  		spin_unlock(&efivars->lock);  		efivar_unregister(var);  		drop_nlink(inode); +		d_delete(file->f_dentry);  		dput(file->f_dentry);  	} else { @@ -994,7 +995,7 @@ static int efivarfs_unlink(struct inode *dir, struct dentry *dentry)  		list_del(&var->list);  		spin_unlock(&efivars->lock);  		efivar_unregister(var); -		drop_nlink(dir); +		drop_nlink(dentry->d_inode);  		dput(dentry);  		return 0;  	}  | 
