dev_set_name()
When we use of_device_add() to create platform_device and add it to device
hierarchy, the platform_device.name and device's name will point to the same
memory.
Later we use dev_set_name() to change the device's name, it will alloc new
memory to store name and free old device's name. After it, the
platform_device.name will point to an freed memory, access platform_device.name
maybe lead to unpredictable exceptions.
So, we alloc new memory for platform_device.name in of_device_add()
Change-Id: I59bf0941ee4e094053971d41d386206e47fddcaa
Signed-off-by: Meiyou Chen <cmy@rock-chips.com>
/* name and id have to be set so that the platform bus doesn't get
* confused on matching */
+#ifdef CONFIG_ARCH_ROCKCHIP
+ ofdev->name = kasprintf(GFP_KERNEL, "%s", dev_name(&ofdev->dev));
+#else
ofdev->name = dev_name(&ofdev->dev);
+#endif
ofdev->id = -1;
/* device_add will assume that this device is on the same node as