diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2022-01-18 09:27:40 +0200 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2022-01-18 09:27:40 +0200 |
commit | fc9d6952a4bbb9908062726fbfb009fa6ea5c7af (patch) | |
tree | e01ab7b413968ede888088558f5f10227fb68624 | |
parent | 722d94847de29310e8aa03fcbdb41fc92c521756 (diff) | |
parent | 8066c615cb69b7da8a94f59379847b037b3a5e46 (diff) |
Merge tag 'rpmsg-v5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux
Pull rpmsg updates from Bjorn Andersson:
"This adds pr_fmt for the rpmsg_char driver, fixes error handling in
rpmsg_dev_probe() and corrects the spelling of "Return:" in various
places, in order to fix kerneldoc"
* tag 'rpmsg-v5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux:
rpmsg: core: Clean up resources on announce_create failure.
rpmsg: Fix documentation return formatting
rpmsg: char: Add pr_fmt() to prefix messages
-rw-r--r-- | drivers/rpmsg/qcom_glink_native.c | 2 | ||||
-rw-r--r-- | drivers/rpmsg/qcom_smd.c | 2 | ||||
-rw-r--r-- | drivers/rpmsg/rpmsg_char.c | 7 | ||||
-rw-r--r-- | drivers/rpmsg/rpmsg_core.c | 44 | ||||
-rw-r--r-- | drivers/rpmsg/virtio_rpmsg_bus.c | 2 |
5 files changed, 36 insertions, 21 deletions
diff --git a/drivers/rpmsg/qcom_glink_native.c b/drivers/rpmsg/qcom_glink_native.c index 3f377a795b33..1030cfa80e04 100644 --- a/drivers/rpmsg/qcom_glink_native.c +++ b/drivers/rpmsg/qcom_glink_native.c @@ -427,7 +427,7 @@ static void qcom_glink_handle_intent_req_ack(struct qcom_glink *glink, * Allocates a local channel id and sends a RPM_CMD_OPEN message to the remote. * Will return with refcount held, regardless of outcome. * - * Returns 0 on success, negative errno otherwise. + * Return: 0 on success, negative errno otherwise. */ static int qcom_glink_send_open_req(struct qcom_glink *glink, struct glink_channel *channel) diff --git a/drivers/rpmsg/qcom_smd.c b/drivers/rpmsg/qcom_smd.c index 8da1b5cb31b3..540e027f08c4 100644 --- a/drivers/rpmsg/qcom_smd.c +++ b/drivers/rpmsg/qcom_smd.c @@ -1467,7 +1467,7 @@ ATTRIBUTE_GROUPS(qcom_smd_edge); * @parent: parent device for the edge * @node: device_node describing the edge * - * Returns an edge reference, or negative ERR_PTR() on failure. + * Return: an edge reference, or negative ERR_PTR() on failure. */ struct qcom_smd_edge *qcom_smd_register_edge(struct device *parent, struct device_node *node) diff --git a/drivers/rpmsg/rpmsg_char.c b/drivers/rpmsg/rpmsg_char.c index b5907b80727c..d6214cb66026 100644 --- a/drivers/rpmsg/rpmsg_char.c +++ b/drivers/rpmsg/rpmsg_char.c @@ -9,6 +9,9 @@ * Based on rpmsg performance statistics driver by Michal Simek, which in turn * was based on TI & Google OMX rpmsg driver. */ + +#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt + #include <linux/cdev.h> #include <linux/device.h> #include <linux/fs.h> @@ -550,7 +553,7 @@ static int rpmsg_chrdev_init(void) ret = alloc_chrdev_region(&rpmsg_major, 0, RPMSG_DEV_MAX, "rpmsg"); if (ret < 0) { - pr_err("rpmsg: failed to allocate char dev region\n"); + pr_err("failed to allocate char dev region\n"); return ret; } @@ -563,7 +566,7 @@ static int rpmsg_chrdev_init(void) ret = register_rpmsg_driver(&rpmsg_chrdev_driver); if (ret < 0) { - pr_err("rpmsgchr: failed to register rpmsg driver\n"); + pr_err("failed to register rpmsg driver\n"); class_destroy(rpmsg_class); unregister_chrdev_region(rpmsg_major, RPMSG_DEV_MAX); } diff --git a/drivers/rpmsg/rpmsg_core.c b/drivers/rpmsg/rpmsg_core.c index d3eb60059ef1..d9e612f4f0f2 100644 --- a/drivers/rpmsg/rpmsg_core.c +++ b/drivers/rpmsg/rpmsg_core.c @@ -26,7 +26,7 @@ * @rpdev: rpmsg device * @chinfo: channel_info to bind * - * Returns a pointer to the new rpmsg device on success, or NULL on error. + * Return: a pointer to the new rpmsg device on success, or NULL on error. */ struct rpmsg_device *rpmsg_create_channel(struct rpmsg_device *rpdev, struct rpmsg_channel_info *chinfo) @@ -48,7 +48,7 @@ EXPORT_SYMBOL(rpmsg_create_channel); * @rpdev: rpmsg device * @chinfo: channel_info to bind * - * Returns 0 on success or an appropriate error value. + * Return: 0 on success or an appropriate error value. */ int rpmsg_release_channel(struct rpmsg_device *rpdev, struct rpmsg_channel_info *chinfo) @@ -102,7 +102,7 @@ EXPORT_SYMBOL(rpmsg_release_channel); * dynamically assign them an available rpmsg address (drivers should have * a very good reason why not to always use RPMSG_ADDR_ANY here). * - * Returns a pointer to the endpoint on success, or NULL on error. + * Return: a pointer to the endpoint on success, or NULL on error. */ struct rpmsg_endpoint *rpmsg_create_ept(struct rpmsg_device *rpdev, rpmsg_rx_cb_t cb, void *priv, @@ -146,7 +146,7 @@ EXPORT_SYMBOL(rpmsg_destroy_ept); * * Can only be called from process context (for now). * - * Returns 0 on success and an appropriate error value on failure. + * Return: 0 on success and an appropriate error value on failure. */ int rpmsg_send(struct rpmsg_endpoint *ept, void *data, int len) { @@ -175,7 +175,7 @@ EXPORT_SYMBOL(rpmsg_send); * * Can only be called from process context (for now). * - * Returns 0 on success and an appropriate error value on failure. + * Return: 0 on success and an appropriate error value on failure. */ int rpmsg_sendto(struct rpmsg_endpoint *ept, void *data, int len, u32 dst) { @@ -206,7 +206,7 @@ EXPORT_SYMBOL(rpmsg_sendto); * * Can only be called from process context (for now). * - * Returns 0 on success and an appropriate error value on failure. + * Return: 0 on success and an appropriate error value on failure. */ int rpmsg_send_offchannel(struct rpmsg_endpoint *ept, u32 src, u32 dst, void *data, int len) @@ -235,7 +235,7 @@ EXPORT_SYMBOL(rpmsg_send_offchannel); * * Can only be called from process context (for now). * - * Returns 0 on success and an appropriate error value on failure. + * Return: 0 on success and an appropriate error value on failure. */ int rpmsg_trysend(struct rpmsg_endpoint *ept, void *data, int len) { @@ -263,7 +263,7 @@ EXPORT_SYMBOL(rpmsg_trysend); * * Can only be called from process context (for now). * - * Returns 0 on success and an appropriate error value on failure. + * Return: 0 on success and an appropriate error value on failure. */ int rpmsg_trysendto(struct rpmsg_endpoint *ept, void *data, int len, u32 dst) { @@ -282,7 +282,7 @@ EXPORT_SYMBOL(rpmsg_trysendto); * @filp: file for poll_wait() * @wait: poll_table for poll_wait() * - * Returns mask representing the current state of the endpoint's send buffers + * Return: mask representing the current state of the endpoint's send buffers */ __poll_t rpmsg_poll(struct rpmsg_endpoint *ept, struct file *filp, poll_table *wait) @@ -313,7 +313,7 @@ EXPORT_SYMBOL(rpmsg_poll); * * Can only be called from process context (for now). * - * Returns 0 on success and an appropriate error value on failure. + * Return: 0 on success and an appropriate error value on failure. */ int rpmsg_trysend_offchannel(struct rpmsg_endpoint *ept, u32 src, u32 dst, void *data, int len) @@ -540,13 +540,25 @@ static int rpmsg_dev_probe(struct device *dev) err = rpdrv->probe(rpdev); if (err) { dev_err(dev, "%s: failed: %d\n", __func__, err); - if (ept) - rpmsg_destroy_ept(ept); - goto out; + goto destroy_ept; } - if (ept && rpdev->ops->announce_create) + if (ept && rpdev->ops->announce_create) { err = rpdev->ops->announce_create(rpdev); + if (err) { + dev_err(dev, "failed to announce creation\n"); + goto remove_rpdev; + } + } + + return 0; + +remove_rpdev: + if (rpdrv->remove) + rpdrv->remove(rpdev); +destroy_ept: + if (ept) + rpmsg_destroy_ept(ept); out: return err; } @@ -623,7 +635,7 @@ EXPORT_SYMBOL(rpmsg_unregister_device); * @rpdrv: pointer to a struct rpmsg_driver * @owner: owning module/driver * - * Returns 0 on success, and an appropriate error value on failure. + * Return: 0 on success, and an appropriate error value on failure. */ int __register_rpmsg_driver(struct rpmsg_driver *rpdrv, struct module *owner) { @@ -637,7 +649,7 @@ EXPORT_SYMBOL(__register_rpmsg_driver); * unregister_rpmsg_driver() - unregister an rpmsg driver from the rpmsg bus * @rpdrv: pointer to a struct rpmsg_driver * - * Returns 0 on success, and an appropriate error value on failure. + * Return: 0 on success, and an appropriate error value on failure. */ void unregister_rpmsg_driver(struct rpmsg_driver *rpdrv) { diff --git a/drivers/rpmsg/virtio_rpmsg_bus.c b/drivers/rpmsg/virtio_rpmsg_bus.c index 9c112aa65040..c37451512835 100644 --- a/drivers/rpmsg/virtio_rpmsg_bus.c +++ b/drivers/rpmsg/virtio_rpmsg_bus.c @@ -547,7 +547,7 @@ static void rpmsg_downref_sleepers(struct virtproc_info *vrp) * should use the appropriate rpmsg_{try}send{to, _offchannel} API * (see include/linux/rpmsg.h). * - * Returns 0 on success and an appropriate error value on failure. + * Return: 0 on success and an appropriate error value on failure. */ static int rpmsg_send_offchannel_raw(struct rpmsg_device *rpdev, u32 src, u32 dst, |