Message ID | 594A5ABE02000078001650C2@prv-mh.provo.novell.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
>>> On 21.06.17 at 11:38, <JBeulich@suse.com> wrote: > Holding any lock while accessing the maptrack entry fields is > pointless, as these entries are protected by their associated active > entry lock (which is being acquired later, before re-validating the > fields read without holding the lock). > > Signed-off-by: Jan Beulich <jbeulich@suse.com> > > --- a/xen/common/grant_table.c > +++ b/xen/common/grant_table.c > @@ -1122,19 +1122,14 @@ __gnttab_unmap_common( > smp_rmb(); > map = &maptrack_entry(lgt, op->handle); > > - grant_read_lock(lgt); > - > if ( unlikely(!read_atomic(&map->flags)) ) > { > - grant_read_unlock(lgt); > gdprintk(XENLOG_INFO, "Zero flags for handle %#x\n", op->handle); > op->status = GNTST_bad_handle; > return; > } > > dom = map->domid; > - grant_read_unlock(lgt); > - > if ( unlikely((rd = rcu_lock_domain_by_id(dom)) == NULL) ) > { > /* This can happen when a grant is implicitly unmapped. */
--- a/xen/common/grant_table.c +++ b/xen/common/grant_table.c @@ -1122,19 +1122,14 @@ __gnttab_unmap_common( smp_rmb(); map = &maptrack_entry(lgt, op->handle); - grant_read_lock(lgt); - if ( unlikely(!read_atomic(&map->flags)) ) { - grant_read_unlock(lgt); gdprintk(XENLOG_INFO, "Zero flags for handle %#x\n", op->handle); op->status = GNTST_bad_handle; return; } dom = map->domid; - grant_read_unlock(lgt); - if ( unlikely((rd = rcu_lock_domain_by_id(dom)) == NULL) ) { /* This can happen when a grant is implicitly unmapped. */