Merge tag 'please-pull-pstore' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl...
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 21 Feb 2013 17:38:18 +0000 (09:38 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 21 Feb 2013 17:38:18 +0000 (09:38 -0800)
Pull pstore patches from Tony Luck:
 "A few fixes to reduce places where pstore might hang a system in the
  crash path.  Plus a new mountpoint (/sys/fs/pstore ...  makes more
  sense then /dev/pstore)."

Fix up trivial conflict in drivers/firmware/efivars.c

* tag 'please-pull-pstore' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
  pstore: Create a convenient mount point for pstore
  efi_pstore: Introducing workqueue updating sysfs
  efivars: Disable external interrupt while holding efivars->lock
  efi_pstore: Avoid deadlock in non-blocking paths
  pstore: Avoid deadlock in panic and emergency-restart path

1  2 
drivers/firmware/efivars.c
include/linux/efi.h

index f5596db0cf583dc16226bc629a42977de0f9fa05,69225115304d8ec61acd6df4c6681257443e686c..fed08b6617111e35bdfa79368b4a68781f5d55ec
@@@ -790,10 -798,9 +798,10 @@@ static ssize_t efivarfs_file_write(stru
  
        } else if (status == EFI_NOT_FOUND) {
                list_del(&var->list);
-               spin_unlock(&efivars->lock);
+               spin_unlock_irq(&efivars->lock);
                efivar_unregister(var);
                drop_nlink(inode);
 +              d_delete(file->f_dentry);
                dput(file->f_dentry);
  
        } else {
@@@ -993,9 -1000,9 +1001,9 @@@ static int efivarfs_unlink(struct inod
  
        if (status == EFI_SUCCESS || status == EFI_NOT_FOUND) {
                list_del(&var->list);
-               spin_unlock(&efivars->lock);
+               spin_unlock_irq(&efivars->lock);
                efivar_unregister(var);
 -              drop_nlink(dir);
 +              drop_nlink(dentry->d_inode);
                dput(dentry);
                return 0;
        }
@@@ -1823,7 -1906,9 +1907,9 @@@ err_put
  static void __exit
  efivars_exit(void)
  {
 -      if (efi_enabled) {
+       cancel_work_sync(&efivar_work);
 +      if (efi_enabled(EFI_RUNTIME_SERVICES)) {
                unregister_efivars(&__efivars);
                kobject_put(efi_kobj);
        }
Simple merge