All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] drm/amdgpu: cleanup amdgpu_xgmi_sysfs_add_dev_info
@ 2022-01-26 11:59 Christian König
  2022-01-26 11:59 ` [PATCH 2/2] drm/amdgpu: add sysfs files for XGMI segment size and physical node id Christian König
  2022-01-26 12:50 ` [PATCH 1/2] drm/amdgpu: cleanup amdgpu_xgmi_sysfs_add_dev_info Luben Tuikov
  0 siblings, 2 replies; 6+ messages in thread
From: Christian König @ 2022-01-26 11:59 UTC (permalink / raw)
  To: Luben.Tuikov, Tom.StDenis; +Cc: amd-gfx

Don't initialize variables if it isn't absolutely necessary.

Use amdgpu_xgmi_sysfs_rem_dev_info to cleanup when something goes wrong.

Drop the explicit warnings since the sysfs core warns about things like
duplicate files itself.

Signed-off-by: Christian König <christian.koenig@amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c | 85 +++++++++---------------
 1 file changed, 33 insertions(+), 52 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
index 5929d6f528c9..68509f619ba3 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c
@@ -289,61 +289,10 @@ static ssize_t amdgpu_xgmi_show_error(struct device *dev,
 static DEVICE_ATTR(xgmi_device_id, S_IRUGO, amdgpu_xgmi_show_device_id, NULL);
 static DEVICE_ATTR(xgmi_error, S_IRUGO, amdgpu_xgmi_show_error, NULL);
 
-static int amdgpu_xgmi_sysfs_add_dev_info(struct amdgpu_device *adev,
-					 struct amdgpu_hive_info *hive)
-{
-	int ret = 0;
-	char node[10] = { 0 };
-
-	/* Create xgmi device id file */
-	ret = device_create_file(adev->dev, &dev_attr_xgmi_device_id);
-	if (ret) {
-		dev_err(adev->dev, "XGMI: Failed to create device file xgmi_device_id\n");
-		return ret;
-	}
-
-	/* Create xgmi error file */
-	ret = device_create_file(adev->dev, &dev_attr_xgmi_error);
-	if (ret)
-		pr_err("failed to create xgmi_error\n");
-
-
-	/* Create sysfs link to hive info folder on the first device */
-	if (hive->kobj.parent != (&adev->dev->kobj)) {
-		ret = sysfs_create_link(&adev->dev->kobj, &hive->kobj,
-					"xgmi_hive_info");
-		if (ret) {
-			dev_err(adev->dev, "XGMI: Failed to create link to hive info");
-			goto remove_file;
-		}
-	}
-
-	sprintf(node, "node%d", atomic_read(&hive->number_devices));
-	/* Create sysfs link form the hive folder to yourself */
-	ret = sysfs_create_link(&hive->kobj, &adev->dev->kobj, node);
-	if (ret) {
-		dev_err(adev->dev, "XGMI: Failed to create link from hive info");
-		goto remove_link;
-	}
-
-	goto success;
-
-
-remove_link:
-	sysfs_remove_link(&adev->dev->kobj, adev_to_drm(adev)->unique);
-
-remove_file:
-	device_remove_file(adev->dev, &dev_attr_xgmi_device_id);
-
-success:
-	return ret;
-}
-
 static void amdgpu_xgmi_sysfs_rem_dev_info(struct amdgpu_device *adev,
 					  struct amdgpu_hive_info *hive)
 {
 	char node[10];
-	memset(node, 0, sizeof(node));
 
 	device_remove_file(adev->dev, &dev_attr_xgmi_device_id);
 	device_remove_file(adev->dev, &dev_attr_xgmi_error);
@@ -353,10 +302,42 @@ static void amdgpu_xgmi_sysfs_rem_dev_info(struct amdgpu_device *adev,
 
 	sprintf(node, "node%d", atomic_read(&hive->number_devices));
 	sysfs_remove_link(&hive->kobj, node);
-
 }
 
+static int amdgpu_xgmi_sysfs_add_dev_info(struct amdgpu_device *adev,
+					 struct amdgpu_hive_info *hive)
+{
+	char node[10];
+	int r;
+
+	r = device_create_file(adev->dev, &dev_attr_xgmi_device_id);
+	if (r)
+		return r;
+
+	r = device_create_file(adev->dev, &dev_attr_xgmi_error);
+	if (r)
+		goto error;
 
+	/* Create sysfs link to hive info folder on the first device */
+	if (hive->kobj.parent != (&adev->dev->kobj)) {
+		r = sysfs_create_link(&adev->dev->kobj, &hive->kobj,
+				      "xgmi_hive_info");
+		if (r)
+			goto error;
+	}
+
+	/* Create sysfs link form the hive folder to yourself */
+	sprintf(node, "node%d", atomic_read(&hive->number_devices));
+	r = sysfs_create_link(&hive->kobj, &adev->dev->kobj, node);
+	if (r)
+		goto error;
+
+	return 0;
+
+error:
+	amdgpu_xgmi_sysfs_rem_dev_info(adev, hive);
+	return r;
+}
 
 struct amdgpu_hive_info *amdgpu_get_xgmi_hive(struct amdgpu_device *adev)
 {
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-02-09  8:51 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-26 11:59 [PATCH 1/2] drm/amdgpu: cleanup amdgpu_xgmi_sysfs_add_dev_info Christian König
2022-01-26 11:59 ` [PATCH 2/2] drm/amdgpu: add sysfs files for XGMI segment size and physical node id Christian König
2022-01-26 12:55   ` Luben Tuikov
2022-01-26 12:57     ` StDenis, Tom
2022-02-09  8:51       ` Christian König
2022-01-26 12:50 ` [PATCH 1/2] drm/amdgpu: cleanup amdgpu_xgmi_sysfs_add_dev_info Luben Tuikov

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.