ACPI / APEI: Remove ghes_ioremap_area
authorJames Morse <james.morse@arm.com>
Mon, 6 Nov 2017 18:44:25 +0000 (18:44 +0000)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 7 Nov 2017 11:13:21 +0000 (12:13 +0100)
Now that nothing is using the ghes_ioremap_area pages, rip them out.

Signed-off-by: James Morse <james.morse@arm.com>
Reviewed-by: Borislav Petkov <bp@suse.de>
Tested-by: Tyler Baicar <tbaicar@codeaurora.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Cc: All applicable <stable@vger.kernel.org>
drivers/acpi/apei/ghes.c

index 572b6c7303edce1aa6f097c310bad0aa3b218661..f14695e744d0313dfba260371a07944bf2f18da6 100644 (file)
@@ -114,19 +114,7 @@ static DEFINE_MUTEX(ghes_list_mutex);
  * from BIOS to Linux can be determined only in NMI, IRQ or timer
  * handler, but general ioremap can not be used in atomic context, so
  * the fixmap is used instead.
- */
-
-/*
- * Two virtual pages are used, one for IRQ/PROCESS context, the other for
- * NMI context (optionally).
- */
-#define GHES_IOREMAP_PAGES           2
-#define GHES_IOREMAP_IRQ_PAGE(base)    (base)
-#define GHES_IOREMAP_NMI_PAGE(base)    ((base) + PAGE_SIZE)
-
-/* virtual memory area for atomic ioremap */
-static struct vm_struct *ghes_ioremap_area;
-/*
+ *
  * These 2 spinlocks are used to prevent the fixmap entries from being used
  * simultaneously.
  */
@@ -141,23 +129,6 @@ static atomic_t ghes_estatus_cache_alloced;
 
 static int ghes_panic_timeout __read_mostly = 30;
 
-static int ghes_ioremap_init(void)
-{
-       ghes_ioremap_area = __get_vm_area(PAGE_SIZE * GHES_IOREMAP_PAGES,
-               VM_IOREMAP, VMALLOC_START, VMALLOC_END);
-       if (!ghes_ioremap_area) {
-               pr_err(GHES_PFX "Failed to allocate virtual memory area for atomic ioremap.\n");
-               return -ENOMEM;
-       }
-
-       return 0;
-}
-
-static void ghes_ioremap_exit(void)
-{
-       free_vm_area(ghes_ioremap_area);
-}
-
 static void __iomem *ghes_ioremap_pfn_nmi(u64 pfn)
 {
        phys_addr_t paddr;
@@ -1247,13 +1218,9 @@ static int __init ghes_init(void)
 
        ghes_nmi_init_cxt();
 
-       rc = ghes_ioremap_init();
-       if (rc)
-               goto err;
-
        rc = ghes_estatus_pool_init();
        if (rc)
-               goto err_ioremap_exit;
+               goto err;
 
        rc = ghes_estatus_pool_expand(GHES_ESTATUS_CACHE_AVG_SIZE *
                                      GHES_ESTATUS_CACHE_ALLOCED_MAX);
@@ -1277,8 +1244,6 @@ static int __init ghes_init(void)
        return 0;
 err_pool_exit:
        ghes_estatus_pool_exit();
-err_ioremap_exit:
-       ghes_ioremap_exit();
 err:
        return rc;
 }