From nobody Sat Apr 4 07:47:29 2026 Received: from mail-lj1-f182.google.com (mail-lj1-f182.google.com [209.85.208.182]) (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 D68293BA22C for ; Fri, 20 Mar 2026 13:56:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774014997; cv=none; b=RihgppNJT+3GfNO0+bobaddV7j/4Uo2Nxr992bXfV6fN0LXD8cTHdWMegNW+ZQXZePdluyGEuhjeExrv8t+jxSVwe3f889C0sAKZVtOI6KnlhxqHCjf26UTJgoVGL2uqc1wvTuoCGZLOYaO+OKPiK5JAxeZ54+PKgVZNkRgWaOM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774014997; c=relaxed/simple; bh=XYh4dlLxQVFS+YE8tsSLsU4eF6IB91lUwXiLc2lxFiI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LKDgAjXeHCmyLxkK7wG1XHljFUlSr+WNxc5yAk6A17E+sLSIKoUOHOI9uKadXpXiFfFNdhpuOtZkIVPc83+Tf8RvNfHzmQhwb0K26J+vaipc4H4ALBovcncNA1+NeRUw2jKPI/E6ZGuZeUdXMXzLesnEqdYlu5dujI4jmq3xHRg= 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=HLLByoTo; arc=none smtp.client-ip=209.85.208.182 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="HLLByoTo" Received: by mail-lj1-f182.google.com with SMTP id 38308e7fff4ca-38a3066b68bso13973921fa.3 for ; Fri, 20 Mar 2026 06:56:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1774014989; x=1774619789; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=cHz5MtC3crd2T2peCpyj9PSNU06Ml4bYxwyLtxD0kys=; b=HLLByoToGiS0YUCU3nmKNVre3p/RMwY9o+SssmWAdLULrFUsCWMgmOyAXfSZzvpMfy zLa8FGezX0QV9X9AVpIjnCIcEYWZpERg/XuRssr76OHJPoB3T2m4uk7uOnJhTv0uX8BL 0V+Qrq+gvVEWcDevjl2xXhfQhdI8Av5ReNNQdfseX4hNSSzgyM++PMgG72oBXueZLFYV UcumFlzA9oGdu25C6RmtTkmPfuBqaRhRmMezOFkFSGTD4+xrg6m1MBXCAq+OuDSGKw5b 86OymOiydeW7oamDUpM79kUewPuGTAu3neOJdJgHN34HgarEzYzc8dvwzkV0bHll2lTA M9vw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774014989; x=1774619789; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=cHz5MtC3crd2T2peCpyj9PSNU06Ml4bYxwyLtxD0kys=; b=QrEqpWxwAZDhWRUphvYaCXGKYTh5KKyQuuG411jLtYXLltx9hxhAUDb6tuQnw9RN/g EVf7PLy3TsTW81nOiKMoUlPx1CbEUdsJ39+DIzsvT54LyaYheWAbPk04MwGZFScnNcg7 +9iAsKJJtcIDziCI1FDUfOJz+89TLNLk85eK9pU31WDfxXpoZO3KeTPgQTJ0USIwe5Gd 5FHn10dsRstPDg3EElqOXGGK4ZCMVk2gB41iFeS0+vfm0R7AhGpktlVkjDtLhpTzBciS NVG1gTtsCSR9j++c0aLP3mmyfj73XrbpNuOxDCaOvx2Sp3bhRNBUo/+fUfeBNN2TdVlZ MnOA== X-Forwarded-Encrypted: i=1; AJvYcCVCN4y23d4E7eSRNxDEJT2sPEMAuRvSjrALgI0BWmofndsbjC35FMluzwNd2NRit0U7DMrW6WUJaCT759M=@vger.kernel.org X-Gm-Message-State: AOJu0YxCEu+7mfQ8xUXrFdgG73OKXHDNyAu3Xc1Cg3wWQMMbszZBnBeA U3JA/utFTLMtdJepNTp3UswGAXNK0nvIiBl3o4P4V35P+UbtFzCpL8pwrw3q/A== X-Gm-Gg: ATEYQzzvcId7w0KJG3g3UfoBjCO5MW/0R0V22TCjh6AohsNC2rp+pdyMf1MDtoGWqYu HtppmAI4qI0qwPgp5VznLlf1SwGJC0Wm5kw0++pqQXn8ZFqVEVPOr4wX3XJqReqyG9rav5xl9Jw Up8fCsHzCXwPxDkpeZr//zTJ2SNW+HkW2DaC+EO9kXVdYqHNi8Dt2WWN7FMVrcTWZQ0PT+809mg /kNMaksuqjaautOJ604s4R1Jl2CcQ/ResFFrVDj73QSH4QzEuEEKrYvLILEPrJl5Dd2CrAQvaZ5 Xyr/zMEuSJxd1BcfRkX0ceuzbBkN4RRZDScIxqW/McXQWva2JrcfF936JZsFNxmEzeQc/BW8Rkg mO/6vrFhPqY53cGcLwacTpFwXtYmAbpp+KuuhFdZ66J5UwAyzf3iCwKEI8kglh3qhRiDaH9vveI FIV/GH9qvFw81F3z+0GNieViFeG3hV6clrLtcO3+ZFJw== X-Received: by 2002:a05:651c:401b:b0:38a:4de2:85d7 with SMTP id 38308e7fff4ca-38bf96477b9mr7236551fa.3.1774014988449; Fri, 20 Mar 2026 06:56:28 -0700 (PDT) Received: from NB-6746.corp.yadro.com ([188.243.183.148]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-38bf97709d9sm5468761fa.18.2026.03.20.06.56.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:56:28 -0700 (PDT) From: Artem Shimko To: wim@linux-watchdog.org, linux@roeck-us.net, p.zabel@pengutronix.de, Sergey.Semin@baikalelectronics.ru, mika.westerberg@linux.intel.com, andi.shyti@kernel.org Cc: Artem Shimko , linux-watchdog@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/5] watchdog: dw_wdt: move reset control deassertion before register access Date: Fri, 20 Mar 2026 16:56:18 +0300 Message-ID: <20260320135624.223863-2-a.shimko.dev@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260320135624.223863-1-a.shimko.dev@gmail.com> References: <20260320135624.223863-1-a.shimko.dev@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The watchdog controller must be taken out of reset before any register access is attempted. Currently reset_control_deassert() is called after dw_wdt_update_mode() which performs register read/write operations. If the reset line is asserted, accessing registers may result in undefined behavior or bus hangs. Move reset_control_deassert() before dw_wdt_update_mode() to ensure the controller is properly deasserted before the first register access. The reset_control_assert() in the error path remains to properly revert the reset state on probe failure. Fixes: 46a1946314bf ("watchdog: dw_wdt: Add pre-timeouts support") Signed-off-by: Artem Shimko --- drivers/watchdog/dw_wdt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/watchdog/dw_wdt.c b/drivers/watchdog/dw_wdt.c index c3fbb6068c52..3450402b7707 100644 --- a/drivers/watchdog/dw_wdt.c +++ b/drivers/watchdog/dw_wdt.c @@ -592,6 +592,8 @@ static int dw_wdt_drv_probe(struct platform_device *pde= v) if (IS_ERR(dw_wdt->rst)) return PTR_ERR(dw_wdt->rst); =20 + reset_control_deassert(dw_wdt->rst); + /* Enable normal reset without pre-timeout by default. */ dw_wdt_update_mode(dw_wdt, DW_WDT_RMOD_RESET); =20 @@ -617,8 +619,6 @@ static int dw_wdt_drv_probe(struct platform_device *pde= v) dw_wdt->wdd.info =3D &dw_wdt_ident; } =20 - reset_control_deassert(dw_wdt->rst); - ret =3D dw_wdt_init_timeouts(dw_wdt, dev); if (ret) goto out_assert_rst; --=20 2.43.0 From nobody Sat Apr 4 07:47:29 2026 Received: from mail-lj1-f182.google.com (mail-lj1-f182.google.com [209.85.208.182]) (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 780F13BBA13 for ; Fri, 20 Mar 2026 13:56:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774015000; cv=none; b=ben2GG1OeZTx5DsRAAMl2+Y6U5uFqfA/jcc2Fyp/jFULuknxhGZsXmkDSPSB6Y2YGeyb8mPjMUTsnQHA8Lt3rtrp29/bNE0zsRwEvxex/O26opCVmJrSMnmRuyUely9MQa6/KsbIGnMBW0IXLmYV5myfe/g4djbMfdaMSz7LkV0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774015000; c=relaxed/simple; bh=9Z1569EW5/z8x6z+WqMDSTPE2H3JIeADeawCkPvKVx0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZkE02mJ2I7+vSB0oIdv7qnTO0lKK6riVej/PpWww+g97o1d1+KtHQWJ9ogBPZv3lrzklZ2Lb2U3hHrxbd7ak1g4JaY4nLjGdjVSeYVEMwwJwWoQ6YOpiwJDyTUn/L3NimScYLsA0q6nSIqhilP93C1O8u1macljFXO1TsXp7KmE= 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=PIqE9AYI; arc=none smtp.client-ip=209.85.208.182 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="PIqE9AYI" Received: by mail-lj1-f182.google.com with SMTP id 38308e7fff4ca-38aef9cc451so4783271fa.0 for ; Fri, 20 Mar 2026 06:56:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1774014990; x=1774619790; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=yz/ujuKHoyfD9OPh8IeUI9Wanq79Wodbu8Mk271DzDQ=; b=PIqE9AYI6Up8jbJuUxgjyU7Ssjno4bcAdukX6Qwa6W1IiGzxbjhHmyc8+myCcuFwBM aibQ2hHXxifSI8vxIWrjA3XgG9nq84SYskYBl8JZ6n+NG4RiRzBg2KEQz6TsM+Ua1dWV N6Qel/1xuEHBaRECV3UH+fKApjnwXbr6oZmF/2REjOQM/lJcOiL5sXoI/nHqzrLdNieq mZdikkcqA+5Ey79aOMCUICM8R1Xvn7OXv20KWeEvritj8K+S7ecvJRAyaWEeuoR49Fth 79KbRawep2oo2cqPGkoASUXfCR6KuboVaHePY1Y4w4O28FZYmnPXgTjYCakl+QO/owp7 lrUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774014990; x=1774619790; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=yz/ujuKHoyfD9OPh8IeUI9Wanq79Wodbu8Mk271DzDQ=; b=IbdmaT5T1rVmd2cScGjQA0u2tc/+gGVpyla8eyvh/Jq5NVz36gd2zmqUxwZDSCWQp2 FVjy6EsmqO27w466LTEx6JaDNrTGin2ws+LenBgWyhhqwZZSJCH1RRGaqKVro5DrxHyO 4FhayNBWw8FIHCvliQ7WO7AnQH++uIns5qH7y9JDRJ71Zg15OpQoSSCSlNZglQN96Ec0 +Wog+x2SJW+dYwqA17etcdgKKVXZv5xLY6n3MKYhsO7IrowWPjc9bEQhGtEIOgsDqLSh IvHSwjscX+lYoUV23C+nI3n3NCTSfoTg22Aqw+5NIdQNF9lA5VUzBUzz6FmNVCvv6HsC 12KA== X-Forwarded-Encrypted: i=1; AJvYcCU5YEJG5RIMZ6TBI6utLTSBFimYOF2rL1kihG4Whc9ArVM3pxJgLAPO34UKAymuxVMn6P3yi7YRDaAKDGM=@vger.kernel.org X-Gm-Message-State: AOJu0Ywj+jdvX7bRsxdNy2OEAU5NzTKKbmlCpvPtnlkZyrt6b1JIdfuI xrFfl97S3BSxgmxYbeF9XE2h/FxB2dObjm/iZPmzRbv6RLStv/pn9/bQ X-Gm-Gg: ATEYQzx3cZzaEWyyOzA4NPy9QPJuxqyE+HbxM3q3B2C2b+u4v/35EEiBucK8r9wzz+3 XrPkNhYY+WryEXfqEWvVsdTn0ibwYMnXCrMFhxzlfJisllWjeS1BJ8n2nsczq/GKS2zQ8s5XcsK CmsPScU6jJ5cdF9vV6qMq/yyNXrnYto5EyHSHOoMLkSG8t14OrpCvY9j2RfA+3UQ9E8nH4OOM3p tnd9GHB+oas6nE6UJG4lnjwDg9uqAGeO49nMp93LRGoKVR3JVHlQla93p//DJMqqWIytzBrY4KC s//3J3yir7abI0EDz1+l0s1jMwvWenXr5PiqC7q4NKcuDVrELHR5POgrmItRkWiX5iW8vO0ITys 7KM4W2K96qeaNpBsg9Fh1yQdYMjurGqZzmPIQJ6IIuksSb/tVahArBI0nzioI/iSNB5skjpW0XO 9cESWlWdJbAzzxHhuvB162XvMb+45xTsRkxkkkhPqKNA== X-Received: by 2002:a05:6512:1248:b0:5a2:8077:bfcb with SMTP id 2adb3069b0e04-5a285b50351mr1116460e87.31.1774014989853; Fri, 20 Mar 2026 06:56:29 -0700 (PDT) Received: from NB-6746.corp.yadro.com ([188.243.183.148]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-38bf97709d9sm5468761fa.18.2026.03.20.06.56.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:56:29 -0700 (PDT) From: Artem Shimko To: wim@linux-watchdog.org, linux@roeck-us.net, p.zabel@pengutronix.de, Sergey.Semin@baikalelectronics.ru, mika.westerberg@linux.intel.com, andi.shyti@kernel.org Cc: Artem Shimko , linux-watchdog@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/5] watchdog: dw_wdt: add error handling for reset control deassertion Date: Fri, 20 Mar 2026 16:56:19 +0300 Message-ID: <20260320135624.223863-3-a.shimko.dev@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260320135624.223863-1-a.shimko.dev@gmail.com> References: <20260320135624.223863-1-a.shimko.dev@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The reset_control_deassert() call was performed without checking its return value. This could lead to probe continuing even when the device reset wasn't properly deasserted, potentially causing register access failures or undefined behavior later. Add proper error checking for reset_control_deassert() and return the error code if deassertion fails. Also replace &pdev->dev with the local dev pointer for consistency with the rest of the probe function. Signed-off-by: Artem Shimko --- drivers/watchdog/dw_wdt.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/watchdog/dw_wdt.c b/drivers/watchdog/dw_wdt.c index 3450402b7707..724ba435b3c8 100644 --- a/drivers/watchdog/dw_wdt.c +++ b/drivers/watchdog/dw_wdt.c @@ -588,11 +588,13 @@ static int dw_wdt_drv_probe(struct platform_device *p= dev) if (IS_ERR(dw_wdt->pclk)) return PTR_ERR(dw_wdt->pclk); =20 - dw_wdt->rst =3D devm_reset_control_get_optional_shared(&pdev->dev, NULL); + dw_wdt->rst =3D devm_reset_control_get_optional_shared(dev, NULL); if (IS_ERR(dw_wdt->rst)) return PTR_ERR(dw_wdt->rst); =20 - reset_control_deassert(dw_wdt->rst); + ret =3D reset_control_deassert(dw_wdt->rst); + if (ret) + return ret; =20 /* Enable normal reset without pre-timeout by default. */ dw_wdt_update_mode(dw_wdt, DW_WDT_RMOD_RESET); --=20 2.43.0 From nobody Sat Apr 4 07:47:29 2026 Received: from mail-lj1-f182.google.com (mail-lj1-f182.google.com [209.85.208.182]) (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 BC53F3BBA17 for ; Fri, 20 Mar 2026 13:56:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774015002; cv=none; b=WfnokmAoSYYr8d2Z7+fnC5VgSs/MCCTuGOcIvmU3dPuAXIkK900C2KrUwvIA9OB1YzvzOA0KvHuqNQIRxaOntss4ZN5yBmDjTkxY4CR2bHx+41UDXMXjEO3ODoQ7uiuqmofbxz+GetOk6l6BzZdNVmnGFJ7shfKiEjj0BL6ZH3I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774015002; c=relaxed/simple; bh=3LWibOs9TxedP9ncR792x77ukU9MglwtOvq/2B7chl8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=raM70+GK2y5tuuJ7z30h1DriM4TpctXi0SxAS0XAzde5dU66RJ/GEdHUBMNhjNRZ2OSgtOdZFdlFijy/AMVZJpwkSW6q34ssj4QM20c++xaPrmN+maFCjbSajEyPsBzRinOQwHVBOGShqnyvNOE+eM4YKF7e24+XXVH6CGv7kTs= 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=kABZVDCY; arc=none smtp.client-ip=209.85.208.182 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="kABZVDCY" Received: by mail-lj1-f182.google.com with SMTP id 38308e7fff4ca-38a01c80c34so14079201fa.0 for ; Fri, 20 Mar 2026 06:56:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1774014991; x=1774619791; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=dq6rCSVjpPdpCa46VU2uh9O/JAm9y3IH5EDT9V6DNvM=; b=kABZVDCYs7zb+DHDm68/DIgXkUBwZUck5di1IFptWl4Ji1Hw20ou06x79QtgoZiv3C LJj7TMW9iQc+zXdI3+vxgjQLF1tAZYIH9RPqPJ+Jcv4ed4z2Zp/KXc30NPwkCEJkNJxe MiQ4gitj9+mREVGixLWTSy76J4RgC950dBUw3KmgeB/wGS6oQDFxJrQzdP1xQu7uCWXJ ov6zzHCfwEO/RtRx6zKQvYgiIvow932XAKp3y4MQURrIiDZCsSz/P6obqsm5f5GbIGS3 s+R5FeOCUselx6ojYtc/a4oB3JUHyjhXHLi/lGyYT6EwRQQGDfRGv3C7ta7MwKRiCtci 4eUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774014991; x=1774619791; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=dq6rCSVjpPdpCa46VU2uh9O/JAm9y3IH5EDT9V6DNvM=; b=bcoi7wexQKElyGiSIcc8JJxKv+NFLWBs4S8tnxTUwfS/smRYAw9rV7J8oLzpmNZ0+y 6TBscP2rD9mPScxzgA0jdDodGwjd8gURr+H6+9dog9rHm1KP7es1xTFPQS9UiBxG37rx VWEFl1fq+OVX/tEe96iD2DzgjhUf0oh5tQMmIO7s5jVl0F38RwVBpzOqEdP2v8rvE9+D Ud81EgtwTZpc/6mTV+qUIgeUhxHvu0VVa+PvcQc9siH93xeTjRriFRT4vpukYUkUlQMT u/qKBsBypxx5y/hRGgCdzuJMY44987ZWJ1AT+5p6NcUSDJPJtHbt4C6yMi9l7s+bfsOh cbZw== X-Forwarded-Encrypted: i=1; AJvYcCUudt4Z8x2CBOKrxKx34KoMoKopeYRkXlFnG6NTAL2g6URNXTnGEFCdbcZVX1dV8GnbAmK+aD4BXaannn0=@vger.kernel.org X-Gm-Message-State: AOJu0YxTp1SLRc3GdOiE5B40Z8aGhU0yfyJvoHyXSze3h5lXmw6XZfT1 Kp0ng27LZKIkx6X2C6YTHmprP85FJuzntRMR+/xTmWO52hukfuLQVflgLsbt7g== X-Gm-Gg: ATEYQzwM2OZ0DG2/P3hi7g/SRskAI+nwEkLogEXAH7PwkUOaHreYb0xmxpjmxAyvWe/ sLFzmO/QY89RbLaQXTdkAc5OWEKLylP/5qPNKeFBSXebseFa76VZ5p3XfeqsSvM1RAtxWKPumbP Xoa1FdTRsVCT3l0YREF80QiQT8behz4WRcUKD1Dflp1HSxuCxCcX7HSpGi1RtGX97+0JCpfpGx+ TXnJEuc1BkZBDZhhg74W2piIvC9X6mBAK7Z+OHt7Gguf3yI1cT2pP/n4yjAxOQgm1rS69DHUM58 8b54oWIwB0yr4QYQaUrBxSzuQ4BpJcHXgyzIm9X997EXc5YDRxSpeeqH64HZjO9Dmj8XVcFQCjS M70d7XguhypMWqFFnQ21XGvYhnNoKC4z7IV1epC/HY0I6iy71Pmx9FtiX3xdeUsHOuv+E13DAR3 JZln4KXyJBCv1KmMX5BDQNAm1kyOGHELIYYb1EHABokQ== X-Received: by 2002:a05:651c:551:b0:389:ecf8:16ae with SMTP id 38308e7fff4ca-38bf9731f77mr12595271fa.28.1774014991356; Fri, 20 Mar 2026 06:56:31 -0700 (PDT) Received: from NB-6746.corp.yadro.com ([188.243.183.148]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-38bf97709d9sm5468761fa.18.2026.03.20.06.56.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:56:31 -0700 (PDT) From: Artem Shimko To: wim@linux-watchdog.org, linux@roeck-us.net, p.zabel@pengutronix.de, Sergey.Semin@baikalelectronics.ru, mika.westerberg@linux.intel.com, andi.shyti@kernel.org Cc: Artem Shimko , linux-watchdog@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/5] watchdog: dw_wdt: Use devm_reset_control_get_optional_shared_deasserted Date: Fri, 20 Mar 2026 16:56:20 +0300 Message-ID: <20260320135624.223863-4-a.shimko.dev@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260320135624.223863-1-a.shimko.dev@gmail.com> References: <20260320135624.223863-1-a.shimko.dev@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The driver currently manually manages reset control by calling reset_control_deassert() during probe and reset_control_assert() in error paths and remove. This approach is error-prone and requires explicit cleanup in multiple places. Replace devm_reset_control_get_optional_shared() with devm_reset_control_get_optional_shared_deasserted() which automatically deasserts the reset line on acquisition and ensures it will be asserted again when the device is removed. This eliminates the need for manual reset control in probe error paths, remove, and allows simplifying the code by removing out_assert_rst label and related assertions. Use dev_err_probe() for consistent error reporting. Signed-off-by: Artem Shimko --- drivers/watchdog/dw_wdt.c | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/drivers/watchdog/dw_wdt.c b/drivers/watchdog/dw_wdt.c index 724ba435b3c8..27b5098832d5 100644 --- a/drivers/watchdog/dw_wdt.c +++ b/drivers/watchdog/dw_wdt.c @@ -588,13 +588,9 @@ static int dw_wdt_drv_probe(struct platform_device *pd= ev) if (IS_ERR(dw_wdt->pclk)) return PTR_ERR(dw_wdt->pclk); =20 - dw_wdt->rst =3D devm_reset_control_get_optional_shared(dev, NULL); + dw_wdt->rst =3D devm_reset_control_get_optional_shared_deasserted(dev, NU= LL); if (IS_ERR(dw_wdt->rst)) - return PTR_ERR(dw_wdt->rst); - - ret =3D reset_control_deassert(dw_wdt->rst); - if (ret) - return ret; + return dev_err_probe(dev, PTR_ERR(dw_wdt->rst), "failed to acquire reset= \n"); =20 /* Enable normal reset without pre-timeout by default. */ dw_wdt_update_mode(dw_wdt, DW_WDT_RMOD_RESET); @@ -623,7 +619,7 @@ static int dw_wdt_drv_probe(struct platform_device *pde= v) =20 ret =3D dw_wdt_init_timeouts(dw_wdt, dev); if (ret) - goto out_assert_rst; + return ret; =20 wdd =3D &dw_wdt->wdd; wdd->ops =3D &dw_wdt_ops; @@ -657,15 +653,11 @@ static int dw_wdt_drv_probe(struct platform_device *p= dev) =20 ret =3D watchdog_register_device(wdd); if (ret) - goto out_assert_rst; + return ret; =20 dw_wdt_dbgfs_init(dw_wdt); =20 return 0; - -out_assert_rst: - reset_control_assert(dw_wdt->rst); - return ret; } =20 static void dw_wdt_drv_remove(struct platform_device *pdev) @@ -675,7 +667,6 @@ static void dw_wdt_drv_remove(struct platform_device *p= dev) dw_wdt_dbgfs_clear(dw_wdt); =20 watchdog_unregister_device(&dw_wdt->wdd); - reset_control_assert(dw_wdt->rst); } =20 #ifdef CONFIG_OF --=20 2.43.0 From nobody Sat Apr 4 07:47:29 2026 Received: from mail-lj1-f173.google.com (mail-lj1-f173.google.com [209.85.208.173]) (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 A01BC3BB9F1 for ; Fri, 20 Mar 2026 13:56:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774015005; cv=none; b=CczYB2L8bCaJ/hs5ezyOtlV7JlTXWT46Lj3hvmPAwXDePvtQPb1QtXBmAY/X0vgNkes2+CSGFtJDIIRNVu0enbXmdE69dr8MgVlBwwPn7Et/KRmeybxOb9ZL5JA1l3amxWwXhwGtZlCamFwt5X9JB6hXHd5Gx1FFo+jv8YWgqSQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774015005; c=relaxed/simple; bh=7FaE8VdJnohhvqgqFNEK8NlmDgIwt88sxl+bn8YaTsw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=svQ9rl8w5Pg8frINqAYXE7xqxx+Y+Iknr8XDhLOr+bn4sDyFPnwcg5QK4ijm5rJf/atJd9KhIf7qB6RyD6+yvg17ZGjyrAFUC34A6tPr2+w1rDHX1qlfe9mmj/D2vz9cokmAaDBV1GygDR5vZnp2ugOokwOykjRwhwfiDsi2V48= 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=VAbIAD0P; arc=none smtp.client-ip=209.85.208.173 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="VAbIAD0P" Received: by mail-lj1-f173.google.com with SMTP id 38308e7fff4ca-38b13652c87so18052511fa.0 for ; Fri, 20 Mar 2026 06:56:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1774014993; x=1774619793; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=pmpUwafDPJ08vdYxVnIzsE+y/e7zfyVKAjb4p4prvRw=; b=VAbIAD0P0F52L0i1q3BfIgS15rlt1RZOqZyR/e4wQTd+yoifrvu2zJ8lnl1vXhY5qp sKkik2gT02El1FFMR83Ic0ZSrtypx/U7TNurKz3WwuKEMMgJszwihfODSYAvtF+jP88Q RdIfdSVEcWXMrRuysP8/Fe7glJX4Zdh24An8BDpc0bvUINmJTriZHrFZz6zfCcO2HJdS 9/Rwp4ctyhBLbRO2rD2R07WUZ+ABiSatd3VRgsPsSEmD1DMDwkWWduXkx9/cz9NV/vQa YTyETs7o7jXPv2Sp6Vvrt0sDP5Flxxw/cOZzpFvh15TOIf3BTZfAmfWFg/brkrEpsBvf 26tg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774014993; x=1774619793; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=pmpUwafDPJ08vdYxVnIzsE+y/e7zfyVKAjb4p4prvRw=; b=CESP6OrNE27MmvYNWfcT4Py9GTQYAdtE38fK2QdeuBKNzun+THbaBnfovM8ftuuN+z JsPok9Nv4X+Bi0V3vn6kKVOQQnEwV9nqZ3INfwOuAkCh7g9ZL4ICaqsojmYKuFv7JyBC mwwavlu5p0IBs89zCkU11WmqOOPF4fj+a5wEvZHh8zGZb1vl9+LAeNvvYGfym6TzCv9G k7Q3mM61AkIEH0FBUdRuITeZxdjuDHfkT6O4y+6qpKszlUuhjKO/Tw8PB542tNYBNILW Av6jYffOt+4miphP/Glf8cn7mHC1lqW9/6SobYDq54T18vhz/DJwfTVwnzPPAMvYhqFP LQjA== X-Forwarded-Encrypted: i=1; AJvYcCXYC75KTdRdbjJPwZ5c/F9h3hrTC5qarWB/QYx9DfUjsQ9pmPjuuLeTroVFrNUIwQ7BSrmmbf3EpVGk0Sw=@vger.kernel.org X-Gm-Message-State: AOJu0YwFN81rpJyAlMMp1IGSJA4ByPVSLdgtPMPmW212Qxkov+mg0+H0 rcDCzTZSorxM3lYRcUhjaR+c1Za0UDPtX03J9ja1DEkxMnoiy2bBG/66 X-Gm-Gg: ATEYQzw2Zv2Xiap5PmEdMNbNoxbQ3G3ZW6pTfEeTNekkZQFI6REy9bF8WE7egfZZqak 2splPvbwVla0s9jrU4289D63JyJBzpW2w2qePLl3tNrepd2rZ7fz/68oO7aDSy4Hfj4NJ6Y2BCq HeUWz4AszoBrf6Zg7+s7JTc0Wnf7IgFBE1uAMb/ZUKkeFHXXqqvgTB7Vp78GJX0m7XwZgPGqqGh LqswopSOY9LAaykdo12Pev6Wxl5l8bXqafAnFr2XrKEUyisYYmQrdXdBJpdsRGjqBlPOv2Stko4 oqAu0JuB6QaRsKpDm+QR3aCy6q+tMKhAPQuyLv8zjKl3KC1lKrwQ08VBN9ZhhB656q+wBP4CDSM DNgzYCXn/ZhIaUyRNeOauK7nC+eHCfe3qf2IV903LhEgySt0+t/lmsGLKstLbbUtBRPfw6cYlGT xNhUBYrjZHQYCVR+LfprJl7ELFcG8We5YBD62GzcuGbQ== X-Received: by 2002:a2e:9dd5:0:b0:38b:f49c:8679 with SMTP id 38308e7fff4ca-38bf970c3e6mr7917541fa.31.1774014992823; Fri, 20 Mar 2026 06:56:32 -0700 (PDT) Received: from NB-6746.corp.yadro.com ([188.243.183.148]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-38bf97709d9sm5468761fa.18.2026.03.20.06.56.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:56:32 -0700 (PDT) From: Artem Shimko To: wim@linux-watchdog.org, linux@roeck-us.net, p.zabel@pengutronix.de, Sergey.Semin@baikalelectronics.ru, mika.westerberg@linux.intel.com, andi.shyti@kernel.org Cc: Artem Shimko , linux-watchdog@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 4/5] watchdog: dw_wdt: manage reset line during system suspend/resume Date: Fri, 20 Mar 2026 16:56:21 +0300 Message-ID: <20260320135624.223863-5-a.shimko.dev@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260320135624.223863-1-a.shimko.dev@gmail.com> References: <20260320135624.223863-1-a.shimko.dev@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The watchdog controller reset line is not currently managed during system suspend/resume. This can lead to an inconsistent hardware state when resuming from suspend, as the controller may not be properly reinitialized. Assert the reset line before disabling clocks during suspend to ensure the controller is held in reset while power is gated. During resume, deassert the reset after clocks are enabled and before restoring register state to guarantee the controller is properly initialized. Add proper error handling for reset control operations during resume with appropriate cleanup path on failure. Signed-off-by: Artem Shimko --- drivers/watchdog/dw_wdt.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/watchdog/dw_wdt.c b/drivers/watchdog/dw_wdt.c index 27b5098832d5..c2c5dc6e54e7 100644 --- a/drivers/watchdog/dw_wdt.c +++ b/drivers/watchdog/dw_wdt.c @@ -382,6 +382,8 @@ static int dw_wdt_suspend(struct device *dev) dw_wdt->control =3D readl(dw_wdt->regs + WDOG_CONTROL_REG_OFFSET); dw_wdt->timeout =3D readl(dw_wdt->regs + WDOG_TIMEOUT_RANGE_REG_OFFSET); =20 + reset_control_assert(dw_wdt->rst); + clk_disable_unprepare(dw_wdt->pclk); clk_disable_unprepare(dw_wdt->clk); =20 @@ -402,12 +404,22 @@ static int dw_wdt_resume(struct device *dev) return err; } =20 + err =3D reset_control_deassert(dw_wdt->rst); + if (err) + goto unprepare_pclk; + writel(dw_wdt->timeout, dw_wdt->regs + WDOG_TIMEOUT_RANGE_REG_OFFSET); writel(dw_wdt->control, dw_wdt->regs + WDOG_CONTROL_REG_OFFSET); =20 dw_wdt_ping(&dw_wdt->wdd); =20 return 0; + +unprepare_clk: + clk_disable_unprepare(dw_wdt->pclk); + clk_disable_unprepare(dw_wdt->clk); + + return err; } =20 static DEFINE_SIMPLE_DEV_PM_OPS(dw_wdt_pm_ops, dw_wdt_suspend, dw_wdt_resu= me); --=20 2.43.0 From nobody Sat Apr 4 07:47:29 2026 Received: from mail-lj1-f181.google.com (mail-lj1-f181.google.com [209.85.208.181]) (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 B80613BADB1 for ; Fri, 20 Mar 2026 13:56:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774015005; cv=none; b=CCiC0/pVrE2iN4RWlDlqLF+dxRJ5JIoGg+bEvEpLdQn4ZNE68YnragGk/g7HGIa8zl5RwzTICQw6xqRq7reiyVja+2EjjBk3IvEASVxetS3A2hA4Ydqj45hb3hbm1utiQNJrbjH8khHScuy0GOPDy9dYgXYfG5bjbeelolpHQ3w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774015005; c=relaxed/simple; bh=DJqR/GuGiyjFacMfnO65zKo7aAil9mPZDEMDYiKQFnY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XliYM6hpx73aev/5fSydx5BLf2xZqEVYaJfZ9CJ/qaiJPIUK0ex+org6S0Z3OisWUkHlFLZn1q9uhYDpiuSutCkGUIrg1uZ2jfKUT6rnAi4kc6mRXVtU9N9B93/m6885AtNapmdR51Jf8kQQd+JzO0z6ksTJlcs1Ho5LhMr/yps= 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=IlcjXwoQ; arc=none smtp.client-ip=209.85.208.181 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="IlcjXwoQ" Received: by mail-lj1-f181.google.com with SMTP id 38308e7fff4ca-38a32d36396so18142221fa.0 for ; Fri, 20 Mar 2026 06:56:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1774014994; x=1774619794; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=YHTbck32azNpAhgT1Zm/ogIs8OYnc3TttHl66QfiMdA=; b=IlcjXwoQEW0x3H1bSZcbJHdDTF6h7z5E/KCN8fsgYqS6+YGFi1u1gb0mb2YauMUMW4 5HYXCtvREyAHQXkXZgbTOxyIbYjHERylRgxRCuFcqKM/zh9Wcp09TLNbSFb4V48x6P9c LQIlvdGHkhMVu8+WgTS97067mUUyYaQl6AyJkLzMP7j1+QAwdA1mXy0wS/FPzRgEXgI0 Ddhxo/dq8vKvs9xzVmFdHSsY4qaoxOeceOYmdl69RNGEguh0ZWt02okgaiLZRNzeK8wh 7F+gzjMZCODhpzxMBBTJdwC84lGSp83X0yRU5dEVzFAfIPbCbcxMX+CCE3KZBB6dKpC8 1JiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774014994; x=1774619794; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=YHTbck32azNpAhgT1Zm/ogIs8OYnc3TttHl66QfiMdA=; b=JmKnIWGNNsdNciARtWAFv8f/31BzgdiTotIw5Zh35H8OMhJqEewHXx0KCohhzlX/Fy 99Y2vPedtI8IqvIoRcl3xpWR8i4cVCHCklK0IEir/ayPP/AYK6sZmoDbYWcdiGXx50kS 3/sCii4Lv53ub8tVEyEJqov0hiU7qE2ncY7TR/ioRFGbTvpQjgTZi8Qtcd6hYFXOoWVN MY0VfJwXY4Kv7h5UhYr2aQu35rZRk9cw81lvTDc2wD6MDKMyovXMwcV37vkpFBHKJ+2K PA9ocAbgfAAT/9btwNS0jGGQda59+i6miBXTy0UnjWbdxh8mo90K6UW5Y8j8Ju/2erKV VQXQ== X-Forwarded-Encrypted: i=1; AJvYcCXZgFcWttwibdwzBmmy1MK7b/vPgENabmkMyDKZlTxBeaWLyupyjeW2LCOD9NydC3DUPes7hpcMK0o6cRQ=@vger.kernel.org X-Gm-Message-State: AOJu0YzGW4SzhP4PyJGuWTO/XqeLsSeNthEYhYy/QW0ibuDpV5YJBiJG 91pOyewh54CqOz+Oq0GDCooJF9HaO8Ex2b+qDIL+nPA6rmuu6HBXHNkF X-Gm-Gg: ATEYQzyImVMhPbsDeK0dY66iCh8VIZbmu2DDiC+KVkLFK+Ui60yty2rxzYp7HXjoezz rbFUtksY+80RV66GU9fRSgnlVnS2G5ouRQ3b2iNrjnUkbEwqa3QmRXg1UDgNfR3RpsznjJ0OxV9 6+Uf/ruBBgslAXRP9diY6HmZErcebn3xr4dQkEnxc+w6/vvEMgziCihkoL6bQDQu59ocfb7FoxB nVqDV3anN+dZC7qVuU8EO8YbjZexUFojI+cEq0OxQzljWLgyrciBHtfPlrThyffZClq0eJmMs+B r71ai6pUBVaGynmezGl+YR1TsecV4ORdcx2D5IYlK8NGQbSllJ2HnFb+F94m/P33rZ1sV1AMkP+ ryIB+Dm0KPqxFlxPAq5G4CHRsPSJQmvfS4UrieeDmDC+3NLMJ4fIXTWSQUR//aKyJL3nFYJQjLm bvxDzNUpmcDO/a/f5QcblvMgvbE//AGlsDBls/6stMHg== X-Received: by 2002:a05:651c:4209:b0:38a:4e8d:747 with SMTP id 38308e7fff4ca-38bf9c9d8d6mr8871791fa.1.1774014994190; Fri, 20 Mar 2026 06:56:34 -0700 (PDT) Received: from NB-6746.corp.yadro.com ([188.243.183.148]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-38bf97709d9sm5468761fa.18.2026.03.20.06.56.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 06:56:33 -0700 (PDT) From: Artem Shimko To: wim@linux-watchdog.org, linux@roeck-us.net, p.zabel@pengutronix.de, Sergey.Semin@baikalelectronics.ru, mika.westerberg@linux.intel.com, andi.shyti@kernel.org Cc: Artem Shimko , linux-watchdog@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 5/5] watchdog: dw_wdt: clean up error paths in resume function Date: Fri, 20 Mar 2026 16:56:22 +0300 Message-ID: <20260320135624.223863-6-a.shimko.dev@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260320135624.223863-1-a.shimko.dev@gmail.com> References: <20260320135624.223863-1-a.shimko.dev@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Clean up of dw_wdt_resume() function. Rework the error handling to use properly named labels that match the cleanup order. Use unprepare_clk for clock disable and unprepare_pclk for pclk disable path. Signed-off-by: Artem Shimko --- drivers/watchdog/dw_wdt.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/watchdog/dw_wdt.c b/drivers/watchdog/dw_wdt.c index c2c5dc6e54e7..c89e1fb91b1f 100644 --- a/drivers/watchdog/dw_wdt.c +++ b/drivers/watchdog/dw_wdt.c @@ -393,16 +393,15 @@ static int dw_wdt_suspend(struct device *dev) static int dw_wdt_resume(struct device *dev) { struct dw_wdt *dw_wdt =3D dev_get_drvdata(dev); - int err =3D clk_prepare_enable(dw_wdt->clk); + int err; =20 + err =3D clk_prepare_enable(dw_wdt->clk); if (err) return err; =20 err =3D clk_prepare_enable(dw_wdt->pclk); - if (err) { - clk_disable_unprepare(dw_wdt->clk); - return err; - } + if (err) + goto unprepare_clk; =20 err =3D reset_control_deassert(dw_wdt->rst); if (err) @@ -415,8 +414,9 @@ static int dw_wdt_resume(struct device *dev) =20 return 0; =20 -unprepare_clk: +unprepare_pclk: clk_disable_unprepare(dw_wdt->pclk); +unprepare_clk: clk_disable_unprepare(dw_wdt->clk); =20 return err; --=20 2.43.0