From patchwork Tue Oct 3 08:35:38 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Peter Ujfalusi X-Patchwork-Id: 9981927 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 0DA3860365 for ; Tue, 3 Oct 2017 08:36:49 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id EFD1A28832 for ; Tue, 3 Oct 2017 08:36:48 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E449928868; Tue, 3 Oct 2017 08:36:48 +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 9D21D28865 for ; Tue, 3 Oct 2017 08:36:47 +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=goppLmljMrRSXqvvjwaA8SfkwnT9tRvBm1hIPKrkgEA=; b=tAMmkvlju3C7po ldj69XRDVjTHDc7v1aGnRHBb/t4wZBQKMYkISOj8sarbMXP4nHChCUOL6YIgBLoDsXEUzyEp9Xybd qeUcyso2LRBdvkjm/tI80RnjQKpuIiaLBYrYEPx/4/XE3hR96CxYdsZWJ5kUnD1Iq2vjTPgsE+UnG HJruuCjcql/LkBagu0srx5mmbd1NffCYvb+m0cyzERlUTy8IHluz6j5XM/+5TVjr9gP3PwBMcYhRd 6LSrWZ8RQidvLCRol5Vzr85kQhzr2VpesYLTl+iLn29k1OseyWSWs0oHZaLbaNBTrLSXtNRV+44hZ K+4ONZDmwUweXJi08rRg==; 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 1dzIgt-0005cq-AP; Tue, 03 Oct 2017 08:36:35 +0000 Received: from lelnx193.ext.ti.com ([198.47.27.77]) by bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1dzIgL-0004vo-81 for linux-arm-kernel@lists.infradead.org; Tue, 03 Oct 2017 08:36:05 +0000 Received: from dflxv15.itg.ti.com ([128.247.5.124]) by lelnx193.ext.ti.com (8.15.1/8.15.1) with ESMTP id v938ZWFL002764; Tue, 3 Oct 2017 03:35:32 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ti.com; s=ti-com-17Q1; t=1507019732; bh=zvgTeG9CNdKyDJOXXSZCPBqeCkPB+aC4/+u6daqLxBQ=; h=From:To:CC:Subject:Date:In-Reply-To:References; b=x+ijobPYrCswdfZ4Y/yXMk/4cxOVkB/yq/6lwonZ8r/rbr//mEyMnuq+vSAyVaAKt Tai363SoSo9kxJvKc9YsqpQeCixvjC9CcrOkdugwKD5LaFxXcKs/PhrvODGJ7RTZo4 XhxJmDEgqEFzjgRuaDlH/Ne9QmnZbu5Y+GsaaT7o= Received: from DFLE112.ent.ti.com (dfle112.ent.ti.com [10.64.6.33]) by dflxv15.itg.ti.com (8.14.3/8.13.8) with ESMTP id v938ZW0E023597; Tue, 3 Oct 2017 03:35:32 -0500 Received: from DFLE103.ent.ti.com (10.64.6.24) by DFLE112.ent.ti.com (10.64.6.33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.845.34; Tue, 3 Oct 2017 03:35:32 -0500 Received: from dflp32.itg.ti.com (10.64.6.15) by DFLE103.ent.ti.com (10.64.6.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, 3 Oct 2017 03:35:32 -0500 Received: from feketebors.ti.com (ileax41-snat.itg.ti.com [10.172.224.153]) by dflp32.itg.ti.com (8.14.3/8.13.8) with ESMTP id v938ZPOm021663; Tue, 3 Oct 2017 03:35:30 -0500 From: Peter Ujfalusi To: , Subject: [PATCH v2 2/2] dmaengine: omap-dma: Implement protection for invalid max_burst Date: Tue, 3 Oct 2017 11:35:38 +0300 Message-ID: <20171003083538.11044-3-peter.ujfalusi@ti.com> X-Mailer: git-send-email 2.14.2 In-Reply-To: <20171003083538.11044-1-peter.ujfalusi@ti.com> References: <20171003083538.11044-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-20171003_013601_543141_9F85E3EA X-CRM114-Status: UNSURE ( 8.26 ) 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, linux-omap@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Russell King 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 16777215 (EN is 24bit unsigned value) so clients can take this into consideration when setting up the transfer. During slave transfer preparation check if the requested maxburst is valid. Signed-off-by: Peter Ujfalusi Cc: Russell King --- drivers/dma/omap-dma.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/dma/omap-dma.c b/drivers/dma/omap-dma.c index 8c1665c8fe33..f6dd849159d8 100644 --- a/drivers/dma/omap-dma.c +++ b/drivers/dma/omap-dma.c @@ -1288,6 +1288,10 @@ static int omap_dma_slave_config(struct dma_chan *chan, struct dma_slave_config 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(&c->cfg, cfg, sizeof(c->cfg)); return 0; @@ -1482,6 +1486,7 @@ static int omap_dma_probe(struct platform_device *pdev) od->ddev.dst_addr_widths = OMAP_DMA_BUSWIDTHS; od->ddev.directions = BIT(DMA_DEV_TO_MEM) | BIT(DMA_MEM_TO_DEV); od->ddev.residue_granularity = DMA_RESIDUE_GRANULARITY_BURST; + od->ddev.max_burst = SZ_16M - 1; /* CCEN: 24bit unsigned */ od->ddev.dev = &pdev->dev; INIT_LIST_HEAD(&od->ddev.channels); spin_lock_init(&od->lock);