remoteproc/omap: Check for undefined mailbox messages
Add some checks in the mailbox callback function to limit any processing in the mailbox callback function to only certain currently valid messages, and drop all the remaining messages. A debug message is added to print any such invalid messages when the appropriate trace control is enabled. Co-developed-by: Subramaniam Chanderashekarapuram <subramaniam.ca@ti.com> Signed-off-by: Subramaniam Chanderashekarapuram <subramaniam.ca@ti.com> Signed-off-by: Suman Anna <s-anna@ti.com> Signed-off-by: Tero Kristo <t-kristo@ti.com> Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org> Reviewed-by: Andrew F. Davis <afd@ti.com> Acked-by: Mathieu Poirier <mathieu.poirier@linaro.org> Link: https://lore.kernel.org/r/20200324110035.29907-10-t-kristo@ti.com Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
This commit is contained in:
parent
1070f24d4a
commit
8135d1d281
|
@ -130,6 +130,12 @@ static void omap_rproc_mbox_callback(struct mbox_client *client, void *data)
|
|||
dev_info(dev, "received echo reply from %s\n", name);
|
||||
break;
|
||||
default:
|
||||
if (msg >= RP_MBOX_READY && msg < RP_MBOX_END_MSG)
|
||||
return;
|
||||
if (msg > oproc->rproc->max_notifyid) {
|
||||
dev_dbg(dev, "dropping unknown message 0x%x", msg);
|
||||
return;
|
||||
}
|
||||
/* msg contains the index of the triggered vring */
|
||||
if (rproc_vq_interrupt(oproc->rproc, msg) == IRQ_NONE)
|
||||
dev_dbg(dev, "no message was found in vqid %d\n", msg);
|
||||
|
|
|
@ -56,6 +56,12 @@
|
|||
*
|
||||
* @RP_MBOX_ABORT_REQUEST: a "please crash" request, used for testing the
|
||||
* recovery mechanism (to some extent).
|
||||
*
|
||||
* Introduce new message definitions if any here.
|
||||
*
|
||||
* @RP_MBOX_END_MSG: Indicates end of known/defined messages from remote core
|
||||
* This should be the last definition.
|
||||
*
|
||||
*/
|
||||
enum omap_rp_mbox_messages {
|
||||
RP_MBOX_READY = 0xFFFFFF00,
|
||||
|
@ -64,6 +70,7 @@ enum omap_rp_mbox_messages {
|
|||
RP_MBOX_ECHO_REQUEST = 0xFFFFFF03,
|
||||
RP_MBOX_ECHO_REPLY = 0xFFFFFF04,
|
||||
RP_MBOX_ABORT_REQUEST = 0xFFFFFF05,
|
||||
RP_MBOX_END_MSG = 0xFFFFFF06,
|
||||
};
|
||||
|
||||
#endif /* _OMAP_RPMSG_H */
|
||||
|
|
Loading…
Reference in New Issue