Received: by 2002:a25:b794:0:0:0:0:0 with SMTP id n20csp2759032ybh; Mon, 5 Aug 2019 06:24:04 -0700 (PDT) X-Google-Smtp-Source: APXvYqyYpClGGGkUr1L+xyC7CRmVxINoNpyZNJWVrQqb3O4zp+ZOcSuvWE9p/6Y2OnvHXxUG+jGS X-Received: by 2002:a17:902:9041:: with SMTP id w1mr31163569plz.132.1565011444498; Mon, 05 Aug 2019 06:24:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1565011444; cv=none; d=google.com; s=arc-20160816; b=ofiCFtZaz0MzAlTdXlJpoAUUqm3d7ap0sYAJu/FJdulqx0x0fUJzzdh2nqG1TJVsCW noDDtdr8p9+7F7bNixMsI3h2/mAN9DE2C/Jy8JGEcSBqNezUG+5lAsFU2JbB0ZTGyP+y QA6jkaNV2hwzRMzkcQI5n81Dg6peTVEf0IbGbuIN1fqTpJCinBftIKQGAR4ie2/em3cx Fye2e8n1/38KfGTwigftiKr16c72H/JJSQbf32KCTGHwvaL6mHQUaBd8fkX5yzdK+/M1 TKOwo0gFcBb7m2QsR2tv4hReuVMW7FF0AUxK6bkidUgxpi6KuVvxfn+i/FOYoTR1Qww7 VwGA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=S3S67jOP5DIxKYHGxPI8XGfROMW/OR+lYVz6H553emE=; b=rTXtx+HrDj6EYXVJq/ROTTswQqPVcAxOFZKfbbIzgsUG46wca277C14PVb/V7SRgcb aBKnEAy0Ve3GMOVJSB/nm0dIUiU0BjdmQiACNDs1ooHOYz3WKVhiL4iFvFjQXaUz6vBe hfb1o+O2ZML2M2m6xjqL97eVM5EgE3wtkW8OcJRO2FCTi6JNVxcsy9Zh0NepZKEovhBi m7kRt7lBJI/aD9l7JXlISkK4aRbGYoIOd+RP9i9mSRVIw1VF9N5D/rdpJ0RHTa02uBuF mEKXLE/oIOpjW4h306Qyy6Rc42aRnKUVL6eXxHrr882cw5AEwk30nsiAWdZGtydzNc8a nmXQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=ZGnI2N96; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id t34si5547814plb.29.2019.08.05.06.23.49; Mon, 05 Aug 2019 06:24:04 -0700 (PDT) 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=@kernel.org header.s=default header.b=ZGnI2N96; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730590AbfHENVw (ORCPT + 99 others); Mon, 5 Aug 2019 09:21:52 -0400 Received: from mail.kernel.org ([198.145.29.99]:58080 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729353AbfHENVt (ORCPT ); Mon, 5 Aug 2019 09:21:49 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 237F32067D; Mon, 5 Aug 2019 13:21:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1565011308; bh=RXq82yXBtpwWT7EC+LA8Ru3p7SQOpZ4Adeaw98q+AbA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZGnI2N964EhzcUj/8TCZx5ot0NnHMzHU1nh7eoatTscRAfe3/h0uOeIz+n1VdCoXL 7UPc0XRDpSbNU8ceV4ktv1HY0QaMhsDPpZ48UGzHho6iIw8nqDS0sIqKgBgpQy4BlT AXsuI7wqUCOHEU2UQihPslzv4zGLjAxV9Z5u4RjA= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Dmitry Osipenko , Jon Hunter , Vinod Koul , Sasha Levin Subject: [PATCH 5.2 011/131] dmaengine: tegra-apb: Error out if DMA_PREP_INTERRUPT flag is unset Date: Mon, 5 Aug 2019 15:01:38 +0200 Message-Id: <20190805124952.183362810@linuxfoundation.org> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190805124951.453337465@linuxfoundation.org> References: <20190805124951.453337465@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org [ Upstream commit dc161064beb83c668e0f85766b92b1e7ed186e58 ] Apparently driver was never tested with DMA_PREP_INTERRUPT flag being unset since it completely disables interrupt handling instead of skipping the callbacks invocations, hence putting channel into unusable state. The flag is always set by all of kernel drivers that use APB DMA, so let's error out in otherwise case for consistency. It won't be difficult to support that case properly if ever will be needed. Signed-off-by: Dmitry Osipenko Acked-by: Jon Hunter Signed-off-by: Vinod Koul Signed-off-by: Sasha Levin --- drivers/dma/tegra20-apb-dma.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/dma/tegra20-apb-dma.c b/drivers/dma/tegra20-apb-dma.c index ef317c90fbe1e..79e9593815f12 100644 --- a/drivers/dma/tegra20-apb-dma.c +++ b/drivers/dma/tegra20-apb-dma.c @@ -977,8 +977,12 @@ static struct dma_async_tx_descriptor *tegra_dma_prep_slave_sg( csr |= tdc->slave_id << TEGRA_APBDMA_CSR_REQ_SEL_SHIFT; } - if (flags & DMA_PREP_INTERRUPT) + if (flags & DMA_PREP_INTERRUPT) { csr |= TEGRA_APBDMA_CSR_IE_EOC; + } else { + WARN_ON_ONCE(1); + return NULL; + } apb_seq |= TEGRA_APBDMA_APBSEQ_WRAP_WORD_1; @@ -1120,8 +1124,12 @@ static struct dma_async_tx_descriptor *tegra_dma_prep_dma_cyclic( csr |= tdc->slave_id << TEGRA_APBDMA_CSR_REQ_SEL_SHIFT; } - if (flags & DMA_PREP_INTERRUPT) + if (flags & DMA_PREP_INTERRUPT) { csr |= TEGRA_APBDMA_CSR_IE_EOC; + } else { + WARN_ON_ONCE(1); + return NULL; + } apb_seq |= TEGRA_APBDMA_APBSEQ_WRAP_WORD_1; -- 2.20.1