diff options
author | morten petersen <morten_bp@live.dk> | 2019-07-08 14:41:54 +0300 |
---|---|---|
committer | Jassi Brar <jaswinder.singh@linaro.org> | 2019-07-11 18:19:00 +0300 |
commit | 25777e5784a7b417967460d4fcf9660d05a0c320 (patch) | |
tree | 32c1907c42d49311df76a110e23111aeabcef2f6 /drivers/mailbox/mailbox.c | |
parent | 20b5d24c7669813ec73589146f7dcefbf259a26a (diff) | |
download | linux-25777e5784a7b417967460d4fcf9660d05a0c320.tar.xz |
mailbox: handle failed named mailbox channel request
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>
Diffstat (limited to 'drivers/mailbox/mailbox.c')
-rw-r--r-- | drivers/mailbox/mailbox.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/mailbox/mailbox.c b/drivers/mailbox/mailbox.c index f4b1950d35f3..0b821a5b2db8 100644 --- a/drivers/mailbox/mailbox.c +++ b/drivers/mailbox/mailbox.c @@ -418,11 +418,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); |