From 20de32da9b954686543a719c2644f483948a405e Mon Sep 17 00:00:00 2001 From: Dotan Barak Date: Mon, 27 Aug 2012 18:39:36 +0300 Subject: [PATCH] rds: fix error flow handling In case of an error flow, an uninitialized memory was used and this caused a kernel oops. Signed-off-by: Dotan Barak Reviewed-by: Bang Nguyen --- net/rds/ib.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/net/rds/ib.c b/net/rds/ib.c index 68ab8d420a3b..7eb3cab35df5 100644 --- a/net/rds/ib.c +++ b/net/rds/ib.c @@ -156,6 +156,9 @@ 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)) { @@ -179,9 +182,6 @@ void rds_ib_add_one(struct ib_device *device) if (!rds_ibdev->srq) goto free_attr; - 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); -- 2.50.1