#include <linux/init.h>
#include <linux/module.h>
#include <linux/platform_device.h>
+#include <linux/slab.h>
#include <drm/drm_drv.h>
{
struct platform_device *pdev;
struct xcp_device *pxcp_dev;
- char dev_name[20];
+ char *dev_name;
int ret, i;
guard(mutex)(&xcp_mutex);
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);