diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
index 9c479fe4045912d9152315bc1fa4af9ed334304b..ac161db633885872fdebdce976d05b978e1235da 100644
--- a/arch/x86/xen/mmu.c
+++ b/arch/x86/xen/mmu.c
@@ -2888,6 +2888,7 @@ static int do_remap_gfn(struct vm_area_struct *vma,
 		addr += range;
 		if (err_ptr)
 			err_ptr += batch;
+		cond_resched();
 	}
 out: