Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP2:GA
xen.5854
5949165a-gnttab-correct-maptrack-table-accesses...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 5949165a-gnttab-correct-maptrack-table-accesses.patch of Package xen.5854
# Commit 4b78efa91c8ae3c42e14b8eaeaad773c5eb3b71a # Date 2017-06-20 14:34:34 +0200 # Author Jan Beulich <jbeulich@suse.com> # Committer Jan Beulich <jbeulich@suse.com> gnttab: correct maptrack table accesses In order to observe a consistent (limit,pointer-table) pair, the reader needs to either hold the maptrack lock (in line with documentation) or both sides need to order their accesses suitably (the writer side barrier was removed by commit dff515dfea ["gnttab: use per-VCPU maptrack free lists"], and a read side barrier has never been there). Make the writer publish a new table page before limit (for bounds checks to work), and new list head last (for racing maptrack_entry() invocations to work). At the same time add read barriers to lockless readers. Additionally get_maptrack_handle() must not assume ->maptrack_head to not change behind its back: Another handle may be put (updating only ->maptrack_tail) and then got or stolen (updating ->maptrack_head). This is part of XSA-218. Signed-off-by: Jan Beulich <jbeulich@suse.com> Reviewed-by: George Dunlap <george.dunlap@citrix.com> --- a/xen/common/grant_table.c +++ b/xen/common/grant_table.c @@ -851,7 +851,9 @@ __gnttab_unmap_common( return; } + smp_rmb(); map = &maptrack_entry(lgt, op->handle); + spin_lock(&lgt->lock); if ( unlikely(!map->flags) )
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