]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
rds: fix error flow handling
authorDotan Barak <dotanb@dev.mellanox.co.il>
Mon, 27 Aug 2012 15:39:36 +0000 (18:39 +0300)
committerMukesh Kacker <mukesh.kacker@oracle.com>
Tue, 7 Jul 2015 23:41:37 +0000 (16:41 -0700)
In case of an error flow, an uninitialized memory was used and this caused a
kernel oops.

Signed-off-by: Dotan Barak <dotanb@dev.mellanox.co.il>
Reviewed-by: Bang Nguyen <bang.nguyen@oracle.com>
net/rds/ib.c

index 68ab8d420a3be1e590fc12b4b1ba75c628a1092f..7eb3cab35df56aa7a37d386d4d3fed3ec16819f7 100644 (file)
@@ -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);