From patchwork Tue Jan 24 09:58:48 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandre Bailon X-Patchwork-Id: 9534711 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 E64C060434 for ; Tue, 24 Jan 2017 09:59:13 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id DB23425D99 for ; Tue, 24 Jan 2017 09:59:13 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id CFAFA26B41; Tue, 24 Jan 2017 09:59:13 +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=-6.3 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI, RCVD_IN_SORBS_SPAM, T_DKIM_INVALID autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8DCC625D99 for ; Tue, 24 Jan 2017 09:59:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750815AbdAXJ7B (ORCPT ); Tue, 24 Jan 2017 04:59:01 -0500 Received: from mail-wm0-f46.google.com ([74.125.82.46]:35317 "EHLO mail-wm0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750813AbdAXJ67 (ORCPT ); Tue, 24 Jan 2017 04:58:59 -0500 Received: by mail-wm0-f46.google.com with SMTP id r126so173242504wmr.0 for ; Tue, 24 Jan 2017 01:58:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=MhKkIRkinMVek0LL5F1GBXKHJMEiupRRDHiIG4IV0FM=; b=aJ6ln5PiopJGQSEDFCmqBulAPHzBCpNoOXXKtOcsYN9ZiHzgavdTKrXOFNWrQfjroe z5JAN88tsz7swP+c2QYFopS6Rbviwkdg9R11TULh5BzTTzziijj6/AAAZ8jbCqcui95v uKGOeV9xskfgJ6fq8hQOzeGFd3n2IFcgiMXdmI6PZ6815KZeBgys3wUA5ONK67j27v4+ I95bJHEvsEILGJE2oLNyoNK81KQ1iPIbUeqKKn9GhXszWqtErUGMNAaEgZq+K8/gnPQw l8cSpL/GlVpR6MYNGEm2dee6Qt1DhrM+x+Md4VHgJickdzFyIe+zoZcQttpMOriLDjYU OAHg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=MhKkIRkinMVek0LL5F1GBXKHJMEiupRRDHiIG4IV0FM=; b=tGUd4NYF1EKhf39Z8f4zzOXZC/dxQuO6qJn5E7kOsN0HY8dtGH/8nT7kJ8yhbxi3l9 0AD8aVvfHfkooSPX7UnrgYL0VB0M7Z9/9Bodo1O+o0bIHEBpHJELR5ti6hAApMXe4f1C fD2vQv0p8GXKMR9yxWYB8VNIsAyG+NnXpgTfAsz0H9IF2Np6i66MJNEpgzZ3jYl1ghv6 gVjPyR8qxzGe/IH6p8B5L1VQoowg1/pRUCgkMDin+tVo37d6E297otXjDq1SCrk8Lvf9 fW9bhrVKcAVI9F0/fS028hBZM2hSNEvtIKdZKCEbJHnPU72Q6lsfe68b84Yjz4iHX9GR ZPNQ== X-Gm-Message-State: AIkVDXIFipXJx9dHvnEXu8sYnQS83fyuKqfpO5HSltm0kebC8APr19+nd2JRxJ10wAJvscRG X-Received: by 10.223.156.9 with SMTP id f9mr27666659wrc.157.1485251938429; Tue, 24 Jan 2017 01:58:58 -0800 (PST) Received: from localhost.localdomain ([90.63.244.31]) by smtp.gmail.com with ESMTPSA id l10sm16243815wrb.44.2017.01.24.01.58.57 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 24 Jan 2017 01:58:58 -0800 (PST) From: Alexandre Bailon To: vinod.koul@intel.com Cc: dmaengine@vger.kernel.org, nsekhar@ti.com, khilman@baylibre.com, ptitiano@baylibre.com, tony@atomide.com, linux-omap@vger.kernel.org, linux-usb@vger.kernel.org, b-liu@ti.com, sergei.shtylyov@cogentembedded.com, devicetree@vger.kernel.org, robh+dt@kernel.org, Alexandre Bailon Subject: [PATCH v3 3/3] dmaengine: cppi41: Fix teardown warnings Date: Tue, 24 Jan 2017 10:58:48 +0100 Message-Id: <20170124095848.14593-4-abailon@baylibre.com> X-Mailer: git-send-email 2.10.2 In-Reply-To: <20170124095848.14593-1-abailon@baylibre.com> References: <20170124095848.14593-1-abailon@baylibre.com> Sender: linux-omap-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-omap@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP During the teardown of a RX channel, because there is only one completion queue available for RX channel, descriptor of another channel may be popped which will cause 2 warnings: - the first one because we popped a wrong descriptor (neither the channel's descriptor, nor the teardown descriptor). - the second one happen during the teardown of another channel, because we can't find the channel descriptor (that is, the one that caused the first warning). To avoid that, use one free queue instead of a transmit completion queue. Note that fix doesn't fix all the teardown warnings: I still get some when I run some corner case. Signed-off-by: Alexandre Bailon --- drivers/dma/cppi41.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/dma/cppi41.c b/drivers/dma/cppi41.c index 5c501da..9fdd824 100644 --- a/drivers/dma/cppi41.c +++ b/drivers/dma/cppi41.c @@ -629,7 +629,7 @@ static int cppi41_tear_down_chan(struct cppi41_channel *c) if (!c->is_tx) { reg |= GCR_STARV_RETRY; reg |= GCR_DESC_TYPE_HOST; - reg |= c->q_comp_num; + reg |= cdd->td_queue.complete; } reg |= GCR_TEARDOWN; cppi_writel(reg, c->gcr_reg); @@ -640,7 +640,7 @@ static int cppi41_tear_down_chan(struct cppi41_channel *c) if (!c->td_seen || !c->td_desc_seen) { desc_phys = cppi41_pop_desc(cdd, cdd->td_queue.complete); - if (!desc_phys) + if (!desc_phys && c->is_tx) desc_phys = cppi41_pop_desc(cdd, c->q_comp_num); if (desc_phys == c->desc_phys) {