2626 * @rpdev: rpmsg device
2727 * @chinfo: channel_info to bind
2828 *
29- * Returns a pointer to the new rpmsg device on success, or NULL on error.
29+ * Return: a pointer to the new rpmsg device on success, or NULL on error.
3030 */
3131struct rpmsg_device * rpmsg_create_channel (struct rpmsg_device * rpdev ,
3232 struct rpmsg_channel_info * chinfo )
@@ -48,7 +48,7 @@ EXPORT_SYMBOL(rpmsg_create_channel);
4848 * @rpdev: rpmsg device
4949 * @chinfo: channel_info to bind
5050 *
51- * Returns 0 on success or an appropriate error value.
51+ * Return: 0 on success or an appropriate error value.
5252 */
5353int rpmsg_release_channel (struct rpmsg_device * rpdev ,
5454 struct rpmsg_channel_info * chinfo )
@@ -102,7 +102,7 @@ EXPORT_SYMBOL(rpmsg_release_channel);
102102 * dynamically assign them an available rpmsg address (drivers should have
103103 * a very good reason why not to always use RPMSG_ADDR_ANY here).
104104 *
105- * Returns a pointer to the endpoint on success, or NULL on error.
105+ * Return: a pointer to the endpoint on success, or NULL on error.
106106 */
107107struct rpmsg_endpoint * rpmsg_create_ept (struct rpmsg_device * rpdev ,
108108 rpmsg_rx_cb_t cb , void * priv ,
@@ -146,7 +146,7 @@ EXPORT_SYMBOL(rpmsg_destroy_ept);
146146 *
147147 * Can only be called from process context (for now).
148148 *
149- * Returns 0 on success and an appropriate error value on failure.
149+ * Return: 0 on success and an appropriate error value on failure.
150150 */
151151int rpmsg_send (struct rpmsg_endpoint * ept , void * data , int len )
152152{
@@ -175,7 +175,7 @@ EXPORT_SYMBOL(rpmsg_send);
175175 *
176176 * Can only be called from process context (for now).
177177 *
178- * Returns 0 on success and an appropriate error value on failure.
178+ * Return: 0 on success and an appropriate error value on failure.
179179 */
180180int rpmsg_sendto (struct rpmsg_endpoint * ept , void * data , int len , u32 dst )
181181{
@@ -206,7 +206,7 @@ EXPORT_SYMBOL(rpmsg_sendto);
206206 *
207207 * Can only be called from process context (for now).
208208 *
209- * Returns 0 on success and an appropriate error value on failure.
209+ * Return: 0 on success and an appropriate error value on failure.
210210 */
211211int rpmsg_send_offchannel (struct rpmsg_endpoint * ept , u32 src , u32 dst ,
212212 void * data , int len )
@@ -235,7 +235,7 @@ EXPORT_SYMBOL(rpmsg_send_offchannel);
235235 *
236236 * Can only be called from process context (for now).
237237 *
238- * Returns 0 on success and an appropriate error value on failure.
238+ * Return: 0 on success and an appropriate error value on failure.
239239 */
240240int rpmsg_trysend (struct rpmsg_endpoint * ept , void * data , int len )
241241{
@@ -263,7 +263,7 @@ EXPORT_SYMBOL(rpmsg_trysend);
263263 *
264264 * Can only be called from process context (for now).
265265 *
266- * Returns 0 on success and an appropriate error value on failure.
266+ * Return: 0 on success and an appropriate error value on failure.
267267 */
268268int rpmsg_trysendto (struct rpmsg_endpoint * ept , void * data , int len , u32 dst )
269269{
@@ -282,7 +282,7 @@ EXPORT_SYMBOL(rpmsg_trysendto);
282282 * @filp: file for poll_wait()
283283 * @wait: poll_table for poll_wait()
284284 *
285- * Returns mask representing the current state of the endpoint's send buffers
285+ * Return: mask representing the current state of the endpoint's send buffers
286286 */
287287__poll_t rpmsg_poll (struct rpmsg_endpoint * ept , struct file * filp ,
288288 poll_table * wait )
@@ -313,7 +313,7 @@ EXPORT_SYMBOL(rpmsg_poll);
313313 *
314314 * Can only be called from process context (for now).
315315 *
316- * Returns 0 on success and an appropriate error value on failure.
316+ * Return: 0 on success and an appropriate error value on failure.
317317 */
318318int rpmsg_trysend_offchannel (struct rpmsg_endpoint * ept , u32 src , u32 dst ,
319319 void * data , int len )
@@ -540,13 +540,25 @@ static int rpmsg_dev_probe(struct device *dev)
540540 err = rpdrv -> probe (rpdev );
541541 if (err ) {
542542 dev_err (dev , "%s: failed: %d\n" , __func__ , err );
543- if (ept )
544- rpmsg_destroy_ept (ept );
545- goto out ;
543+ goto destroy_ept ;
546544 }
547545
548- if (ept && rpdev -> ops -> announce_create )
546+ if (ept && rpdev -> ops -> announce_create ) {
549547 err = rpdev -> ops -> announce_create (rpdev );
548+ if (err ) {
549+ dev_err (dev , "failed to announce creation\n" );
550+ goto remove_rpdev ;
551+ }
552+ }
553+
554+ return 0 ;
555+
556+ remove_rpdev :
557+ if (rpdrv -> remove )
558+ rpdrv -> remove (rpdev );
559+ destroy_ept :
560+ if (ept )
561+ rpmsg_destroy_ept (ept );
550562out :
551563 return err ;
552564}
@@ -623,7 +635,7 @@ EXPORT_SYMBOL(rpmsg_unregister_device);
623635 * @rpdrv: pointer to a struct rpmsg_driver
624636 * @owner: owning module/driver
625637 *
626- * Returns 0 on success, and an appropriate error value on failure.
638+ * Return: 0 on success, and an appropriate error value on failure.
627639 */
628640int __register_rpmsg_driver (struct rpmsg_driver * rpdrv , struct module * owner )
629641{
@@ -637,7 +649,7 @@ EXPORT_SYMBOL(__register_rpmsg_driver);
637649 * unregister_rpmsg_driver() - unregister an rpmsg driver from the rpmsg bus
638650 * @rpdrv: pointer to a struct rpmsg_driver
639651 *
640- * Returns 0 on success, and an appropriate error value on failure.
652+ * Return: 0 on success, and an appropriate error value on failure.
641653 */
642654void unregister_rpmsg_driver (struct rpmsg_driver * rpdrv )
643655{
0 commit comments