Received: by 2002:a25:e7d8:0:0:0:0:0 with SMTP id e207csp664113ybh; Tue, 10 Mar 2020 06:07:08 -0700 (PDT) X-Google-Smtp-Source: ADFU+vsGp5LYhrkTsZEprYowV/ZU2NiN9slC0iyPvGJuRZSpkOjkvGTPWKCx0HOIZTiPH4MqVpjD X-Received: by 2002:aca:3f09:: with SMTP id m9mr996393oia.55.1583845628288; Tue, 10 Mar 2020 06:07:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1583845628; cv=none; d=google.com; s=arc-20160816; b=BWRgPVeqGOzCkt7nKXSHhbVfzTFh3w2WOEhEGxZMDGOpPqoPvq3slLe7qxVm1k9XpA 0zg5b0hSi+3bmijSNkqXddp1Jhm4J1X9/PuiIDb9cZG5qGvROjM59TobxtZXZwizzMkf jnKupo8SPHcFgIhPo3YzWs0ihCzJN7EnC4r8AGCVWDvGwhkh2Y0GjSO+68IWb/7S/O5b eCyXkN8mS5EpeljPAQV/63BugoPL79fhCVlBygztG3SnXlK7uguwT8LR0CkA7gaiAkl6 FhRzC+LoNqmE8gXX3B/TvcgVkH/dXkdsZNjDIp+ZexH38+Ml8LmW4VPNG0j783g1SBeY B7OQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=bDT82bE6c72Hqi/m4Z5aHTqQ0SORdmvYdDq7GDlLHW4=; b=xRD8HqoFyu3nDDhJkjQVpjlCjFfCbtw+9Cg51GzRsjuPySCn+ykNTwtz0FNU7flSqN CYgBh2PpYhHLgN4nKY9sSjXB7ES5pf7nGNdNlLnQ3ic2c2n2Ee2orAw75aeQpREdE0Vu Foc3wGflkgoR8J98/GjPmyuwcKQEpurLH7+dv5bXZRrOp5+rvbX7wM/tbmPrqYdpa3s/ BQzVmgTy75Kxk652lXnjhWeICQwMQWt18QkQUt+OtcbrfuL5QyerQNH+h5ViJhv+LfE6 RoOiVIBhrBpYtwkUH5sPUcWc8qNAzrJ6rdFN+ui2ajxBgmONyHN3ar/xxU7EosK4H+ch FzLw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=1zSDjb9j; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y25si5842700otj.304.2020.03.10.06.06.35; Tue, 10 Mar 2020 06:07:08 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=1zSDjb9j; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730519AbgCJNDG (ORCPT + 99 others); Tue, 10 Mar 2020 09:03:06 -0400 Received: from mail.kernel.org ([198.145.29.99]:47458 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730512AbgCJNDF (ORCPT ); Tue, 10 Mar 2020 09:03:05 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 454EA208E4; Tue, 10 Mar 2020 13:03:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1583845384; bh=hN6a469Tivn8u3TsieBjrDtp/aqNDl1Fq/Mz22z/h+0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=1zSDjb9jnGVLHKAyvG0QgnBWcxsflbxsotpCJAfN5l8XkWRxNkHjpcGcq1YyJsM1r OiGpdSWf2aEtM/BNU6pXpTxELToxzmGHXBbd+Y+H2u8KVENXi7JjxnS+rGfPVp7CCB cwFe5JwIyBeAH2WOAhnE+2iPN1qcy/s2mK5NMX1Y= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Martin Fuzzey , Fabio Estevam , Vinod Koul Subject: [PATCH 5.5 114/189] dmaengine: imx-sdma: fix context cache Date: Tue, 10 Mar 2020 13:39:11 +0100 Message-Id: <20200310123651.275455469@linuxfoundation.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200310123639.608886314@linuxfoundation.org> References: <20200310123639.608886314@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Martin Fuzzey commit d288bddd8374e0a043ac9dde64a1ae6a09411d74 upstream. There is a DMA problem with the serial ports on i.MX6. When the following sequence is performed: 1) Open a port 2) Write some data 3) Close the port 4) Open a *different* port 5) Write some data 6) Close the port The second write sends nothing and the second close hangs. If the first close() is omitted it works. Adding logs to the the UART driver shows that the DMA is being setup but the callback is never invoked for the second write. This used to work in 4.19. Git bisect leads to: ad0d92d: "dmaengine: imx-sdma: refine to load context only once" This commit adds a "context_loaded" flag used to avoid unnecessary context setups. However the flag is only reset in sdma_channel_terminate_work(), which is only invoked in a worker triggered by sdma_terminate_all() IF there is an active descriptor. So, if no active descriptor remains when the channel is terminated, the flag is not reset and, when the channel is later reused the old context is used. Fix the problem by always resetting the flag in sdma_free_chan_resources(). Cc: stable@vger.kernel.org Signed-off-by: Martin Fuzzey Fixes: ad0d92d7ba6a ("dmaengine: imx-sdma: refine to load context only once") Reviewed-by: Fabio Estevam Link: https://lore.kernel.org/r/1580305274-27274-1-git-send-email-martin.fuzzey@flowbird.group Signed-off-by: Vinod Koul Signed-off-by: Greg Kroah-Hartman --- drivers/dma/imx-sdma.c | 1 + 1 file changed, 1 insertion(+) --- a/drivers/dma/imx-sdma.c +++ b/drivers/dma/imx-sdma.c @@ -1335,6 +1335,7 @@ static void sdma_free_chan_resources(str sdmac->event_id0 = 0; sdmac->event_id1 = 0; + sdmac->context_loaded = false; sdma_set_channel_priority(sdmac, 0);