aboutsummaryrefslogtreecommitdiffstats
path: root/net/rds/cong.c
diff options
context:
space:
mode:
authorAndy Grover <andy.grover@oracle.com>2009-10-30 04:51:56 -0400
committerDavid S. Miller <davem@davemloft.net>2009-10-30 18:06:39 -0400
commit0514f8a9c0cbd26afa70dc56406cc0ee1e134dcf (patch)
tree24b34f38a3e9c1f5903a9556b9ac0086f2f7a93c /net/rds/cong.c
parent433d308dd85e506bb6529177cc0f997627d87ed6 (diff)
RDS: Do not send congestion updates to loopback connections
This issue was discovered by HP's Pradeep and fixed in OFED 1.3, but not fixed in later versions, since the fix's implementation was not immediately applyable to the later code. This patch should do the trick for 1.4+ codebases. Signed-off-by: Andy Grover <andy.grover@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/rds/cong.c')
-rw-r--r--net/rds/cong.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/rds/cong.c b/net/rds/cong.c
index dd2711df640b..6d06cac2649c 100644
--- a/net/rds/cong.c
+++ b/net/rds/cong.c
@@ -218,6 +218,8 @@ void rds_cong_queue_updates(struct rds_cong_map *map)
218 spin_lock_irqsave(&rds_cong_lock, flags); 218 spin_lock_irqsave(&rds_cong_lock, flags);
219 219
220 list_for_each_entry(conn, &map->m_conn_list, c_map_item) { 220 list_for_each_entry(conn, &map->m_conn_list, c_map_item) {
221 if (conn->c_loopback)
222 continue;
221 if (!test_and_set_bit(0, &conn->c_map_queued)) { 223 if (!test_and_set_bit(0, &conn->c_map_queued)) {
222 rds_stats_inc(s_cong_update_queued); 224 rds_stats_inc(s_cong_update_queued);
223 queue_delayed_work(rds_wq, &conn->c_send_w, 0); 225 queue_delayed_work(rds_wq, &conn->c_send_w, 0);