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=-9.1 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, 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 610EAC31E4B for ; Fri, 14 Jun 2019 20:39:33 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 2E0002084D for ; Fri, 14 Jun 2019 20:39:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1560544773; bh=kOj2ED/pks+yCY9Anj6LUlMl2iZ4JhcYhRf7j7D8cwc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=c671HDIAsbn5nY3uy/6rbOgTUkvP7ZLmUhOYcl0W8sVLn86NdATZEO6Z+KZl5Pvuf fejNQSOIiCp0CNakCUcKkmcOcG1Z5q42xbjG05U/uVtCEHf15slMA0MQSPMDWJHtOh x43RYKyXVtpDdOR2h1uKCU4emBHsMFohU8MV6CpM= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728247AbfFNUjX (ORCPT ); Fri, 14 Jun 2019 16:39:23 -0400 Received: from mail.kernel.org ([198.145.29.99]:50434 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726392AbfFNU2v (ORCPT ); Fri, 14 Jun 2019 16:28:51 -0400 Received: from sasha-vm.mshome.net (unknown [131.107.159.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id AE17121850; Fri, 14 Jun 2019 20:28:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1560544130; bh=kOj2ED/pks+yCY9Anj6LUlMl2iZ4JhcYhRf7j7D8cwc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gcuvFwGBOVKYpzwc8HQVfWCan9JVm3+UIl4rHWNMIj3YB0p4ewOIFgTiG5lXg1u3a 0sd1io1M6CAYW1FPQRE2xzBX0IvArtsuSNyq/S64v8ntPiGSNx2C18oVbWZ8aCtFnR RMeqFxOqDcby5yHrthXrM1iZPzgRH42GRGfU3wms= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Baolin Wang , Vinod Koul , Sasha Levin , dmaengine@vger.kernel.org Subject: [PATCH AUTOSEL 5.1 07/59] dmaengine: sprd: Add validation of current descriptor in irq handler Date: Fri, 14 Jun 2019 16:27:51 -0400 Message-Id: <20190614202843.26941-7-sashal@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190614202843.26941-1-sashal@kernel.org> References: <20190614202843.26941-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Baolin Wang [ Upstream commit 58152b0e573e5581c4b9ef7cf06d2e9fafae27d4 ] When user terminates one DMA channel to free all its descriptors, but at the same time one transaction interrupt was triggered possibly, now we should not handle this interrupt by validating if the 'schan->cur_desc' was set as NULL to avoid crashing the kernel. Signed-off-by: Baolin Wang Signed-off-by: Vinod Koul Signed-off-by: Sasha Levin --- drivers/dma/sprd-dma.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/dma/sprd-dma.c b/drivers/dma/sprd-dma.c index e29342ab85f6..431e289d59a5 100644 --- a/drivers/dma/sprd-dma.c +++ b/drivers/dma/sprd-dma.c @@ -552,12 +552,17 @@ static irqreturn_t dma_irq_handle(int irq, void *dev_id) schan = &sdev->channels[i]; spin_lock(&schan->vc.lock); + + sdesc = schan->cur_desc; + if (!sdesc) { + spin_unlock(&schan->vc.lock); + return IRQ_HANDLED; + } + int_type = sprd_dma_get_int_type(schan); req_type = sprd_dma_get_req_type(schan); sprd_dma_clear_int(schan); - sdesc = schan->cur_desc; - /* cyclic mode schedule callback */ cyclic = schan->linklist.phy_addr ? true : false; if (cyclic == true) { -- 2.20.1