efi_pstore: Check remaining space with QueryVariableInfo() before writing data
authorSeiji Aguchi <seiji.aguchi@hds.com>
Wed, 14 Nov 2012 20:25:37 +0000 (20:25 +0000)
committerTony Luck <tony.luck@intel.com>
Tue, 27 Nov 2012 00:01:46 +0000 (16:01 -0800)
commitd80a361d779a9f19498943d1ca84243209cd5647
tree7d142c3dd3b12f5d77aa9c105482bd2a1a9e354d
parent9489e9dcae718d5fde988e4a684a0f55b5f94d17
efi_pstore: Check remaining space with QueryVariableInfo() before writing data

[Issue]

As discussed in a thread below, Running out of space in EFI isn't a well-tested scenario.
And we wouldn't expect all firmware to handle it gracefully.
http://marc.info/?l=linux-kernel&m=134305325801789&w=2

On the other hand, current efi_pstore doesn't check a remaining space of storage at writing time.
Therefore, efi_pstore may not work if it tries to write a large amount of data.

[Patch Description]

To avoid handling the situation above, this patch checks if there is a space enough to log with
QueryVariableInfo() before writing data.

Signed-off-by: Seiji Aguchi <seiji.aguchi@hds.com>
Acked-by: Mike Waychison <mikew@google.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
drivers/firmware/efivars.c
include/linux/efi.h