Re: [PATCH 1/1] x86/hyperv: Use memremap()/memunmap() instead of ioremap_cache()/iounmap()

From: Wei Liu

Date: Wed Feb 04 2026 - 01:30:09 EST


On Mon, Jan 19, 2026 at 07:59:37AM -0800, mhkelley58@xxxxxxxxx wrote:
> From: Michael Kelley <mhklinux@xxxxxxxxxxx>
>
> When running with a paravisor and SEV-SNP, the GHCB page is provided
> by the paravisor instead of being allocated by Linux. The provided page
> is normal memory, but is outside of the physical address space seen by
> Linux. As such it cannot be accessed via the kernel's direct map, and
> must be explicitly mapped to a kernel virtual address.
>
> Current code uses ioremap_cache() and iounmap() to map and unmap the page.
> These functions are for use on I/O address space that may not behave as
> normal memory, so they generate or expect addresses with the __iomem
> attribute. For normal memory, the preferred functions are memremap() and
> memunmap(), which operate similarly but without __iomem.
>
> At the time of the original work on CoCo VMs on Hyper-V, memremap() did not
> support creating a decrypted mapping, so ioremap_cache() was used instead,
> since I/O address space is always mapped decrypted. memremap() has since
> been enhanced to allow decrypted mappings, so replace ioremap_cache() with
> memremap() when mapping the GHCB page. Similarly, replace iounmap() with
> memunmap(). As a side benefit, the replacement cleans up 'sparse' warnings
> about __iomem mismatches.
>
> The replacement is done to use the correct functions as long-term goodness
> and to clean up the sparse warnings. No runtime bugs are fixed.
>
> Reported-by: kernel test robot <lkp@xxxxxxxxx>
> Closes: https://lore.kernel.org/oe-kbuild-all/202311111925.iPGGJik4-lkp@xxxxxxxxx/
> Signed-off-by: Michael Kelley <mhklinux@xxxxxxxxxxx>

Applied to hyperv-next. Thanks.