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
--- a/xen/common/grant_table.c
+++ b/xen/common/grant_table.c
@@ -1140,19 +1140,14 @@ __gnttab_unmap_common(
smp_rmb();
map = _entry(lgt, op->handle);
-grant_read_lock(lgt);
-
if ( unlikely(!read_atomic(>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. */
___
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel