diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c index abd351de69..5932722ce0 100644 --- a/xen/common/grant_table.c +++ b/xen/common/grant_table.c @@ -3569,6 +3569,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; }