summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Krummenacher <max.krummenacher@toradex.com>2024-02-22 13:57:01 +0100
committerMax Krummenacher <max.krummenacher@toradex.com>2024-02-22 13:57:01 +0100
commit9b7d457672a719af3d650b3dad1788dcca561993 (patch)
tree41f2da04df288047ae37f4c78eb3744375817575
parent3ac08f5e1534e26cbe255088c0243b0b57e1be0d (diff)
Revert "rpmsg: Fix kfree() of static memory on setting driver_override"
This reverts commit 2e76b4f6218c4db3ff00eb15d94d72f371736de4. Downstream NXP and stable have deviated to far, do not pull this in. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
-rw-r--r--drivers/rpmsg/rpmsg_internal.h13
-rw-r--r--include/linux/rpmsg.h6
2 files changed, 4 insertions, 15 deletions
diff --git a/drivers/rpmsg/rpmsg_internal.h b/drivers/rpmsg/rpmsg_internal.h
index 5f4f3691bbf1..a76c344253bf 100644
--- a/drivers/rpmsg/rpmsg_internal.h
+++ b/drivers/rpmsg/rpmsg_internal.h
@@ -90,19 +90,10 @@ int rpmsg_release_channel(struct rpmsg_device *rpdev,
*/
static inline int rpmsg_chrdev_register_device(struct rpmsg_device *rpdev)
{
- int ret;
-
strcpy(rpdev->id.name, "rpmsg_chrdev");
- ret = driver_set_override(&rpdev->dev, &rpdev->driver_override,
- rpdev->id.name, strlen(rpdev->id.name));
- if (ret)
- return ret;
-
- ret = rpmsg_register_device(rpdev);
- if (ret)
- kfree(rpdev->driver_override);
+ rpdev->driver_override = "rpmsg_chrdev";
- return ret;
+ return rpmsg_register_device(rpdev);
}
#endif
diff --git a/include/linux/rpmsg.h b/include/linux/rpmsg.h
index 1b7294cefb80..a8dcf8a9ae88 100644
--- a/include/linux/rpmsg.h
+++ b/include/linux/rpmsg.h
@@ -41,9 +41,7 @@ struct rpmsg_channel_info {
* rpmsg_device - device that belong to the rpmsg bus
* @dev: the device struct
* @id: device id (used to match between rpmsg drivers and devices)
- * @driver_override: driver name to force a match; do not set directly,
- * because core frees it; use driver_set_override() to
- * set or clear it.
+ * @driver_override: driver name to force a match
* @src: local address
* @dst: destination address
* @ept: the rpmsg endpoint of this channel
@@ -53,7 +51,7 @@ struct rpmsg_channel_info {
struct rpmsg_device {
struct device dev;
struct rpmsg_device_id id;
- const char *driver_override;
+ char *driver_override;
u32 src;
u32 dst;
struct rpmsg_endpoint *ept;