summaryrefslogtreecommitdiff
path: root/drivers/firmware/efi
diff options
context:
space:
mode:
authorGeliang Tang <geliangtang@163.com>2015-11-07 07:43:48 +0300
committerKees Cook <keescook@chromium.org>2016-06-02 21:25:31 +0300
commitcae7316708c45e4cfdc586c2e0a02eaea398e246 (patch)
treeac468d6fef2a23230823f88f276eb769006efb35 /drivers/firmware/efi
parent52d210d961a62a9662e27f14d6505d6741b2fb02 (diff)
downloadlinux-cae7316708c45e4cfdc586c2e0a02eaea398e246.tar.xz
efi-pstore: implement efivars_pstore_exit()
The original efivars_pstore_exit() is empty. I 1) add a bufsize check statement. 2) call pstore_unregister as it is defined now. 3) free the memory and set bufsize to 0. Signed-off-by: Geliang Tang <geliangtang@163.com> Acked-by: Matt Fleming <matt@codeblueprint.co.uk> Signed-off-by: Kees Cook <keescook@chromium.org>
Diffstat (limited to 'drivers/firmware/efi')
-rw-r--r--drivers/firmware/efi/efi-pstore.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/firmware/efi/efi-pstore.c b/drivers/firmware/efi/efi-pstore.c
index d5903ea77238..30a24d09ea6c 100644
--- a/drivers/firmware/efi/efi-pstore.c
+++ b/drivers/firmware/efi/efi-pstore.c
@@ -399,6 +399,13 @@ static __init int efivars_pstore_init(void)
static __exit void efivars_pstore_exit(void)
{
+ if (!efi_pstore_info.bufsize)
+ return;
+
+ pstore_unregister(&efi_pstore_info);
+ kfree(efi_pstore_info.buf);
+ efi_pstore_info.buf = NULL;
+ efi_pstore_info.bufsize = 0;
}
module_init(efivars_pstore_init);