]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
rds: Congestion flag does not get cleared causing the connection to hang
authorBang Nguyen <bang.nguyen@oracle.com>
Mon, 18 Mar 2013 20:48:57 +0000 (13:48 -0700)
committerMukesh Kacker <mukesh.kacker@oracle.com>
Wed, 8 Jul 2015 20:37:57 +0000 (13:37 -0700)
Orabug: 16424692

Signed-off-by: Bang Nguyen <bang.nguyen@oracle.com>
(cherry picked from commit 456165e342b25b010735d84985f2895ab7f379a9)

net/rds/cong.c
net/rds/ib.h
net/rds/ib_rdma.c

index 0d5456c44a9bd2fc50525046f7661857b055bd7e..6b0bf1cb2b8b507cf0c867a8d6eae68c31ff2008 100644 (file)
@@ -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)
index c5737bd9a140a541a2e525757908faa807b8aa48..dda31af1aa595fbedb6ec353ec128d98736c4ece 100644 (file)
@@ -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;
index 3cac288e4530b0afbf2f7831e42ed53dcfd1a1e6..76994121116192e3e2c789e50f7b65f3723f4e56 100644 (file)
@@ -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);