mailbox: handle failed named mailbox channel request [Linux 4.4.187]

This Linux kernel change "mailbox: handle failed named mailbox channel request" is included in the Linux 4.4.187 release. This change is authored by morten petersen <morten_bp [at] live.dk> on Mon Jul 8 11:41:54 2019 +0000. The commit for this change in Linux stable tree is dec5958 (patch) which is from upstream commit 25777e5. The same Linux upstream change may have been applied to various maintained Linux releases and you can find all Linux releases containing changes from upstream 25777e5.

mailbox: handle failed named mailbox channel request

[ Upstream commit 25777e5784a7b417967460d4fcf9660d05a0c320 ]

Previously, if mbox_request_channel_byname was used with a name
which did not exist in the "mbox-names" property of a mailbox
client, the mailbox corresponding to the last entry in the
"mbox-names" list would be incorrectly selected.
With this patch, -EINVAL is returned if the named mailbox is
not found.

Signed-off-by: Morten Borup Petersen <morten_bp@live.dk>
Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>

There are 6 lines of Linux source code added/deleted in this change. Code changes to Linux kernel are as follows.

 drivers/mailbox/mailbox.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/mailbox/mailbox.c b/drivers/mailbox/mailbox.c
index 9cf826d..b4ad852 100644
--- a/drivers/mailbox/mailbox.c
+++ b/drivers/mailbox/mailbox.c
@@ -389,11 +389,13 @@ struct mbox_chan *mbox_request_channel_byname(struct mbox_client *cl,

    of_property_for_each_string(np, "mbox-names", prop, mbox_name) {
        if (!strncmp(name, mbox_name, strlen(name)))
-           break;
+           return mbox_request_channel(cl, index);
        index++;
    }

-   return mbox_request_channel(cl, index);
+   dev_err(cl->dev, "%s() could not locate channel named \"%s\"\n",
+       __func__, name);
+   return ERR_PTR(-EINVAL);
 }
 EXPORT_SYMBOL_GPL(mbox_request_channel_byname);

Leave a Reply

Your email address will not be published. Required fields are marked *