From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Subject: Re: [PATCH 11/17] remoteproc/omap: Check for undefined mailbox messages References: <20191028124238.19224-1-t-kristo@ti.com> <20191028124238.19224-12-t-kristo@ti.com> <20191111233919.GM3108315@builder> From: Tero Kristo Message-ID: Date: Tue, 12 Nov 2019 10:38:47 +0200 MIME-Version: 1.0 In-Reply-To: <20191111233919.GM3108315@builder> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit To: Bjorn Andersson Cc: ohad@wizery.com, linux-remoteproc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org, s-anna@ti.com List-ID: On 12/11/2019 01:39, Bjorn Andersson wrote: > On Mon 28 Oct 05:42 PDT 2019, Tero Kristo wrote: > >> From: Suman Anna >> >> 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. >> >> Signed-off-by: Subramaniam Chanderashekarapuram >> Signed-off-by: Suman Anna > > This should either have a "Co-developed-by" or Suman should be the first > one. Let me swap that. -Tero > >> Signed-off-by: Tero Kristo > > Reviewed-by: Bjorn Andersson > > Regards, > Bjorn > >> --- >> drivers/remoteproc/omap_remoteproc.c | 6 ++++++ >> drivers/remoteproc/omap_remoteproc.h | 7 +++++++ >> 2 files changed, 13 insertions(+) >> >> diff --git a/drivers/remoteproc/omap_remoteproc.c b/drivers/remoteproc/omap_remoteproc.c >> index e46bb4c790d7..016d5beda195 100644 >> --- a/drivers/remoteproc/omap_remoteproc.c >> +++ b/drivers/remoteproc/omap_remoteproc.c >> @@ -124,6 +124,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); >> diff --git a/drivers/remoteproc/omap_remoteproc.h b/drivers/remoteproc/omap_remoteproc.h >> index 1e6fef753c4f..18f522617683 100644 >> --- a/drivers/remoteproc/omap_remoteproc.h >> +++ b/drivers/remoteproc/omap_remoteproc.h >> @@ -31,6 +31,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, >> @@ -39,6 +45,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 */ >> -- >> 2.17.1 >> >> -- -- Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki