-
由 James Morse 提交于
Replace ghes_io{re,un}map_pfn_{nmi,irq}()s use of ioremap_page_range() with __set_fixmap() as ioremap_page_range() may sleep to allocate a new level of page-table, even if its passed an existing final-address to use in the mapping. The GHES driver can only be enabled for architectures that select HAVE_ACPI_APEI: Add fixmap entries to both x86 and arm64. clear_fixmap() does the TLB invalidation in __set_fixmap() for arm64 and __set_pte_vaddr() for x86. In each case its the same as the respective arch_apei_flush_tlb_one(). Reported-by: NFengguang Wu <fengguang.wu@intel.com> Suggested-by: NLinus Torvalds <torvalds@linux-foundation.org> Signed-off-by: NJames Morse <james.morse@arm.com> Reviewed-by: NBorislav Petkov <bp@suse.de> Tested-by: NTyler Baicar <tbaicar@codeaurora.org> Tested-by: NToshi Kani <toshi.kani@hpe.com> [ For the arm64 bits: ] Acked-by: NWill Deacon <will.deacon@arm.com> [ For the x86 bits: ] Acked-by: NIngo Molnar <mingo@kernel.org> Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com> Cc: All applicable <stable@vger.kernel.org>
4f89fa28