From: "Mike Rapoport (Microsoft)" <[email protected]>

opal-core allocates buffers with alloc_pages_exact(), but then
marks them as reserved and frees using free_reserved_area().

This is completely unnecessary and the pages allocated with
alloc_pages_exact() can be naturally freed with free_pages_exact().

Replace freeing of memory in opalcore_cleanup() with
free_pages_exact() and simplify allocation code so that it won't mark
allocated pages as reserved.

Signed-off-by: Mike Rapoport (Microsoft) <[email protected]>
---
 arch/powerpc/platforms/powernv/opal-core.c | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/arch/powerpc/platforms/powernv/opal-core.c 
b/arch/powerpc/platforms/powernv/opal-core.c
index e76e462f55f6..abd99ddbf21f 100644
--- a/arch/powerpc/platforms/powernv/opal-core.c
+++ b/arch/powerpc/platforms/powernv/opal-core.c
@@ -303,7 +303,6 @@ static int __init create_opalcore(void)
        struct device_node *dn;
        struct opalcore *new;
        loff_t opalcore_off;
-       struct page *page;
        Elf64_Phdr *phdr;
        Elf64_Ehdr *elf;
        int i, ret;
@@ -329,9 +328,6 @@ static int __init create_opalcore(void)
                return -ENOMEM;
        }
        count = oc_conf->opalcorebuf_sz / PAGE_SIZE;
-       page = virt_to_page(oc_conf->opalcorebuf);
-       for (i = 0; i < count; i++)
-               mark_page_reserved(page + i);
 
        pr_debug("opalcorebuf = 0x%llx\n", (u64)oc_conf->opalcorebuf);
 
@@ -437,10 +433,7 @@ static void opalcore_cleanup(void)
 
        /* free the buffer used for setting up OPAL core */
        if (oc_conf->opalcorebuf) {
-               void *end = (void *)((u64)oc_conf->opalcorebuf +
-                                    oc_conf->opalcorebuf_sz);
-
-               free_reserved_area(oc_conf->opalcorebuf, end, -1, NULL);
+               free_pages_exact(oc_conf->opalcorebuf, oc_conf->opalcorebuf_sz);
                oc_conf->opalcorebuf = NULL;
                oc_conf->opalcorebuf_sz = 0;
        }
-- 
2.51.0


Reply via email to