On Sun, Jan 18, 2026 at 07:34:35PM -0800, [email protected] wrote: > From: Michael Kelley <[email protected]> > > When running with a paravisor or in the root partition, the SynIC event and > message pages are provided by the paravisor or hypervisor respectively, > instead of being allocated by Linux. The provided pages are normal memory, > but are outside of the physical address space seen by Linux. As such they > 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 pages. > 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 event and message pages. 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 <[email protected]> > Closes: > https://lore.kernel.org/oe-kbuild-all/[email protected]/ > Closes: > https://lore.kernel.org/oe-kbuild-all/[email protected]/ > Signed-off-by: Michael Kelley <[email protected]>
Applied to hyperv-next. Thanks.
