From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj1-f46.google.com (mail-pj1-f46.google.com [209.85.216.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D3F5F22538F for ; Wed, 24 Jun 2026 07:43:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.46 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782287004; cv=none; b=br7bZGk0mydXQXxtUzk6dLYNu8oEtxjSvHn3nNT6rokWY1+SslsRnQ25t9GNk/b5z1Z0laYnbbWl4Hqp9niz8Hdb5wk7a/aL51bp5kkn6ui4atIzDGZM81SVLiE8HiSYwd4fE+jE2ZEp34OuHorIFNiKRfsJC5mVurWsKXttAsI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782287004; c=relaxed/simple; bh=Kuvy+OfsXtSSXfL34f4t5wLQGVTkYVjAg5fwW4xQXbo=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=Kev46Cb/CVolYZ7JYjlRiVX1I5qLku5I6j5QjZ4INPZRv39Nn+jE/1yc5AH2+cUeg0988g/K5PhQwURRlmzlzmNoEZhCh6oud8y6ZbCAIfb7QVidow6w5yooVzjsvKlygw2RDwVpU2cAdyI4GS1e0AmdF0NeJd5cd4GcnaKiAFU= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=B0KDhad6; arc=none smtp.client-ip=209.85.216.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="B0KDhad6" Received: by mail-pj1-f46.google.com with SMTP id 98e67ed59e1d1-37d826e9811so475071a91.1 for ; Wed, 24 Jun 2026 00:43:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1782287002; x=1782891802; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=AE8r8HJ/ms/z4I8NZ9JR5bCm2+oEquECrpJz+7QqcPU=; b=B0KDhad6hJa3Zj62ZwUCGv6IAD8q+uLGvxAsLUGQyLEbGft5B4gJ8us2B3ugrda0Tx zTM60HvyDOBcDztSKUkb+OdEFc+LtrxNjaJlSOPKgNiM4W0c/Lh/BZd6e/FmOxYOgkX+ NH2+zebqj+oNv29wK8WV5NOEz5Dwb3OYZmKJSYatjcvg96XOv6LsJWqUxiXLCAKqiKlX 2mCp+bwl6DteaKZXHV3zUTd2tH/bSaBgTzRZ7xhUeGAAxRZ9k1avOj9ZKsa5wKOoMYWo qY9QrntTU7R37r4T68ndVeZwnNhLWgv8XnGSdXLjdweg/HgsAHIu1xKdciMGStHSZaol 8sFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782287002; x=1782891802; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=AE8r8HJ/ms/z4I8NZ9JR5bCm2+oEquECrpJz+7QqcPU=; b=MASmoGJ+3yGtkaOLnHmJZploxOrUopc+NDNCfGtLK6pv4+RrkfVdIDta9JaZu3R34q gihUBSnrVf2qEaNox6x8RU2GWOCKGUYeWlbx7VhDoCas2OA40wv6NtM4Zew+xfk7BRwh X80kHFw6PUjxXzrdotxFgH9eKtdIhjCLcJ1T1DMz471mRAehYdoGGEIDNUZXieZdg8QW iZwnn2bEjXsGfbO8bZYS7Elq/QM7a0RZP8x0lyNRX4c048eJixN42Fn+3tBlexHz9t7w ICrUsO9yjHeIDad99SYJFXX4DOjA28iYlD8eixqhpoog8Ik26BMUvv75Z1Zi/FCi7R+D AZ9w== X-Forwarded-Encrypted: i=1; AHgh+RroOj+13eE5+4BLZT3iD7YDOctve2MShrEd0JMpqMS3xuqPuw3YGV+vWo1bIdBLJtqJUyXUdNEHA2qPGmc=@vger.kernel.org X-Gm-Message-State: AOJu0YxstfSX7752aQlxvDQQsGTUX9Y1P2u9ZKu1XUT2odAEZb6kBMNt 57hV/i0JLuahDcminNesDBr6Rmu4TWLZjaW7/XUQebbpD2lPUVnLAMM= X-Gm-Gg: AfdE7cnG50Sy82jE4PTLR/vOlBduOWuvp++uHzwFSd0HPKdID8a3oXzej59j3yfvzqU f1Fv87ApXhlzs4x/erNlnPBCXPOM5EAWxuvM15nEnDckc89XVXNZcO960aQ9R7bm5ZFrhdcgood GpOfkkw/sQtnvcOtkKuJp7PKoeO0HqqWv7i1VJLmynK9SJznSGovwJvNFsTA7l37xdBAUDNJpv3 s0GyEqy+9YxwQfZq+2t9ytn+//Ieh1qP5cenNozHcKu4i5mdQl/LRm+5ly0Whe5r/oYNsd7jJNB nbfUSRGRfj/heHj2i0I+dmBzFrszi/Sb3bJQhR1ClNyGdGKTuZjmDzDiNNg4gySlVV2JcVjZxx9 Mi3M+GdJjTMMoze+d17o2Tu+K0eZwLIq9CL/7R3KTNgKkOUxwbv3OGk8VlU4vD825pDvdOSumgl Qk0pkJ+SUxduwOf/sCtqJb3rS+tZNSUcxsyS2UMsJ9KIWHIXW8rT4gALzLY7tmCEsU X-Received: by 2002:a17:90b:280d:b0:37d:83f8:dff4 with SMTP id 98e67ed59e1d1-37de418e12emr2136579a91.4.1782287002029; Wed, 24 Jun 2026 00:43:22 -0700 (PDT) Received: from localhost.localdomain ([14.5.152.27]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-37de3cf70b0sm1610076a91.11.2026.06.24.00.43.19 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 24 Jun 2026 00:43:21 -0700 (PDT) From: Myeonghun Pak To: Eugeniy Paltsev , Vinod Koul , Frank Li Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, Myeonghun Pak , Ijae Kim Subject: [PATCH] dmaengine: dw-axi-dmac: Fix cfgr_clk leak in resume error path Date: Wed, 24 Jun 2026 16:43:04 +0900 Message-ID: <20260624074307.68365-1-mhun512@gmail.com> X-Mailer: git-send-email 2.47.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit axi_dma_resume() enables cfgr_clk before enabling core_clk. If enabling core_clk fails, the function currently returns the error without disabling cfgr_clk. This path is reachable from dw_probe(), which calls axi_dma_resume() directly after pm_runtime_get_noresume(). The probe error path only disables runtime PM, so cfgr_clk can remain prepared and enabled after a failed probe. Unwind cfgr_clk when core_clk enable fails so the resume helper keeps the clock state balanced on all error paths. Fixes: 1fe20f1b8454 ("dmaengine: Introduce DW AXI DMAC driver") Co-developed-by: Ijae Kim Signed-off-by: Ijae Kim Signed-off-by: Myeonghun Pak --- drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c index 5d74bc29cf..001ab7464e 100644 --- a/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ b/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c @@ -1333,12 +1333,17 @@ static int axi_dma_resume(struct axi_dma_chip *chip) ret = clk_prepare_enable(chip->core_clk); if (ret < 0) - return ret; + goto err_disable_cfgr_clk; axi_dma_enable(chip); axi_dma_irq_enable(chip); return 0; + +err_disable_cfgr_clk: + clk_disable_unprepare(chip->cfgr_clk); + + return ret; } static int __maybe_unused axi_dma_runtime_suspend(struct device *dev) -- 2.47.1