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: 9525485 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 17B6D60437 for ; Thu, 19 Jan 2017 11:14:29 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 07F1428335 for ; Thu, 19 Jan 2017 11:14:29 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id F09E928500; Thu, 19 Jan 2017 11:14:28 +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 ACF0F28335 for ; Thu, 19 Jan 2017 11:14:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751828AbdASLOV (ORCPT ); Thu, 19 Jan 2017 06:14:21 -0500 Received: from mail-wm0-f53.google.com ([74.125.82.53]:34953 "EHLO mail-wm0-f53.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752187AbdASLOO (ORCPT ); Thu, 19 Jan 2017 06:14:14 -0500 Received: by mail-wm0-f53.google.com with SMTP id r126so284885282wmr.0 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=UXH9xWGMW+SGEXDInWYjK9GbdiuH+19qAn5XkDDD4i/0pPWXxarHUrd/fwT5VGOk0U //okeGIPWflao0Gc8qMFqObeI05diRsKLStLftjMM8VPADMl6Nuh43yuSgN0lAz+BN7I BSi6vfcsFB3Dqa2Ok0aWU2ExVCfAG/A/FHk1UQZSIx9sTh2/4HMpfhzjKi6pvE838GCe H12aR4iZATY5R2avzXTjvNDp+EN8wagThmhAQA1xFzOdw6K7QO9bvsa8LnYTHCEBbw0e ooNZ8teQlxSaOtvhY84s/yzuDbVKEMyO7TF1/M1fojACW7C3ks7uGBBKBwBuA5ycnW/Z pc9A== X-Gm-Message-State: AIkVDXLq9bcXtdNUTmPt/jVpATwf4rdKuiY82xrAUv65DHoYOLw8ts1c6l+DgPFlcMwyjq9h 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-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 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) {