From: Wei Lin Guay Date: Wed, 11 Nov 2015 17:31:14 +0000 (-0800) Subject: RDS: Fix out-of-order RDS_CMSG_RDMA_SEND_STATUS X-Git-Tag: v4.1.12-92~240^2~3 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=5631f1a303104d41f6ded0d603011d6c172b8644;p=users%2Fjedix%2Flinux-maple.git RDS: Fix out-of-order RDS_CMSG_RDMA_SEND_STATUS Orabug: 22126982 If the RDS user application requests notification of RDMA send completions, there is a possibility that RDS_CMSG_RDMA_SEND_STATUS will be delivered out-of-order. This can happen if RDS drops sending ACK after it received an explicit ACK. In this case, the rds message ended up in reverse order in the list. Reviewed-by: HÃ¥kon Bugge Reviewed-by: Knut Omang Reviewed-by: Santosh Shilimkar Reviewed-by: Ajaykumar Hotchandani Signed-off-by: Wei Lin Guay --- diff --git a/net/rds/send.c b/net/rds/send.c index 3770ab718bb6..163bee4d64c9 100644 --- a/net/rds/send.c +++ b/net/rds/send.c @@ -846,7 +846,7 @@ void rds_send_drop_acked(struct rds_connection *conn, u64 ack, if (!rds_send_is_acked(rm, ack, is_acked)) break; - list_move(&rm->m_conn_item, &list); + list_move_tail(&rm->m_conn_item, &list); clear_bit(RDS_MSG_ON_CONN, &rm->m_flags); }