From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj1-f48.google.com (mail-pj1-f48.google.com [209.85.216.48]) (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 160573AF667 for ; Mon, 10 Aug 2026 10:22:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.48 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786357324; cv=none; b=RpI8m2t8izSoeGlv4qRj3fFJok5fdUSnNohDdIYIwN67hdu+yPryNxJftIqZLCCEOfLi7mgLkNZKZdPUFm3ccjeACw2/pTBDU9MzrRFploILNLwrjxpRo1LSBfw+r38pufrCoRl0Mh2E2w+lpRibk8Ubr5H4vckSI7uuj0Ozoyo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786357324; c=relaxed/simple; bh=otBjEI5x5e6oRJAULxGf/ldS0jPIB6uMht/s0aswS60=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=e/N1dN/TPc+//h8XQtd1Ds873msNf7I5X1hWyaJN6ucikBKXWUIMVAiDhsQ7LQRGKr1DaojAetcox8FYYJQ/VYbjSiC9PQVoSiKUaVw3nK4IFCMLXLmoWqoBELI1wLuQRsVO3jmBYbpV1pmC3RfLTA6kEYr/yETTvo0wZEGhjnA= 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=iYUpi12L; arc=none smtp.client-ip=209.85.216.48 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="iYUpi12L" Received: by mail-pj1-f48.google.com with SMTP id 98e67ed59e1d1-384930ca5e2so1764335a91.3 for ; Mon, 10 Aug 2026 03:22:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786357321; x=1786962121; 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:content-type; bh=80/k07EkbH1ecXMl0R5Fs9cFDQBD709H2DM1r3/6dkI=; b=iYUpi12LHsxExBoVbHX8w+E8e/nFEa6eUZSiUhbUL3qdWupnSYfBwGpW0Nmxtb4Sfb wg3DQSSq2O3/SuwJHO3brrLiDsXUo8olxfV9J/ft59EJEajgFIkE+NwraPw2oOFUuMYl 9VO8IHgwCqB9zM/E/vamhqiE4wXGh/SAbyD+vOorWaBQCSBq8frCEsRULyctAV9I8Xev I2y5NWrPQmX7o+sLemynLAS+vCDy84FGQzh/8WCt3fAw5bBD/OjQzm+qpaGL9E5xrtum PpdvNIWrbDDVUei8xzxqoZ683JS3LMb2Iw6bI46jsjTvCAFX1J6jvdQmGw3vTSHyD1xJ T8XQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786357321; x=1786962121; 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:content-type; bh=80/k07EkbH1ecXMl0R5Fs9cFDQBD709H2DM1r3/6dkI=; b=WqI7ChckotDzM+ZnMQ1qk7zskqN7sfP/HOKuC9srPgf+Uvh2UwFe5uljrJtcbNvpDP i/sl/3tqUZZfmxLklbpFhTq5GPNSspHl9mK1Tbt/MH4gtc79GbGEWBcPlb911sOegQvf qab52TPc0J0bwV29kdcNVTj/EY9T7uwsm5cbXRqF9y7jA4+A9x0gz6AADSt/5KGQusPK awv7SAX7b7pCJAhTjqmSeNSH5hGYwIM670XSfnYv3tJWTjyTr8ploHyjo+CY1dLfh7dt em67QgpPdUMXWsD72KOkeSkG44QJnmA1Vgy9HBaZWrTiseD5fA9/I3eGOuf74aK+M8aa a/Ig== X-Forwarded-Encrypted: i=1; AHgh+RofyzUMQiBp9f45WS+HAnT5Nuc1G24mexKbSObk/mhnWbVvIuXiGRDjEQyQfKecN7BZ8c/K7o2f2e29SpY=@vger.kernel.org X-Gm-Message-State: AOJu0Yyz0CYHnPcJS+DPisbSqZAoAlyyCBv8S3aa5NPtWWlrdNodTQ0I 7OCGJ0c9Zeofq2jmdpgipwYGEqfQp/kuAfjT3Wk0KCw8OEky/bsfCiIG X-Gm-Gg: AR+sD13EC2rwWD2/mMQVZoHZF5PBAvdIQa4C0VPGtg9VR8btOhDvnj6N0lnP+OUMWqC r13Z3orKc2w5POFOuzz76finhQc10LLgOYfka0DW53sWzvODT9GFHvBfQLB/ZFs1SHvKDkTiml8 XM/KJE/HGFHOluDahKpyEbtgaaLCmNsuL4qP5ksZkNixAAbwggJJWUDDeLDDTVgIeWYeYE20RGh 0VdopKcDxr9+mZX+WW3QqiQo/3Z+4M/2HAWd32AkIRy7pDWv9sGzkO9hCfLzuwNIopwevrvn8Dy aWSWy8Sk8oJ1lS9w7UZhtj02CXJmj1/5GkqKsBP9v3Hz3DuYR0p8RyZJ7O6CToMVh7rGFfo8dF4 usCnnwIQ4Ci8eLcmkrb1mh5QUbxrQZFg7U08Vk4KzoDNtjnL+AyRxTQcoC45RJBzoMnU+PmEhbZ T0CYo7lepp0/6JgW0c68RurfX1IG+ikbiqc8oG4AXIkoCjj4xWHS7r3DPTMU2qObeCIXwlJaev+ jfr6Qqc0A52FeF5r5ohGR++M7cvWzXRcndnxZqsEK79K1Mi05y8pinKJ3ZeJv5cIgvMr9NGsKls YZtRpVAXNrUkFyc= X-Received: by 2002:a17:90b:3f8d:b0:38f:de97:b06 with SMTP id 98e67ed59e1d1-392cc9048ccmr260505a91.5.1786357321066; Mon, 10 Aug 2026 03:22:01 -0700 (PDT) Received: from phuc-desktop.. ([183.91.15.56]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-390b1573defsm5039831a91.1.2026.08.10.03.21.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Aug 2026 03:22:00 -0700 (PDT) From: phucduc.bui@gmail.com To: Wim Van Sebroeck , Guenter Roeck , linux-watchdog@vger.kernel.org Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, bui duc phuc Subject: [PATCH v2] watchdog: qcom: Propagate errors from optional IRQ lookup Date: Mon, 10 Aug 2026 17:21:44 +0700 Message-ID: <20260810102144.51663-1-phucduc.bui@gmail.com> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: bui duc phuc platform_get_irq_optional() returns a positive IRQ number on success or a negative error code on failure. For an optional IRQ, -ENXIO indicates that no IRQ is available, while other errors should be propagated. Instead of only checking for -EPROBE_DEFER, propagate all error codes returned by platform_get_irq_optional() other than -ENXIO, so that failures are properly reported to the caller. Signed-off-by: bui duc phuc --- Link v1 : https://lore.kernel.org/all/20260807081652.38692-1-phucduc.bui@gmail.com/ Changes in v2 : - Update pretimeout handling based on Guenter's review. drivers/watchdog/qcom-wdt.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/drivers/watchdog/qcom-wdt.c b/drivers/watchdog/qcom-wdt.c index 49bd04841f0c..9fee18fda750 100644 --- a/drivers/watchdog/qcom-wdt.c +++ b/drivers/watchdog/qcom-wdt.c @@ -289,18 +289,20 @@ static int qcom_wdt_probe(struct platform_device *pdev) /* check if there is pretimeout support */ irq = platform_get_irq_optional(pdev, 0); - if (data->pretimeout && irq > 0) { - ret = devm_request_irq(dev, irq, qcom_wdt_isr, 0, - "wdt_bark", &wdt->wdd); - if (ret) - return ret; + if (data->pretimeout) { + irq = platform_get_irq_optional(pdev, 0); + if (irq < 0 && irq != -ENXIO) + return irq; + if (irq > 0) { + ret = devm_request_irq(dev, irq, qcom_wdt_isr, 0, + "wdt_bark", &wdt->wdd); + if (ret) + return ret; - wdt->wdd.info = &qcom_wdt_pt_info; - wdt->wdd.pretimeout = 1; + wdt->wdd.info = &qcom_wdt_pt_info; + wdt->wdd.pretimeout = 1; + } } else { - if (irq == -EPROBE_DEFER) - return -EPROBE_DEFER; - wdt->wdd.info = &qcom_wdt_info; } -- 2.43.0