From patchwork Thu Jan 19 11:13:34 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandre Bailon X-Patchwork-Id: 91856 Delivered-To: patch@linaro.org Received: by 10.140.20.99 with SMTP id 90csp223267qgi; Thu, 19 Jan 2017 03:14:26 -0800 (PST) X-Received: by 10.99.66.198 with SMTP id p189mr9717791pga.30.1484824466286; Thu, 19 Jan 2017 03:14:26 -0800 (PST) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z86si3250480pfj.81.2017.01.19.03.14.26; Thu, 19 Jan 2017 03:14:26 -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 S1752143AbdASLOW (ORCPT + 4 others); Thu, 19 Jan 2017 06:14:22 -0500 Received: from mail-wm0-f53.google.com ([74.125.82.53]:38172 "EHLO mail-wm0-f53.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752185AbdASLOO (ORCPT ); Thu, 19 Jan 2017 06:14:14 -0500 Received: by mail-wm0-f53.google.com with SMTP id r144so71724013wme.1 for ; Thu, 19 Jan 2017 03:13:45 -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=dMizHBylMzXYMQ1+urGiQqCmqRyGyctiG9CjLDTGGdg=; b=KR7+7oC3ikMZCB11YhS/lkrC1zU4okmCR5BgABauvaGTlK4myc23CupsyE3Qzw/eVv gEJSitfxtHfyDljF6fVqKk8FYBmUbbxoPlhX4PhJqy+VvV/BcoAr7nnuGlx2WNFC5FX6 fdjoygxn3puqXUZtzRhYdQDTceGrqFU6iINeDorRIhlD8sAYYBPILxOYYePtLOBUXnkX QSW+DLzSnLuY8bmeK0kjtmX+DE6weh8A8MPU28pJvAzyt+xtZ85A4R9/ZRkYcbB5RMV6 iG8VNFWL6oJqIajKR/4OmcZnsQMKQTv6u0gS7GdnWhcNIZBtgx32VPv2g3fMn0XKLMKR ldZA== 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=dMizHBylMzXYMQ1+urGiQqCmqRyGyctiG9CjLDTGGdg=; b=k0sj/cg/DH8ngegMSeHmri5+EBfUBMgHQxVMg2e6DhozF0sqSR/SfCmIF6Ud1u4SRa L5YcC2J66MevGbsPXV4XDuBJqDYhVOFbmwxV+59GTTAehE+SrGW+6AXI8bnrJ/5YCrtP QIZ8sCH6sX+hVRDWeaVqpSNV4YY29lKFns+IVu0NhHloZLk3LyBmwcrU2M15prp+bWzI 6V2PL7xMR3qbpMLWLox75to4L8UFFkIuqbHGym0HrtcWdwEHjFIwGqw1KXhxqn7qKGD7 QG/oTT4TD40UHd0Qj0ruv9Nqm8iETQwODbL/fdwxjFAdy1eEVqvAOVuzqseU3pZEwEzR 15ew== X-Gm-Message-State: AIkVDXJ7vANeK5ZsmF8QbTwQkL65Kem1pYWuE4Uf6F5xllm3mFs1YHIznB08Yb0OzX0v4EFk X-Received: by 10.28.103.69 with SMTP id b66mr6313143wmc.73.1484824424787; Thu, 19 Jan 2017 03:13:44 -0800 (PST) Received: from localhost.localdomain ([90.63.244.31]) by smtp.gmail.com with ESMTPSA id g75sm12117028wme.5.2017.01.19.03.13.43 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 19 Jan 2017 03:13:44 -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, b-liu@ti.com, sergei.shtylyov@cogentembedded.com, grygorii.strashko@ti.com, linux-usb@vger.kernel.org, Alexandre Bailon Subject: [PATCH v3 3/3] dmaengine: cppi41: Fix teardown warnings Date: Thu, 19 Jan 2017 12:13:34 +0100 Message-Id: <20170119111334.14718-4-abailon@baylibre.com> X-Mailer: git-send-email 2.10.2 In-Reply-To: <20170119111334.14718-1-abailon@baylibre.com> References: <20170119111334.14718-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, 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(-) -- 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 f6f2d84..cd30fd3 100644 --- a/drivers/dma/cppi41.c +++ b/drivers/dma/cppi41.c @@ -630,7 +630,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); @@ -641,7 +641,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) {