From patchwork Tue Sep 12 10:44:20 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Peter Ujfalusi X-Patchwork-Id: 9948969 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 8337A603F3 for ; Tue, 12 Sep 2017 10:45:20 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7D67428F13 for ; Tue, 12 Sep 2017 10:45:20 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 72E7528F19; Tue, 12 Sep 2017 10:45:20 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.2 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 1864528F11 for ; Tue, 12 Sep 2017 10:45:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=tc4GNUBzlPoPWTjZ/FvJ0vrqb58xuNJIF/zjnllnRFI=; b=Ode+7S/ALmPS+B zfSn6Hwpv/avrwTn0x7ccHGdF9VgzlH35xJLpeuxv0yc0mlRllwYItBiPGYyETQTlfzUkjPyumE4X +JBLAXYqNaNOVXiivVFV+FDc9hC18nqMtnRjKze9OIp51htttANDZAe43Q0TBoFflE7WOTwoYR0NI oIIovcmzA4IYd+bFBrJdiOWe24R4vREOVBtCvzinURMogCD12KYCStFR+efgBaWrAQrZrbsWgh9al oKnTUiNFJKPi0GXbFaq14Z3LEmb16kNvMzwRkBTtywdZQzfk8kseFcNkMEgmllEm7jAtM+r+84nyY 8OH/JOx8VclDT8BTK8eA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux)) id 1drigd-0000OS-Sp; Tue, 12 Sep 2017 10:44:59 +0000 Received: from lelnx194.ext.ti.com ([198.47.27.80]) by bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1drigZ-0000Kz-5P for linux-arm-kernel@lists.infradead.org; Tue, 12 Sep 2017 10:44:57 +0000 Received: from dflxv15.itg.ti.com ([128.247.5.124]) by lelnx194.ext.ti.com (8.15.1/8.15.1) with ESMTP id v8CAiTQB016598; Tue, 12 Sep 2017 05:44:29 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ti.com; s=ti-com-17Q1; t=1505213069; bh=fbCHR3Ke4MLlWfJjPY5XWtqHcKkeqC0PbwvYGw5Jqx0=; h=From:To:CC:Subject:Date:In-Reply-To:References; b=D4EGEbzZTYORFceZuYEe+JnMvbziFQwsYQmNZHB19Q3Q3JR4CFw8i4BiWW/F9R/1m f/AyBV1AD5NyXarmbGGBchTnbffDaamRGl8i1vzZpf70OZoNLtOTm1FC28qirUnsdk amfjSpEkkbwIX7O6BjqdU4TiM1GYb4J23e6nKcqA= Received: from DLEE104.ent.ti.com (dlee104.ent.ti.com [157.170.170.34]) by dflxv15.itg.ti.com (8.14.3/8.13.8) with ESMTP id v8CAiT12032305; Tue, 12 Sep 2017 05:44:29 -0500 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_256_CBC_SHA384_P256) id 15.1.845.34; Tue, 12 Sep 2017 05:44:29 -0500 Received: from dlep32.itg.ti.com (157.170.170.100) by DLEE113.ent.ti.com (157.170.170.24) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.845.34 via Frontend Transport; Tue, 12 Sep 2017 05:44:29 -0500 Received: from feketebors.ti.com (ileax41-snat.itg.ti.com [10.172.224.153]) by dlep32.itg.ti.com (8.14.3/8.13.8) with ESMTP id v8CAiOu2007788; Tue, 12 Sep 2017 05:44:27 -0500 From: Peter Ujfalusi To: , Subject: [PATCH 1/5] dmaengine: edma: Implement protection for invalid max_burst Date: Tue, 12 Sep 2017 13:44:20 +0300 Message-ID: <20170912104424.18495-2-peter.ujfalusi@ti.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20170912104424.18495-1-peter.ujfalusi@ti.com> References: <20170912104424.18495-1-peter.ujfalusi@ti.com> MIME-Version: 1.0 X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20170912_034455_329493_8EF67208 X-CRM114-Status: UNSURE ( 7.71 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: dmaengine@vger.kernel.org, t-kristo@ti.com, linux-omap@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP Set the device's max_burst to 32767 (CIDX is 16bit signed value) so clients can take this into consideration when setting up the trasnfer. During slave transfer preparation check if the requested maxburst is valid. Signed-off-by: Peter Ujfalusi --- drivers/dma/edma.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/dma/edma.c b/drivers/dma/edma.c index 3879f80a4815..6970355abdc9 100644 --- a/drivers/dma/edma.c +++ b/drivers/dma/edma.c @@ -891,6 +891,10 @@ static int edma_slave_config(struct dma_chan *chan, cfg->dst_addr_width == DMA_SLAVE_BUSWIDTH_8_BYTES) return -EINVAL; + if (cfg->src_maxburst > chan->device->max_burst || + cfg->dst_maxburst > chan->device->max_burst) + return -EINVAL; + memcpy(&echan->cfg, cfg, sizeof(echan->cfg)); return 0; @@ -1855,6 +1859,7 @@ static void edma_dma_init(struct edma_cc *ecc, bool legacy_mode) s_ddev->dst_addr_widths = EDMA_DMA_BUSWIDTHS; s_ddev->directions |= (BIT(DMA_DEV_TO_MEM) | BIT(DMA_MEM_TO_DEV)); s_ddev->residue_granularity = DMA_RESIDUE_GRANULARITY_BURST; + s_ddev->max_burst = SZ_32K - 1; /* CIDX: 16bit signed */ s_ddev->dev = ecc->dev; INIT_LIST_HEAD(&s_ddev->channels);