[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-3.0-testing] [XEN] Fix domid check in grant tables when re-using an already pinned grant
# HG changeset patch # User ssmith@xxxxxxxxxxxxxxxxxxxxxxxxxx # Node ID 662dcf03872df750e092e25e7e3beaae15e991b7 # Parent 1e225598ce827a8d810ad57e82547ad6ed9c0258 [XEN] Fix domid check in grant tables when re-using an already pinned grant table entry. Based on cset 11419 in xen-unstable, originally from Herbert Xu. Signed-off-by: Steven Smith <sos22@xxxxxxxxx> --- xen/common/grant_table.c | 11 ++++++++--- 1 files changed, 8 insertions(+), 3 deletions(-) diff -r 1e225598ce82 -r 662dcf03872d xen/common/grant_table.c --- a/xen/common/grant_table.c Thu Jun 29 10:51:49 2006 +0100 +++ b/xen/common/grant_table.c Thu Sep 07 10:08:25 2006 +0100 @@ -163,6 +163,14 @@ __gnttab_map_grant_ref( spin_lock(&rd->grant_table->lock); + /* If already pinned, check the active domid and avoid refcnt overflow. */ + if ( act->pin && + ((act->domid != ld->domain_id) || + (act->pin & 0x80808080U) != 0) ) + PIN_FAIL(unlock_out, GNTST_general_error, + "Bad domain (%d != %d), or risk of counter overflow %08x\n", + act->domid, ld->domain_id, act->pin); + if ( !act->pin || (!(op->flags & GNTMAP_readonly) && !(act->pin & (GNTPIN_hstw_mask|GNTPIN_devw_mask))) ) @@ -221,9 +229,6 @@ __gnttab_map_grant_ref( act->frame = gmfn_to_mfn(rd, sha->frame); } } - else if ( (act->pin & 0x80808080U) != 0 ) - PIN_FAIL(unlock_out, ENOSPC, - "Risk of counter overflow %08x\n", act->pin); if ( op->flags & GNTMAP_device_map ) act->pin += (op->flags & GNTMAP_readonly) ? _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |