Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Step:15
xen.21119
xsa321-4.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File xsa321-4.patch of Package xen.21119
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 @@ -161,8 +161,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; @@ -170,8 +170,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 */
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor