linux/drivers/firmware
Seiji Aguchi a93bc0c6e0 efi_pstore: Introducing workqueue updating sysfs
[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: Seiji Aguchi <seiji.aguchi@hds.com>
Acked-by: Matt Fleming <matt.fleming@intel.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
2013-02-12 13:04:41 -08:00
..
google firmware: google: fix gsmi.c build warning 2011-12-09 16:23:49 -08:00
dcdbas.c dcdbas: force SMI to happen when expected 2011-03-02 13:42:10 +01:00
dcdbas.h dcdbas: export functionality for use in other drivers 2009-01-08 08:31:12 -08:00
dell_rbu.c sysfs: add struct file* to bin_attr callbacks 2010-05-21 09:37:31 -07:00
dmi_scan.c drivers/firmware/dmi_scan.c: fetch dmi version from SMBIOS if it exists 2012-12-20 17:40:19 -08:00
dmi-id.c dmi-id: fix a memory leak in dmi_id_init error path 2010-08-05 13:53:34 -07:00
dmi-sysfs.c firmware: Fix unaligned memory accesses in dmi-sysfs 2011-02-25 16:10:03 -08:00
edd.c [SCSI] edd: Treat "XPRS" host bus type the same as "PCI" 2011-10-31 13:26:19 +04:00
efivars.c efi_pstore: Introducing workqueue updating sysfs 2013-02-12 13:04:41 -08:00
iscsi_ibft_find.c ibft: Fix finding IBFT ACPI table on UEFI 2011-12-13 09:08:31 -05:00
iscsi_ibft.c switch ->is_visible() to returning umode_t 2012-01-03 22:54:55 -05:00
Kconfig ASoC: Move SigmaDSP firmware loader to ASoC 2011-11-29 12:01:10 +00:00
Makefile ASoC: Move SigmaDSP firmware loader to ASoC 2011-11-29 12:01:10 +00:00
memmap.c firmware/memmap: avoid type conflicts with the generic memmap_init() 2012-10-19 14:07:47 -07:00
pcdp.c pcdp: use early_ioremap/early_iounmap to access pcdp table 2012-07-30 17:25:11 -07:00
pcdp.h Update broken web addresses in the kernel. 2010-10-18 11:03:14 +02:00