From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-19.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id CA2DFC43461 for ; Mon, 19 Apr 2021 20:45:31 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9DA3E613EF for ; Mon, 19 Apr 2021 20:45:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240736AbhDSUp6 (ORCPT ); Mon, 19 Apr 2021 16:45:58 -0400 Received: from mail.kernel.org ([198.145.29.99]:54408 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240226AbhDSUpH (ORCPT ); Mon, 19 Apr 2021 16:45:07 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 0BEA5613C0; Mon, 19 Apr 2021 20:44:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1618865070; bh=OfTZhQVCkfP1iUoe6FXBgYEwvVROmP5JhRAWr8lWs4c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CRAlI7/bXqzbqYQAaSFbve3Bgq7ZESFYNXukA1SGUP+mfk/rHENVbD9euzJUmk0yE 93oTXAUB7KVdc7JpOBA0lnYQ1SzTP9soz+8TEpM8CLIUZxfwNRkVD822RS1vHXS+5O VKBOvQ7hu2rzlk9cwV/5Gmynv72lxePLTNFDivmbd6Gr8xd7/aIvlh9VDJZj4HjiQ+ ilQK1osJ8CYMRcl2KfhI0VMxGGFlJawvJZkW5PlIV5ZZt5n6epduyWaFITcWVRxAkw eBCHsGshDWMwUs6ySKGNEFakWWuUMZCnXL1Zl25jKReOMvGTXXPL0nDfkPepmNlEMu oUnrZoCZtJodA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Laurent Pinchart , Vinod Koul , Sasha Levin , dmaengine@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH AUTOSEL 5.10 07/21] dmaengine: xilinx: dpdma: Fix race condition in done IRQ Date: Mon, 19 Apr 2021 16:44:05 -0400 Message-Id: <20210419204420.6375-7-sashal@kernel.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210419204420.6375-1-sashal@kernel.org> References: <20210419204420.6375-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: dmaengine@vger.kernel.org From: Laurent Pinchart [ Upstream commit 868833fbffbe51c487df4f95d4de9194264a4b30 ] The active descriptor pointer is accessed from different contexts, including different interrupt handlers, and its access must be protected by the channel's lock. This wasn't done in the done IRQ handler. Fix it. Signed-off-by: Laurent Pinchart Link: https://lore.kernel.org/r/20210307040629.29308-3-laurent.pinchart@ideasonboard.com Signed-off-by: Vinod Koul Signed-off-by: Sasha Levin --- drivers/dma/xilinx/xilinx_dpdma.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/dma/xilinx/xilinx_dpdma.c b/drivers/dma/xilinx/xilinx_dpdma.c index d504112c609e..70b29bd079c9 100644 --- a/drivers/dma/xilinx/xilinx_dpdma.c +++ b/drivers/dma/xilinx/xilinx_dpdma.c @@ -1048,13 +1048,14 @@ static int xilinx_dpdma_chan_stop(struct xilinx_dpdma_chan *chan) */ static void xilinx_dpdma_chan_done_irq(struct xilinx_dpdma_chan *chan) { - struct xilinx_dpdma_tx_desc *active = chan->desc.active; + struct xilinx_dpdma_tx_desc *active; unsigned long flags; spin_lock_irqsave(&chan->lock, flags); xilinx_dpdma_debugfs_desc_done_irq(chan); + active = chan->desc.active; if (active) vchan_cyclic_callback(&active->vdesc); else -- 2.30.2 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6505CC433ED for ; Mon, 19 Apr 2021 20:46:20 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 16F3461403 for ; Mon, 19 Apr 2021 20:46:20 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 16F3461403 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:Cc:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=qcfNpg+dG6UEH5j9MTz0X++Xx7K7Ed++//jDGN8u6CQ=; b=pUea8s3W7qxQnhVU1pMXbh8pQ XmVehldrmPVeTlnLw50/pNXzdQqhKBzYiMPo/3Hf4xSETGFiNfr894u+QYakVwXn/0EIucQ0ZTxUO w7utZt0SHiZeJI2j2i+7Cnl8uuIUqF+Yy4BYAfF6joFx7pm5hmXhidHOvChiHBiQsL1OAobMoY7i9 Xjix4gxxsTJz56TB/U/AYQcv8NwUGe0EI2j+tUtaTzM+5TED3MNElVmZwGJbU5cdf1iD0D5M+qUN2 sZdkcT6J3b4gUHs7XyESyFuRdshpijE+Yb7avWiMEb9+3bUVNLLcMgF+HoiZJX3eFTMw0RpZtObAc mWQu7VtJg==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lYalD-00Aa5m-7p; Mon, 19 Apr 2021 20:44:47 +0000 Received: from bombadil.infradead.org ([2607:7c80:54:e::133]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lYakz-00Aa3C-NW for linux-arm-kernel@desiato.infradead.org; Mon, 19 Apr 2021 20:44:33 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender :Reply-To:Content-Type:Content-ID:Content-Description; bh=gDCC6PwNqIsMjfjWATC2JsKZcLKHUYK27/p6v0njS2k=; b=VfyppMuqeobYG4k2UvjR1zyFjh 6mR3H4E6gW+dTbG0l0+FnERIeqia4FKI35qWKWRa+KiJK5BoZSkbmFC7mnJ5kdNTm/TbcHYMsnj3j PBUHO3Vxr0myNMDBWzLcoqaMimXSJG4NBssKsFq0IufH13eQqDNVB1eLaYzyfK6t0i8LKrlpAVtZy TWT7Ve37OH+jIJWWOpisbQOo5Jgr6JvYVXF3sOM13MkvF0fPRXmcsKwL7ekbkzv2Ec2sHIM7j2u77 QKCv0O0/2eER0Zja5Q/8TzwrvRh1RzoSJHcDRE7bjzdvHkWSToteHJarLmXmrmAwR47+9NBdK8zUo 2ekYgyvQ==; Received: from mail.kernel.org ([198.145.29.99]) by bombadil.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lYakx-00BeG5-8P for linux-arm-kernel@lists.infradead.org; Mon, 19 Apr 2021 20:44:32 +0000 Received: by mail.kernel.org (Postfix) with ESMTPSA id 0BEA5613C0; Mon, 19 Apr 2021 20:44:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1618865070; bh=OfTZhQVCkfP1iUoe6FXBgYEwvVROmP5JhRAWr8lWs4c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CRAlI7/bXqzbqYQAaSFbve3Bgq7ZESFYNXukA1SGUP+mfk/rHENVbD9euzJUmk0yE 93oTXAUB7KVdc7JpOBA0lnYQ1SzTP9soz+8TEpM8CLIUZxfwNRkVD822RS1vHXS+5O VKBOvQ7hu2rzlk9cwV/5Gmynv72lxePLTNFDivmbd6Gr8xd7/aIvlh9VDJZj4HjiQ+ ilQK1osJ8CYMRcl2KfhI0VMxGGFlJawvJZkW5PlIV5ZZt5n6epduyWaFITcWVRxAkw eBCHsGshDWMwUs6ySKGNEFakWWuUMZCnXL1Zl25jKReOMvGTXXPL0nDfkPepmNlEMu oUnrZoCZtJodA== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Laurent Pinchart , Vinod Koul , Sasha Levin , dmaengine@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH AUTOSEL 5.10 07/21] dmaengine: xilinx: dpdma: Fix race condition in done IRQ Date: Mon, 19 Apr 2021 16:44:05 -0400 Message-Id: <20210419204420.6375-7-sashal@kernel.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210419204420.6375-1-sashal@kernel.org> References: <20210419204420.6375-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210419_134431_334267_D7D9556E X-CRM114-Status: GOOD ( 10.08 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Laurent Pinchart [ Upstream commit 868833fbffbe51c487df4f95d4de9194264a4b30 ] The active descriptor pointer is accessed from different contexts, including different interrupt handlers, and its access must be protected by the channel's lock. This wasn't done in the done IRQ handler. Fix it. Signed-off-by: Laurent Pinchart Link: https://lore.kernel.org/r/20210307040629.29308-3-laurent.pinchart@ideasonboard.com Signed-off-by: Vinod Koul Signed-off-by: Sasha Levin --- drivers/dma/xilinx/xilinx_dpdma.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/dma/xilinx/xilinx_dpdma.c b/drivers/dma/xilinx/xilinx_dpdma.c index d504112c609e..70b29bd079c9 100644 --- a/drivers/dma/xilinx/xilinx_dpdma.c +++ b/drivers/dma/xilinx/xilinx_dpdma.c @@ -1048,13 +1048,14 @@ static int xilinx_dpdma_chan_stop(struct xilinx_dpdma_chan *chan) */ static void xilinx_dpdma_chan_done_irq(struct xilinx_dpdma_chan *chan) { - struct xilinx_dpdma_tx_desc *active = chan->desc.active; + struct xilinx_dpdma_tx_desc *active; unsigned long flags; spin_lock_irqsave(&chan->lock, flags); xilinx_dpdma_debugfs_desc_done_irq(chan); + active = chan->desc.active; if (active) vchan_cyclic_callback(&active->vdesc); else -- 2.30.2 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel