aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/base/platform.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/drivers/base/platform.c b/drivers/base/platform.c
index d2d4926c5c4..f2377f3d95e 100644
--- a/drivers/base/platform.c
+++ b/drivers/base/platform.c
@@ -1245,19 +1245,20 @@ static int __init early_platform_driver_probe_id(char *class_str,
* rest of the driver core is initialized.
*/
if (!match->dev.init_name) {
- char buf[32];
-
if (match->id != -1)
- snprintf(buf, sizeof(buf), "%s.%d",
- match->name, match->id);
+ match->dev.init_name =
+ kasprintf(GFP_KERNEL, "%s.%d",
+ match->name,
+ match->id);
else
- snprintf(buf, sizeof(buf), "%s",
- match->name);
+ match->dev.init_name =
+ kasprintf(GFP_KERNEL, "%s",
+ match->name);
- match->dev.init_name = kstrdup(buf, GFP_KERNEL);
if (!match->dev.init_name)
return -ENOMEM;
}
+
if (epdrv->pdrv->probe(match))
pr_warning("%s: unable to probe %s early.\n",
class_str, match->name);