Commit c577c47e authored by Junxian Huang's avatar Junxian Huang Committed by Chengchang Tang
Browse files

RDMA/hns: Fix creating sysfs before allocating resources

driver inclusion
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/IAL7SX



----------------------------------------------------------------------

The sysfs should be created only after all necessary resources are inited.

Fixes: 523f34d8 ("RDMA/hns: Support congestion control algorithm parameter configuration")
Signed-off-by: default avatarJunxian Huang <huangjunxian6@hisilicon.com>
Signed-off-by: default avatarXinghai Cen <cenxinghai@h-partners.com>
parent 5ea5896e
Loading
Loading
Loading
Loading
+10 −13
Original line number Diff line number Diff line
@@ -568,32 +568,29 @@ int hns_roce_create_port_files(struct ib_device *ibdev, u8 port_num,
	}
	kobject_uevent(&pdata->kobj, KOBJ_ADD);

	ret = sysfs_create_groups(&pdata->kobj, hns_attr_port_groups);
	if (ret) {
		ibdev_err(ibdev,
			  "fail to create port(%u) cc param sysfs, ret = %d.\n",
			  port_num, ret);
		goto fail_kobj;
	}

	ret = alloc_scc_param(hr_dev, pdata);
	if (ret) {
		dev_err(hr_dev->dev, "alloc scc param failed, ret = %d!\n",
			ret);
		goto fail_group;
		goto fail_kobj;
	}

	ret = alloc_cnp_pri_param(hr_dev, pdata);
	if (ret) {
		dev_err(hr_dev->dev, "alloc cnp pri param failed, ret = %d!\n",
			ret);
		goto fail_group;
		goto fail_kobj;
	}

	return ret;
	ret = sysfs_create_groups(&pdata->kobj, hns_attr_port_groups);
	if (ret) {
		ibdev_err(ibdev,
			  "fail to create port(%u) cc param sysfs, ret = %d.\n",
			  port_num, ret);
		goto fail_kobj;
	}

fail_group:
	sysfs_remove_groups(&pdata->kobj, hns_attr_port_groups);
	return ret;

fail_kobj:
	kobject_put(&pdata->kobj);