ramoops: use persistent_ram_free() instead of kfree() for freeing prz
authorHiraku Toyooka <hiraku.toyooka.gu@hitachi.com>
Mon, 25 Jul 2016 03:56:55 +0000 (12:56 +0900)
committerKees Cook <keescook@chromium.org>
Fri, 5 Aug 2016 18:21:46 +0000 (11:21 -0700)
persistent_ram_zone(=prz) structures are allocated by persistent_ram_new(),
which includes vmap() or ioremap(). But they are currently freed by
kfree(). This uses persistent_ram_free() for correct this asymmetry usage.

Signed-off-by: Hiraku Toyooka <hiraku.toyooka.gu@hitachi.com>
Signed-off-by: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.kw@hitachi.com>
Cc: Mark Salyzyn <salyzyn@android.com>
Cc: Seiji Aguchi <seiji.aguchi.tr@hitachi.com>
Signed-off-by: Kees Cook <keescook@chromium.org>
fs/pstore/ram.c

index 427eee7570bbc63ec43d061820627ebaae798ead..7a034d62cf8c87f5812414bc8607613d28adf6ae 100644 (file)
@@ -643,11 +643,11 @@ fail_buf:
        kfree(cxt->pstore.buf);
 fail_clear:
        cxt->pstore.bufsize = 0;
-       kfree(cxt->mprz);
+       persistent_ram_free(cxt->mprz);
 fail_init_mprz:
-       kfree(cxt->fprz);
+       persistent_ram_free(cxt->fprz);
 fail_init_fprz:
-       kfree(cxt->cprz);
+       persistent_ram_free(cxt->cprz);
 fail_init_cprz:
        ramoops_free_przs(cxt);
 fail_out: