diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
index 643dbe5620e8e26f23a7e9b3c0887d046d77e8ab..2459e2afd65ec1b58f1784e24ab7c532cbec9b94 100644
--- a/drivers/xen/balloon.c
+++ b/drivers/xen/balloon.c
@@ -539,8 +539,8 @@ static int balloon_thread(void *unused)
 			timeout = 3600 * HZ;
 		credit = current_credit();
 
-		wait_event_interruptible_timeout(balloon_thread_wq,
-				 balloon_thread_cond(state, credit), timeout);
+		wait_event_freezable_timeout(balloon_thread_wq,
+			balloon_thread_cond(state, credit), timeout);
 
 		if (kthread_should_stop())
 			return 0;