• Seiji Aguchi's avatar
    efi_pstore: Introducing workqueue updating sysfs · a93bc0c6
    Seiji Aguchi authored
    [Problem]
    efi_pstore creates sysfs entries, which enable users to access to NVRAM,
    in a write callback. If a kernel panic happens in an interrupt context,
    it may fail because it could sleep due to dynamic memory allocations during
    creating sysfs entries.
    
    [Patch Description]
    This patch removes sysfs operations from a write callback by introducing
    a workqueue updating sysfs entries which is scheduled after the write
    callback is called.
    
    Also, the workqueue is kicked in a just oops case.
    A system will go down in other cases such as panic, clean shutdown and emergency
    restart. And we don't need to create sysfs entries because there is no chance for
    users to access to them.
    
    efi_pstore will be robust against a kernel panic in an interrupt context with this patch.
    Signed-off-by: default avatarSeiji Aguchi <seiji.aguchi@hds.com>
    Acked-by: default avatarMatt Fleming <matt.fleming@intel.com>
    Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
    a93bc0c6
efivars.c 47.4 KB