From 667e87f847fb236ca1a1468955a185e0e6189fcd Mon Sep 17 00:00:00 2001 From: Bang Nguyen Date: Mon, 18 Mar 2013 13:48:57 -0700 Subject: [PATCH] rds: Congestion flag does not get cleared causing the connection to hang Orabug: 16424692 Signed-off-by: Bang Nguyen (cherry picked from commit 456165e342b25b010735d84985f2895ab7f379a9) --- net/rds/cong.c | 2 +- net/rds/ib.h | 4 ++-- net/rds/ib_rdma.c | 5 ++--- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/net/rds/cong.c b/net/rds/cong.c index 0d5456c44a9b..6b0bf1cb2b8b 100644 --- a/net/rds/cong.c +++ b/net/rds/cong.c @@ -298,7 +298,7 @@ void rds_cong_clear_bit(struct rds_cong_map *map, __be16 port) i = be16_to_cpu(port) / RDS_CONG_MAP_PAGE_BITS; off = be16_to_cpu(port) % RDS_CONG_MAP_PAGE_BITS; - __set_bit_le(off, (void *)map->m_page_addrs[i]); + __clear_bit_le(off, (void *)map->m_page_addrs[i]); } static int rds_cong_test_bit(struct rds_cong_map *map, __be16 port) diff --git a/net/rds/ib.h b/net/rds/ib.h index c5737bd9a140..dda31af1aa59 100644 --- a/net/rds/ib.h +++ b/net/rds/ib.h @@ -270,8 +270,8 @@ enum { RDS_IB_PORT_DOWN, }; -#define RDS_IB_MAX_ALIASES 100 -#define RDS_IB_MAX_PORTS 100 +#define RDS_IB_MAX_ALIASES 50 +#define RDS_IB_MAX_PORTS 50 struct rds_ib_port { struct rds_ib_device *rds_ibdev; unsigned int failover_group; diff --git a/net/rds/ib_rdma.c b/net/rds/ib_rdma.c index 3cac288e4530..769941211161 100644 --- a/net/rds/ib_rdma.c +++ b/net/rds/ib_rdma.c @@ -387,10 +387,9 @@ static struct rds_ib_mr *rds_ib_alloc_fmr(struct rds_ib_device *rds_ibdev, if (err == -ENOMEM) { int prev_max = pool->max_items; - pool->max_items = max(atomic_read(&pool->item_count), - RDS_FMR_1M_POOL_SIZE); + pool->max_items = atomic_read(&pool->item_count); - printk(KERN_ERR "RDS/IB: Adjusted FMR pool (%d->%ld)\n", + printk(KERN_ERR "RDS/IB: Adjusted %s FMR pool (%d->%ld)\n", (pool->pool_type == RDS_IB_MR_8K_POOL) ? "8K" : "1M", prev_max, pool->max_items); rds_ib_flush_mr_pool(pool, 0, &tmp_ibmr); -- 2.50.1