diff --git a/[refs] b/[refs] index e6a00d8c20ae..0167baf70f8d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 671202f3491cccdb267f88ad59ba0635aeb2a22e +refs/heads/master: 501dcccdb7a2335cde07d4acb56e636182d62944 diff --git a/trunk/net/rds/connection.c b/trunk/net/rds/connection.c index 5bd96d538fb9..5bb0eec5ada3 100644 --- a/trunk/net/rds/connection.c +++ b/trunk/net/rds/connection.c @@ -375,6 +375,7 @@ static void rds_conn_message_info(struct socket *sock, unsigned int len, struct rds_connection *conn; struct rds_message *rm; unsigned int total = 0; + unsigned long flags; size_t i; len /= sizeof(struct rds_info_message); @@ -389,7 +390,7 @@ static void rds_conn_message_info(struct socket *sock, unsigned int len, else list = &conn->c_retrans; - spin_lock(&conn->c_lock); + spin_lock_irqsave(&conn->c_lock, flags); /* XXX too lazy to maintain counts.. */ list_for_each_entry(rm, list, m_conn_item) { @@ -400,7 +401,7 @@ static void rds_conn_message_info(struct socket *sock, unsigned int len, conn->c_faddr, 0); } - spin_unlock(&conn->c_lock); + spin_unlock_irqrestore(&conn->c_lock, flags); } } rcu_read_unlock();