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: 90515 Delivered-To: patch@linaro.org Received: by 10.140.20.99 with SMTP id 90csp152167qgi; Mon, 9 Jan 2017 08:08:27 -0800 (PST) X-Received: by 10.99.100.3 with SMTP id y3mr33529790pgb.36.1483978107343; Mon, 09 Jan 2017 08:08:27 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b72si89270012pli.151.2017.01.09.08.08.27; Mon, 09 Jan 2017 08:08:27 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-usb-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@baylibre-com.20150623.gappssmtp.com; spf=pass (google.com: best guess record for domain of linux-usb-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-usb-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S970253AbdAIQIZ (ORCPT + 4 others); Mon, 9 Jan 2017 11:08:25 -0500 Received: from mail-wm0-f48.google.com ([74.125.82.48]:35546 "EHLO mail-wm0-f48.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S970261AbdAIQH3 (ORCPT ); Mon, 9 Jan 2017 11:07:29 -0500 Received: by mail-wm0-f48.google.com with SMTP id a197so102722475wmd.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=EMJ2xTCoaF798par3e6lzsDpmk4CtQu4cGCL90LDtYoXRAnPm/xFbdIDkWu8XZGjfx lPTP9Laeh4srn/cDiX/OhbOCPOmmWp3jrlMj91d77kWsFJEM/y6TmF5thkjR3vnTimNz nQsejTCODzf8//NUHixY1vTzbVl+hEw5RoOjjkT+xj9HvsJ2/+ZUwgRcsHU/O0ubWDWW hhSDpoSM0KSFBPMBOHRLGlsNGfRiXJIj2WCzYsXKEUmvzNgrfEy/i7j6aZ1nfe6BzTRK AZiApfCKjKGRanwzno9waqdY2bdIq2SZdy//fKt7HQPp9tyRJ7jHemmE9Cu+RvPgMf6j YBxw== X-Gm-Message-State: AIkVDXLpidz1OrgXvlHJsOhuCgl9B7R1suc6wQ3tzQ32dzgjUwu9TX5qZuzHdAeSShoFQ0O1 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-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org 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(-) -- 2.10.2 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html 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) {