aboutsummaryrefslogtreecommitdiff
path: root/system/xen/xsa/xsa328-post-xsa321-4.13-4.patch
diff options
context:
space:
mode:
Diffstat (limited to 'system/xen/xsa/xsa328-post-xsa321-4.13-4.patch')
-rw-r--r--system/xen/xsa/xsa328-post-xsa321-4.13-4.patch36
1 files changed, 0 insertions, 36 deletions
diff --git a/system/xen/xsa/xsa328-post-xsa321-4.13-4.patch b/system/xen/xsa/xsa328-post-xsa321-4.13-4.patch
deleted file mode 100644
index 62bbcc7271cb1..0000000000000
--- a/system/xen/xsa/xsa328-post-xsa321-4.13-4.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From: <security@xenproject.org>
-Subject: vtd: don't assume addresses are aligned in sync_cache
-
-Current code in sync_cache assume that the address passed in is
-aligned to a cache line size. Fix the code to support passing in
-arbitrary addresses not necessarily aligned to a cache line size.
-
-This is part of XSA-321.
-
-Reviewed-by: Jan Beulich <jbeulich@suse.com>
-
---- a/xen/drivers/passthrough/vtd/iommu.c
-+++ b/xen/drivers/passthrough/vtd/iommu.c
-@@ -143,8 +143,8 @@ static int iommus_incoherent;
-
- static void sync_cache(const void *addr, unsigned int size)
- {
-- int i;
-- static unsigned int clflush_size = 0;
-+ static unsigned long clflush_size = 0;
-+ const void *end = addr + size;
-
- if ( !iommus_incoherent )
- return;
-@@ -152,8 +152,9 @@ static void sync_cache(const void *addr,
- if ( clflush_size == 0 )
- clflush_size = get_cache_line_size();
-
-- for ( i = 0; i < size; i += clflush_size )
-- cacheline_flush((char *)addr + i);
-+ addr -= (unsigned long)addr & (clflush_size - 1);
-+ for ( ; addr < end; addr += clflush_size )
-+ cacheline_flush((char *)addr);
- }
-
- /* Allocate page table, return its machine address */