mm/memremap.c: map FS_DAX device memory as decrypted
authorPankaj Gupta <pankaj.gupta@amd.com>
Wed, 2 Nov 2022 16:07:28 +0000 (11:07 -0500)
committerAndrew Morton <akpm@linux-foundation.org>
Tue, 8 Nov 2022 23:57:23 +0000 (15:57 -0800)
virtio_pmem use devm_memremap_pages() to map the device memory.  By
default this memory is mapped as encrypted with SEV.  Guest reboot changes
the current encryption key and guest no longer properly decrypts the FSDAX
device meta data.

Mark the corresponding device memory region for FSDAX devices (mapped with
memremap_pages) as decrypted to retain the persistent memory property.

Link: https://lkml.kernel.org/r/20221102160728.3184016-1-pankaj.gupta@amd.com
Fixes: b7b3c01b19159 ("mm/memremap_pages: support multiple ranges per invocation")
Signed-off-by: Pankaj Gupta <pankaj.gupta@amd.com>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/memremap.c

index 421bec3a29ee730c5f6fd6532f37abc28962b339..08cbf54fe037081af32eed15c1f98dfdeb2ded8e 100644 (file)
@@ -335,6 +335,7 @@ void *memremap_pages(struct dev_pagemap *pgmap, int nid)
                        WARN(1, "File system DAX not supported\n");
                        return ERR_PTR(-EINVAL);
                }
+               params.pgprot = pgprot_decrypted(params.pgprot);
                break;
        case MEMORY_DEVICE_GENERIC:
                break;