~postmarketos/upstreaming

rpmsg: qcom_smd: Improve error handling for qcom_smd_parse_edge v2 PROPOSED

Luca Weiss: 1
 rpmsg: qcom_smd: Improve error handling for qcom_smd_parse_edge

 1 files changed, 4 insertions(+), 4 deletions(-)
Export patchset (mbox)
How do I use this?

Copy & paste the following snippet into your terminal to import this patchset into git:

curl -s https://lists.sr.ht/~postmarketos/upstreaming/patches/53157/mbox | git am -3
Learn more about email & git

[PATCH v2] rpmsg: qcom_smd: Improve error handling for qcom_smd_parse_edge Export this patch

When the mailbox driver has not probed yet, the error message "failed to
parse smd edge" is just going to confuse users, so improve the error
prints a bit.

Cover the last remaining exits from qcom_smd_parse_edge with proper
error prints, especially the one for the mbox_chan deserved
dev_err_probe to handle EPROBE_DEFER nicely. And add one for ipc_regmap
also to be complete.

With this done, we can remove the outer print completely.
Signed-off-by: Luca Weiss <luca@z3ntu.xyz>
---
Changes in v2:
- Rebase on qcom for-next, drop dts patches which have been applied
- Improve error printing situation (Bjorn)
- Link to v1: https://lore.kernel.org/r/20240424-apcs-mboxes-v1-0-6556c47cb501@z3ntu.xyz
---
 drivers/rpmsg/qcom_smd.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/rpmsg/qcom_smd.c b/drivers/rpmsg/qcom_smd.c
index 43f601c84b4f..06e6ba653ea1 100644
--- a/drivers/rpmsg/qcom_smd.c
+++ b/drivers/rpmsg/qcom_smd.c
@@ -1369,7 +1369,8 @@ static int qcom_smd_parse_edge(struct device *dev,
	edge->mbox_chan = mbox_request_channel(&edge->mbox_client, 0);
	if (IS_ERR(edge->mbox_chan)) {
		if (PTR_ERR(edge->mbox_chan) != -ENODEV) {
			ret = PTR_ERR(edge->mbox_chan);
			ret = dev_err_probe(dev, PTR_ERR(edge->mbox_chan),
					    "failed to acquire IPC mailbox\n");
			goto put_node;
		}

@@ -1386,6 +1387,7 @@ static int qcom_smd_parse_edge(struct device *dev,
		of_node_put(syscon_np);
		if (IS_ERR(edge->ipc_regmap)) {
			ret = PTR_ERR(edge->ipc_regmap);
			dev_err(dev, "failed to get regmap from syscon: %d\n", ret);
			goto put_node;
		}

@@ -1501,10 +1503,8 @@ struct qcom_smd_edge *qcom_smd_register_edge(struct device *parent,
	}

	ret = qcom_smd_parse_edge(&edge->dev, node, edge);
	if (ret) {
		dev_err(&edge->dev, "failed to parse smd edge\n");
	if (ret)
		goto unregister_dev;
	}

	ret = qcom_smd_create_chrdev(edge);
	if (ret) {

---
base-commit: 2c79712cc83b172ce26c3086ced1c1fae087d8fb
change-id: 20240423-apcs-mboxes-12ee6c01a5b3

Best regards,
-- 
Luca Weiss <luca@z3ntu.xyz>