|
From: Seiji A. <sei...@hd...> - 2012-03-07 22:53:13
|
Hi, This patch just modified Matthew's patch which has not included in upstream to fit current upstream code. https://lkml.org/lkml/2011/9/20/468 Right now all pstore accesses to efivars will delete or create new sysfs nodes. This is less than ideal if we've panicked or rebooting for following reasons. - efi_pstore may not work if kernel panics in interrupt context, since cpu can sleep while creating sysfs files. - we don't need to create sysfs if we've panicked or rebooting, because no one can access to it. Signed-off-by: Seiji Aguchi <sei...@hd...> Signed-off-by: Matthew Garrett <mj...@re...> --- drivers/firmware/efivars.c | 10 ++++++++++ 1 files changed, 10 insertions(+), 0 deletions(-) diff --git a/drivers/firmware/efivars.c b/drivers/firmware/efivars.c index d25599f..34c8890 100644 --- a/drivers/firmware/efivars.c +++ b/drivers/firmware/efivars.c @@ -550,6 +550,16 @@ static int efi_pstore_write(enum pstore_type_id type, spin_unlock(&efivars->lock); + /* + * If it's more severe than KMSG_DUMP_OOPS then we're already dead. + * Don't bother playing with sysfs. + */ + + if (reason != KMSG_DUMP_OOPS) { + *id = part; + return ret; + } + if (found) efivar_unregister(found); -- 1.7.1 |