Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0D56047D92E; Sat, 12 Sep 2026 13:04:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789218271; cv=none; b=orR+Q9qhwS8Vu4WsK7OuFYjhlu9n79NAHlY80fwOj4/6Ga84kIlODoTndE6PqZtytnDILAdolgVxLOO4sQmZ1GgGeL9nTWvlaUVKYQJTr3k5U4kiwJ2azcnBtpwfMgr0FXZzJW12+q0EA7pfrvr2ccAkMgnkBtJZWgZGU9MyfOo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789218271; c=relaxed/simple; bh=H9n7N9PeSiDKN4AjYE65wbycCloMNUBnMrW/MVFNrnM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jvAda606Zn3nsrJXxgu6rfa11IbZuJ7MqRKkmBXsbFIIKutdGveVFhlBhJHF8jMjic7Nyp/srvOfrC1zd1KDsJlhIdR1O4W8Ugt5Do9phYrLsb2BvBexP8fxncnWq1kCucLAJwWSSHyUWMWhuLslSIXfHDEaH6IiBkZ6G/D3XJs= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b=lGue8YVP; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linuxfoundation.org header.i=@linuxfoundation.org header.b="lGue8YVP" Received: by smtp.kernel.org (Postfix) with ESMTPSA id D34C61F000FF; Sat, 12 Sep 2026 13:04:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linuxfoundation.org; s=korg; t=1789218269; bh=j+mrkHVUuxZ5dn/GwAWKu7x5hhf1KQ8Q0uj5hF0STqg=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=lGue8YVPsj+1SIDBpPqk5tQ44GnU517yTicZ74ssKpRY9qhXmpaxzSuqdZ7fhXnGL nIFJobyOiECPQ7I/a+vheIv8KVaICJLJbD7j8SKX7FrF06KbbAzYmFKsQl9HhK1Pd4 IZ9UaOSqU8e1IkRDQvaoOHU5T9rn/dIAYU6Sq8oM= From: Greg Kroah-Hartman To: stable@vger.kernel.org Cc: Greg Kroah-Hartman , patches@lists.linux.dev, Yuho Choi , Daniel Lezcano , Sasha Levin Subject: [PATCH 6.12 1108/1376] clocksource/drivers/armada: Unwind timer clock on init failure Date: Sat, 12 Sep 2026 08:58:54 +0200 Message-ID: <20260912065632.255146125@linuxfoundation.org> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260912065607.535295758@linuxfoundation.org> References: <20260912065607.535295758@linuxfoundation.org> User-Agent: quilt/0.69 X-stable: review X-Patchwork-Hint: ignore Precedence: bulk X-Mailing-List: patches@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 6.12-stable review patch. If anyone has any objections, please let me know. ------------------ From: Yuho Choi [ Upstream commit 8b4127f6db40381229f3564d34ac35f36311c201 ] The Armada timer init paths enable their clock before calling the common initialization routine. If that routine returns an error, the clock is left enabled even though the timer was not initialized successfully. Fixes: 12549e27c63c ("clocksource/drivers/time-armada-370-xp: Convert init function to return error") Signed-off-by: Yuho Choi Signed-off-by: Daniel Lezcano Link: https://patch.msgid.link/20260802213545.565913-1-dbgh9129@gmail.com Signed-off-by: Sasha Levin --- drivers/clocksource/timer-armada-370-xp.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/drivers/clocksource/timer-armada-370-xp.c b/drivers/clocksource/timer-armada-370-xp.c index 6ec565d6939ad..49735ced52bb8 100644 --- a/drivers/clocksource/timer-armada-370-xp.c +++ b/drivers/clocksource/timer-armada-370-xp.c @@ -346,7 +346,11 @@ static int __init armada_xp_timer_init(struct device_node *np) timer_clk = clk_get_rate(clk); - return armada_370_xp_timer_common_init(np); + ret = armada_370_xp_timer_common_init(np); + if (ret) + clk_disable_unprepare(clk); + + return ret; } TIMER_OF_DECLARE(armada_xp, "marvell,armada-xp-timer", armada_xp_timer_init); @@ -384,7 +388,11 @@ static int __init armada_375_timer_init(struct device_node *np) timer25Mhz = false; } - return armada_370_xp_timer_common_init(np); + ret = armada_370_xp_timer_common_init(np); + if (ret) + clk_disable_unprepare(clk); + + return ret; } TIMER_OF_DECLARE(armada_375, "marvell,armada-375-timer", armada_375_timer_init); @@ -407,7 +415,11 @@ static int __init armada_370_timer_init(struct device_node *np) timer_clk = clk_get_rate(clk) / TIMER_DIVIDER; timer25Mhz = false; - return armada_370_xp_timer_common_init(np); + ret = armada_370_xp_timer_common_init(np); + if (ret) + clk_disable_unprepare(clk); + + return ret; } TIMER_OF_DECLARE(armada_370, "marvell,armada-370-timer", armada_370_timer_init); -- 2.53.0