diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c index d69684cf55..742c9797c5 100644 --- a/xen/common/grant_table.c +++ b/xen/common/grant_table.c @@ -3632,6 +3632,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; }