]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/amdgpu: switch XGMI sysfs show helpers to sysfs_emit_at()
authorDavid Baum <davidbaum461@gmail.com>
Fri, 13 Mar 2026 01:52:26 +0000 (20:52 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 17 Mar 2026 14:38:59 +0000 (10:38 -0400)
The XGMI sysfs show helpers amdgpu_xgmi_show_num_hops() and
amdgpu_xgmi_show_num_links() currently populate the output buffer with
sprintf() and then call sysfs_emit(buf, "%s\n", buf) to append the final
newline.

Convert both helpers to use sysfs_emit_at() while tracking the current
offset. This keeps buffer construction in the sysfs helpers, avoids
feeding the output buffer back into the final formatted write, and
matches the style already used by
amdgpu_xgmi_show_connected_port_num().

Signed-off-by: David Baum <davidbaum461@gmail.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c

index e36c287b3289b381ae41af3f2aa240cdbed1e074..e63d05c477a080949784fb0c66a46e10c6c3e0db 100644 (file)
@@ -472,12 +472,12 @@ static ssize_t amdgpu_xgmi_show_num_hops(struct device *dev,
        struct drm_device *ddev = dev_get_drvdata(dev);
        struct amdgpu_device *adev = drm_to_adev(ddev);
        struct psp_xgmi_topology_info *top = &adev->psp.xgmi_context.top_info;
-       int i;
+       int i, offset = 0;
 
        for (i = 0; i < top->num_nodes; i++)
-               sprintf(buf + 3 * i, "%02x ", top->nodes[i].num_hops);
+               offset += sysfs_emit_at(buf, offset, "%02x ", top->nodes[i].num_hops);
 
-       return sysfs_emit(buf, "%s\n", buf);
+       return offset + sysfs_emit_at(buf, offset, "\n");
 }
 
 static ssize_t amdgpu_xgmi_show_num_links(struct device *dev,
@@ -487,12 +487,12 @@ static ssize_t amdgpu_xgmi_show_num_links(struct device *dev,
        struct drm_device *ddev = dev_get_drvdata(dev);
        struct amdgpu_device *adev = drm_to_adev(ddev);
        struct psp_xgmi_topology_info *top = &adev->psp.xgmi_context.top_info;
-       int i;
+       int i, offset = 0;
 
        for (i = 0; i < top->num_nodes; i++)
-               sprintf(buf + 3 * i, "%02x ", top->nodes[i].num_links);
+               offset += sysfs_emit_at(buf, offset, "%02x ", top->nodes[i].num_links);
 
-       return sysfs_emit(buf, "%s\n", buf);
+       return offset + sysfs_emit_at(buf, offset, "\n");
 }
 
 static ssize_t amdgpu_xgmi_show_connected_port_num(struct device *dev,