diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
index b9abe3ef218826951ba8a92bac25a24df20dfd87..a697c64a65067af88c8936b901d53d013c6b3a1f 100644
--- a/drivers/xen/balloon.c
+++ b/drivers/xen/balloon.c
@@ -602,8 +602,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;