From patchwork Tue Nov 19 14:16:40 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tero Kristo X-Patchwork-Id: 179751 Delivered-To: patch@linaro.org Received: by 2002:a92:38d5:0:0:0:0:0 with SMTP id g82csp697419ilf; Tue, 19 Nov 2019 06:17:28 -0800 (PST) X-Google-Smtp-Source: APXvYqyvodaolbuC5ZC6SWW4wpmi02eL/JUHJUZxQ5x0pEd43PChihNvX8/pCknNx/O8fQAZ42a7 X-Received: by 2002:a19:6d12:: with SMTP id i18mr4184873lfc.153.1574173048433; Tue, 19 Nov 2019 06:17:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1574173048; cv=none; d=google.com; s=arc-20160816; b=atYrJT8B0+o0MKE87mvjOfUBT1qtH8jIm91CEDeqpej3hd5kmkNMVd9RWNqH4wG6W9 OFZvCVaKcHgOUUJ0K6qd3nMwO1UboB0VZWhoOa+qScMcGsM5/dMTH6dHiJFRe0ILc10i ZPE+w4W9D4ioEh5dCGlxkAdspb7nTJXW1DnT+OGS3dKGi3+hjC220FC/x5QXAtxZbEOL fKnJi5ADQWVXfRIF9PiAEu75vIOh93sVyRML3z0JI6Uk6S+XvoQSUktcWgKqq04Om3dZ QkEZwD0W7reNWwTNgexHf9XDqv5df36EwhctL0yqSjuw98A3EwaeUkbh4zao/S8IqNAo kyBg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=Kr87n77gFeBbSKWKSZnMedn8yql6reeiLpFLg4xIjN0=; b=Ctq4VyvLwVhcJj8q0QyYIImhSwTyievyPZem/oq044l3P8gEDgbTSPLp34V/4hx4DV UDMx401QvMzfhanAJdSK6Y5OAiDfApN6HAecV3QXQ74PvtpPJg0L4xN/ndq8T9I/5nJp L9Wa1cGomJuYV7ZzxB3eX6AyuO7QSw+7VgWPN58FGoRAOL+kD00YQiYWKRHyZ4BT4hJw utSR3mUEIgkqGNw6eoy2sXoWVCWJo/VOBbDjxLJG/N6K7trJuB0LKTBEzPEpGF6/w/O5 ux2T3ArPM4Ayt3m3qYUOYSxAYHqPrL4AAgoaoSx+LJmSHfcCNtHU7KBseoWoUiq/Nxci KuTw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b="lcG2Jf/v"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s10si14693950edh.138.2019.11.19.06.17.28; Tue, 19 Nov 2019 06:17:28 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b="lcG2Jf/v"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728224AbfKSOR0 (ORCPT + 26 others); Tue, 19 Nov 2019 09:17:26 -0500 Received: from lelv0142.ext.ti.com ([198.47.23.249]:50576 "EHLO lelv0142.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728181AbfKSORV (ORCPT ); Tue, 19 Nov 2019 09:17:21 -0500 Received: from fllv0035.itg.ti.com ([10.64.41.0]) by lelv0142.ext.ti.com (8.15.2/8.15.2) with ESMTP id xAJEHKJj017670; Tue, 19 Nov 2019 08:17:20 -0600 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1574173040; bh=Kr87n77gFeBbSKWKSZnMedn8yql6reeiLpFLg4xIjN0=; h=From:To:CC:Subject:Date:In-Reply-To:References; b=lcG2Jf/vApwoM3krCe0PQ8uVBxi8Siyf6nDMrJm4edLzJwIok+jYM3Zc/c/9GcE1R 5jr4ezVFWGBUZ6tGuIJqjuXSEDHxW+FsMWQkwaMf15vzckF/WGBjiiVSvQUSrxfSeE 6MQn+PaaXTiolB25mMpylqTtLH5DkUznkPI3tJzk= Received: from DLEE104.ent.ti.com (dlee104.ent.ti.com [157.170.170.34]) by fllv0035.itg.ti.com (8.15.2/8.15.2) with ESMTP id xAJEHKR4084111; Tue, 19 Nov 2019 08:17:20 -0600 Received: from DLEE113.ent.ti.com (157.170.170.24) by DLEE104.ent.ti.com (157.170.170.34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1847.3; Tue, 19 Nov 2019 08:17:20 -0600 Received: from fllv0040.itg.ti.com (10.64.41.20) by DLEE113.ent.ti.com (157.170.170.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1847.3 via Frontend Transport; Tue, 19 Nov 2019 08:17:20 -0600 Received: from sokoban.ti.com (ileax41-snat.itg.ti.com [10.172.224.153]) by fllv0040.itg.ti.com (8.15.2/8.15.2) with ESMTP id xAJEGvZ3027070; Tue, 19 Nov 2019 08:17:18 -0600 From: Tero Kristo To: , , CC: , , , Tero Kristo Subject: [PATCHv2 10/15] remoteproc/omap: Check for undefined mailbox messages Date: Tue, 19 Nov 2019 16:16:40 +0200 Message-ID: <20191119141645.19777-11-t-kristo@ti.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191119141645.19777-1-t-kristo@ti.com> References: <20191119141645.19777-1-t-kristo@ti.com> MIME-Version: 1.0 X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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. Co-developed-by: Subramaniam Chanderashekarapuram Signed-off-by: Subramaniam Chanderashekarapuram Signed-off-by: Suman Anna Signed-off-by: Tero Kristo Reviewed-by: Bjorn Andersson --- drivers/remoteproc/omap_remoteproc.c | 6 ++++++ drivers/remoteproc/omap_remoteproc.h | 7 +++++++ 2 files changed, 13 insertions(+) -- 2.17.1 -- Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki diff --git a/drivers/remoteproc/omap_remoteproc.c b/drivers/remoteproc/omap_remoteproc.c index 4af55d1f2702..62734eaafaad 100644 --- a/drivers/remoteproc/omap_remoteproc.c +++ b/drivers/remoteproc/omap_remoteproc.c @@ -127,6 +127,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 */