summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorRick Edgecombe <rick.p.edgecombe@intel.com>2024-03-11 09:15:55 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2024-05-17 11:56:08 +0200
commit1999644d95194d4a58d3e80ad04ce19220a01a81 (patch)
treee79c53c4b88ac420eda5990a8da8e73c141603ac /include
parent1f3484dec916a3c4f43c4c44bad398bc24373110 (diff)
downloadlinux-1999644d95194d4a58d3e80ad04ce19220a01a81.tar.gz
linux-1999644d95194d4a58d3e80ad04ce19220a01a81.tar.bz2
linux-1999644d95194d4a58d3e80ad04ce19220a01a81.zip
Drivers: hv: vmbus: Track decrypted status in vmbus_gpadl
[ Upstream commit 211f514ebf1ef5de37b1cf6df9d28a56cfd242ca ] In CoCo VMs it is possible for the untrusted host to cause set_memory_encrypted() or set_memory_decrypted() to fail such that an error is returned and the resulting memory is shared. Callers need to take care to handle these errors to avoid returning decrypted (shared) memory to the page allocator, which could lead to functional or security issues. In order to make sure callers of vmbus_establish_gpadl() and vmbus_teardown_gpadl() don't return decrypted/shared pages to allocators, add a field in struct vmbus_gpadl to keep track of the decryption status of the buffers. This will allow the callers to know if they should free or leak the pages. Signed-off-by: Rick Edgecombe <rick.p.edgecombe@intel.com> Signed-off-by: Michael Kelley <mhklinux@outlook.com> Reviewed-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com> Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Link: https://lore.kernel.org/r/20240311161558.1310-3-mhklinux@outlook.com Signed-off-by: Wei Liu <wei.liu@kernel.org> Message-ID: <20240311161558.1310-3-mhklinux@outlook.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'include')
-rw-r--r--include/linux/hyperv.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/hyperv.h b/include/linux/hyperv.h
index 4fbd5d841711..811d59cf891b 100644
--- a/include/linux/hyperv.h
+++ b/include/linux/hyperv.h
@@ -832,6 +832,7 @@ struct vmbus_gpadl {
u32 gpadl_handle;
u32 size;
void *buffer;
+ bool decrypted;
};
struct vmbus_channel {