[rds-devel] [PATCH] rds: Initialize rds_ibdev->ipaddr_list before it could get used
Venkat Venkatsubra
venkat.x.venkatsubra at oracle.com
Thu Oct 4 12:23:17 PDT 2012
Possibility of accessing rds_ibdev->ipaddr_list before it is initialized
can result in a crash in rds_ib_dev_free. e.g. when rds_ib_create_mr_pool
fails in rds_ib_add_one.
Signed-off-by: Venkat Venkatsubra <venkat.x.venkatsubra at oracle.com>
---
net/rds/ib.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/net/rds/ib.c b/net/rds/ib.c
index b4c8b00..09acf62 100644
--- a/net/rds/ib.c
+++ b/net/rds/ib.c
@@ -157,6 +157,9 @@ static void rds_ib_add_one(struct ib_device *device)
rds_ibdev->max_initiator_depth = dev_attr->max_qp_init_rd_atom;
rds_ibdev->max_responder_resources = dev_attr->max_qp_rd_atom;
+ INIT_LIST_HEAD(&rds_ibdev->ipaddr_list);
+ INIT_LIST_HEAD(&rds_ibdev->conn_list);
+
rds_ibdev->dev = device;
rds_ibdev->pd = ib_alloc_pd(device);
if (IS_ERR(rds_ibdev->pd)) {
@@ -176,9 +179,6 @@ static void rds_ib_add_one(struct ib_device *device)
goto put_dev;
}
- INIT_LIST_HEAD(&rds_ibdev->ipaddr_list);
- INIT_LIST_HEAD(&rds_ibdev->conn_list);
-
down_write(&rds_ib_devices_lock);
list_add_tail_rcu(&rds_ibdev->list, &rds_ib_devices);
up_write(&rds_ib_devices_lock);
--
1.7.6
More information about the rds-devel
mailing list