hc
2024-01-05 071106ecf68c401173c58808b1cf5f68cc50d390
kernel/drivers/rpmsg/qcom_smd.c
....@@ -1073,7 +1073,7 @@
10731073
10741074 /* Assign public information to the rpmsg_device */
10751075 rpdev = &qsdev->rpdev;
1076
- strncpy(rpdev->id.name, channel->name, RPMSG_NAME_SIZE);
1076
+ strscpy_pad(rpdev->id.name, channel->name, RPMSG_NAME_SIZE);
10771077 rpdev->src = RPMSG_ADDR_ANY;
10781078 rpdev->dst = RPMSG_ADDR_ANY;
10791079
....@@ -1304,7 +1304,7 @@
13041304
13051305 spin_unlock_irqrestore(&edge->channels_lock, flags);
13061306
1307
- strncpy(chinfo.name, channel->name, sizeof(chinfo.name));
1307
+ strscpy_pad(chinfo.name, channel->name, sizeof(chinfo.name));
13081308 chinfo.src = RPMSG_ADDR_ANY;
13091309 chinfo.dst = RPMSG_ADDR_ANY;
13101310 rpmsg_unregister_device(&edge->dev, &chinfo);
....@@ -1364,6 +1364,7 @@
13641364 }
13651365
13661366 edge->ipc_regmap = syscon_node_to_regmap(syscon_np);
1367
+ of_node_put(syscon_np);
13671368 if (IS_ERR(edge->ipc_regmap)) {
13681369 ret = PTR_ERR(edge->ipc_regmap);
13691370 goto put_node;
....@@ -1388,9 +1389,9 @@
13881389 edge->name = node->name;
13891390
13901391 irq = irq_of_parse_and_map(node, 0);
1391
- if (irq < 0) {
1392
+ if (!irq) {
13921393 dev_err(dev, "required smd interrupt missing\n");
1393
- ret = irq;
1394
+ ret = -EINVAL;
13941395 goto put_node;
13951396 }
13961397
....@@ -1469,7 +1470,7 @@
14691470 edge->dev.release = qcom_smd_edge_release;
14701471 edge->dev.of_node = node;
14711472 edge->dev.groups = qcom_smd_edge_groups;
1472
- dev_set_name(&edge->dev, "%s:%s", dev_name(parent), node->name);
1473
+ dev_set_name(&edge->dev, "%s:%pOFn", dev_name(parent), node);
14731474 ret = device_register(&edge->dev);
14741475 if (ret) {
14751476 pr_err("failed to register smd edge\n");