diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c index 1d1e23cbb0..1ce74c5bfe 100644 --- a/xen/common/grant_table.c +++ b/xen/common/grant_table.c @@ -3635,6 +3635,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; }