From patchwork Mon Jan 9 16:06:56 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandre Bailon X-Patchwork-Id: 9505371 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 33179606E1 for ; Mon, 9 Jan 2017 16:09:06 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 24BAF28493 for ; Mon, 9 Jan 2017 16:09:06 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 19667284AA; Mon, 9 Jan 2017 16:09:06 +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 CF46428493 for ; Mon, 9 Jan 2017 16:09:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1762340AbdAIQIC (ORCPT ); Mon, 9 Jan 2017 11:08:02 -0500 Received: from mail-wm0-f51.google.com ([74.125.82.51]:35546 "EHLO mail-wm0-f51.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S970266AbdAIQH3 (ORCPT ); Mon, 9 Jan 2017 11:07:29 -0500 Received: by mail-wm0-f51.google.com with SMTP id a197so102722489wmd.0 for ; Mon, 09 Jan 2017 08:07:29 -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=lUVLVO1G6OlC7u0Y45nbFqduwOOO8dH/5hpMjOTQpq8=; b=hmoKdrrOHw90qx/YejqAO6AMePph8Kx73NmE0b+s73STzCipUZBYDTCwgI3Ea3eb7y j1oKKO9VYNYgsypg3n6bP201kruaUlU/miuuw+F0Y/fTxDm14lAEsRYR0FWVJSZlPtW6 P+eA6JEjp409LKwJykAXeJr9mYVP+zWmpkPOj/g02o8tjvbV5ClRaceaHknBGmz0UcbU MxomxekpV7AhWeysTY1KLLsmWIGngB435OvrmyOKJm2cAznDAC+4Gkhu7/pZy9WMjs66 cIyE6JFA/EhHKV6aoV2J816Kl0ZA9SG5LRXil/owkqIMLcC2T/JAGjwhp79hug363awS wJOg== 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=lUVLVO1G6OlC7u0Y45nbFqduwOOO8dH/5hpMjOTQpq8=; b=Rmkgo+Hksad8+8ZxoScmKCuNjxSnLslZEoAE+uD8ofN/MVAU83fxMOmlGolpVMSs4h GsUgUkTPP7Tv3LkPPsVm6g/tF3Dd+tHNRyMJxPdW29JLn7HCy8z+WFfH5yUXkULW31Hj 7lB+3AfOlWL9Aez9aNuuP+AcUnOFv4rhjyQ+0CPaBoPaAqNi0QPUWE1zu0S3F4XrfeM9 bNqOp3MTZJm8IzziAJfp5nZGph/OHpzqMfbzwTkv+J2cfDGtGv37aWkE4ZDaDdt+xk2i CFX0QIdW7obJsSIYsfE3VTNZmWFTEkpWYUYyC+Vv94iApYQ0efecgYsgbjtQXIhF26om Wlwg== X-Gm-Message-State: AIkVDXJ74qfyOHkoV0fe34HKD+4aHVstR1V3Rk8qKFOr63waulZangeI7uVn4pc8ldKrF2zx X-Received: by 10.223.176.142 with SMTP id i14mr279585wra.4.1483978048455; Mon, 09 Jan 2017 08:07:28 -0800 (PST) Received: from localhost.localdomain ([90.63.244.31]) by smtp.gmail.com with ESMTPSA id w18sm19656244wme.9.2017.01.09.08.07.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 09 Jan 2017 08:07:28 -0800 (PST) From: Alexandre Bailon To: vinod.koul@intel.com Cc: dmaengine@vger.kernel.org, linux-usb@vger.kernel.org, nsekhar@ti.com, khilman@baylibre.com, ptitiano@baylibre.com, tony@atomide.com, linux-omap@vger.kernel.org, devicetree@vger.kernel.org, robh+dt@kernel.org, b-liu@ti.com, Alexandre Bailon Subject: [PATCH 11/11] dmaengine: cppi41: Fix teardown warnings Date: Mon, 9 Jan 2017 17:06:56 +0100 Message-Id: <20170109160656.3470-12-abailon@baylibre.com> X-Mailer: git-send-email 2.10.2 In-Reply-To: <20170109160656.3470-1-abailon@baylibre.com> References: <20170109160656.3470-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, neither 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). Use the teardown queue as completion queue during the teardown. 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 0060391..eeab29d 100644 --- a/drivers/dma/cppi41.c +++ b/drivers/dma/cppi41.c @@ -698,7 +698,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); @@ -709,7 +709,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) {