diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c index 206f1ed67a..6d2cc43339 100644 --- a/xen/common/grant_table.c +++ b/xen/common/grant_table.c @@ -3637,6 +3637,8 @@ static int _cache_flush(gnttab_cache_flush_t *cflush, grant_ref_t *cur_ref) owner = page_get_owner_and_reference(page); if ( !owner || !owner->grant_table ) { + if ( owner ) + put_page(page); rcu_unlock_domain(d); return -EPERM; }