From mboxrd@z Thu Jan 1 00:00:00 1970 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: 8bit 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 *pdev) if (IS_ERR(dw_wdt->pclk)) return PTR_ERR(dw_wdt->pclk); - dw_wdt->rst = devm_reset_control_get_optional_shared(&pdev->dev, NULL); + dw_wdt->rst = devm_reset_control_get_optional_shared(dev, NULL); if (IS_ERR(dw_wdt->rst)) return PTR_ERR(dw_wdt->rst); - reset_control_deassert(dw_wdt->rst); + ret = reset_control_deassert(dw_wdt->rst); + if (ret) + return ret; /* Enable normal reset without pre-timeout by default. */ dw_wdt_update_mode(dw_wdt, DW_WDT_RMOD_RESET); -- 2.43.0