Replace the fixed stack buffer and static_assert with kasprintf() so platform device names are always fully formatted.
Signed-off-by: Candice Li <[email protected]> --- drivers/gpu/drm/amd/amdxcp/amdgpu_xcp_drv.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/amd/amdxcp/amdgpu_xcp_drv.c b/drivers/gpu/drm/amd/amdxcp/amdgpu_xcp_drv.c index 44009aa8216ed0..995cae6be144a0 100644 --- a/drivers/gpu/drm/amd/amdxcp/amdgpu_xcp_drv.c +++ b/drivers/gpu/drm/amd/amdxcp/amdgpu_xcp_drv.c @@ -25,6 +25,7 @@ #include <linux/init.h> #include <linux/module.h> #include <linux/platform_device.h> +#include <linux/slab.h> #include <drm/drm_drv.h> @@ -52,7 +53,7 @@ int amdgpu_xcp_drm_dev_alloc(struct drm_device **ddev) { struct platform_device *pdev; struct xcp_device *pxcp_dev; - char dev_name[20]; + char *dev_name; int ret, i; guard(mutex)(&xcp_mutex); @@ -68,8 +69,12 @@ int amdgpu_xcp_drm_dev_alloc(struct drm_device **ddev) if (i >= MAX_XCP_PLATFORM_DEVICE) return -ENODEV; - snprintf(dev_name, sizeof(dev_name), "amdgpu_xcp_%d", i); + dev_name = kasprintf(GFP_KERNEL, "amdgpu_xcp_%d", i); + if (!dev_name) + return -ENOMEM; + pdev = platform_device_register_simple(dev_name, -1, NULL, 0); + kfree(dev_name); if (IS_ERR(pdev)) return PTR_ERR(pdev); -- 2.25.1
