diff --git a/net/rds/message.c b/net/rds/message.c
index 9122b53921117cc0e055f7bb0d7cfd6195c19356..4cb1ed704153a27c7d0f6af1296074c264a297c6 100644
--- a/net/rds/message.c
+++ b/net/rds/message.c
@@ -399,14 +399,14 @@ int rds_message_inc_copy_to_user(struct rds_incoming *inc,
  */
 void rds_message_wait(struct rds_message *rm)
 {
-	wait_event(rds_message_flush_waitq,
+	wait_event_interruptible(rds_message_flush_waitq,
 			!test_bit(RDS_MSG_MAPPED, &rm->m_flags));
 }
 
 void rds_message_unmapped(struct rds_message *rm)
 {
 	clear_bit(RDS_MSG_MAPPED, &rm->m_flags);
-	wake_up(&rds_message_flush_waitq);
+	wake_up_interruptible(&rds_message_flush_waitq);
 }
 EXPORT_SYMBOL_GPL(rds_message_unmapped);