From nobody Thu Jun 25 00:31:37 2026 Received: from mail-yw1-f179.google.com (mail-yw1-f179.google.com [209.85.128.179]) (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 A2FB23E51DB for ; Mon, 8 Jun 2026 20:09:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780949395; cv=none; b=Hwi/qBhdrJrdbqDEnTIXRcOJ1WM4QW89njR3Z/9i0qXBpK9IVtLsu5Ohd3wE3XH2z02NreclMI1P6UhqCWbyXIrXQ/8VvUvL8qMm46d3nvWFsLYQMETUcduTDpO0/gE87IBZaYMrUABfAOBbmZ903zMbK7+c4YxUiHVHTCwv4Dc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780949395; c=relaxed/simple; bh=hI8ofeME6QsuFmkBnr6+xLOjmpEZdZfLcwmX1PKaR90=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=aFnjlM0EBUMActrHErh6HnnJxFiQf3uLj4KoEAmRwj3djrYf0fOS7CltQ1aKjM6cWpZLQ1pDvTMaBfrwtucb8KINeR5BAU15VL0KmUdxhfSmLmNyP5+Ncsjy5DujKBq6q4b7Ipz8TE+GjcGIVUjB5RMUyUISGAYTH5Z3HQFiuec= 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=p0qZPsi7; arc=none smtp.client-ip=209.85.128.179 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="p0qZPsi7" Received: by mail-yw1-f179.google.com with SMTP id 00721157ae682-7e8b45dfb3dso58728917b3.3 for ; Mon, 08 Jun 2026 13:09:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780949393; x=1781554193; 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=aOc8M9GQ2VJe92KZSwyY8Mbp47Jr3fn4y/WOydvK80w=; b=p0qZPsi7D/gGESURtejlcBRhJE4BkAg+B0Q3ewBXk9pzhOkvHwLNCFKmr0xY1Koq/P JWav27oYtaw6w9De25FXH6Gri/o0+r+RKni52fYYcfKmfJ8+iOiNWFN4m1IrZh4Z/dwS f1bgmjwfVKEdx8eteVdnFXwpqgyXZ3Rz70NVUjzYH7m6uWOhso+4tLcBUlKQJZyC8BVc XmhPgno66CN+qoLyF9VJjSJNiSVTTUGtkrJWqLIzD7WAJJwFcOihIkO4d9AScOjpPbTK 1fH83zXKuZTYHKt+z9BWBqaIEkiAsTMl5e4/7889hH5TMeN3/x++Ps/Gl/IMniE8IFav nAug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780949393; x=1781554193; 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=aOc8M9GQ2VJe92KZSwyY8Mbp47Jr3fn4y/WOydvK80w=; b=M7m5qBkIMn3wWFd/zzbwGcX/pmTRnniPsGGeFCKMdboHQcKkjHLlXdREgFcpqIdK+R D8quY44MikG5PP+guxlEea2J0Jo79sTn7uDYfZSsVex8QODjqCFYHATAsEblLcZ9F7fy tmgN+P02sDyJo8o008ZgiaglPV+MqDEWumjo4XsGjBgxLdzGkZyFCPIgeP/77Mz0cyZy 9U7ON8zbYEtxFOSy8Uym2zs2rRzbn4iCjNIrJkfWjDMlI5yH03od7fWRDkBp7bdTbxuL fj2TEzeYHKkayIoNwOoK/M4qo753tlyX4OdMHAOHgxOmhXIwNlpJSnbDQXb9VCM4UuPN Sd5g== X-Forwarded-Encrypted: i=1; AFNElJ+46jsiMKZfWNh1r9ksVAXLGuoipN4haiNwbMB7CeiF/P0whAugzWfENQMMKgFp5h5eOTMAiw57eMnGsPc=@vger.kernel.org X-Gm-Message-State: AOJu0Yw3ON4WUaUdXwzeiQzRZ12wzOmT9Rj6fZ96+UV5dIvGP3oUjsJL p/eopZzg1GQpwVruWufmnjVQ59YNEwjKaCyV7RbMs7Zf6AYwwWemiGuD X-Gm-Gg: Acq92OFpg8vHSJCmexx+jvRXR6Q0w3JVJTEBvTwYIeKIDAc6jPxWWbqdCt/TzedbRck yT6DIWfwqo97pk1580EbwEssdzNbqEOhDFz7zLvQmKQR9ADVTU6yVV/Ce7gBZ/cG8Lb0iPclbhR n17ObJiAS6Mdd9V8WMe+kfWPDtIzqGakrMq2XWtijtgw7jtLfNtvpLerpqS85b7ygt7+ky0FJGg v8NFlLS3g/fBiRQIdnjqUgEe9P0gsYqutsfkRDegV/fAKQKwnbFhQQbg3Iv9WxUjZCA6vDMdw8T ce1RiTtOm86XxSEBQH5POFezSdbKorcw/LXFgo+QXnIqyjEELrTwz5Guehzy5AwC5D/8FcKDriD Wpn6U+x6nDURQT+0AlxRivCxmvflbuKfYSkZrJY8v1bRphon/SVcK6SKrnWLvyMBfospIKW+Dd+ AhggnzES953xdCB558odbmeae7W+VJnUjyAPlMELVLlq94SS8tvLb8VtIxZWD2g03jMZLDRCjdB kPJpdVvJm4GTVrTkhP1Sy1DrXr2g2ApSECKBTo0x6DiLQ== X-Received: by 2002:a05:690c:3583:b0:7b3:b0a6:2c4a with SMTP id 00721157ae682-7ed0d1da632mr167209037b3.23.1780949392565; Mon, 08 Jun 2026 13:09:52 -0700 (PDT) Received: from ryzen ([2601:644:8000:5b5d:7285:c2ff:fe45:8a32]) by smtp.gmail.com with ESMTPSA id 00721157ae682-7ea20ea986bsm88688987b3.9.2026.06.08.13.09.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 08 Jun 2026 13:09:52 -0700 (PDT) From: Rosen Penev To: linux-watchdog@vger.kernel.org Cc: Nicolas Ferre , Alexandre Belloni , Claudiu Beznea , Wim Van Sebroeck , Guenter Roeck , linux-arm-kernel@lists.infradead.org (moderated list:ARM/Microchip (AT91) SoC support), linux-kernel@vger.kernel.org (open list) Subject: [PATCHv2 1/3] watchdog: sama5d4: fix shared IRQ and hardcoded timeout issues Date: Mon, 8 Jun 2026 13:09:31 -0700 Message-ID: <20260608200933.18669-2-rosenp@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260608200933.18669-1-rosenp@gmail.com> References: <20260608200933.18669-1-rosenp@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" Fix three pre-existing issues in the sama5d4 watchdog driver: 1. Unsafe IRQF_SHARED | IRQF_NO_SUSPEND combination: The watchdog interrupt is a dedicated peripheral line, not shared with other devices. 2. Unconditional IRQ_HANDLED on shared line: The handler returned IRQ_HANDLED even when the status register indicated no watchdog interrupt was pending. Return IRQ_NONE in that case so the kernel can properly detect spurious interrupts on the line. 3. Hardcoded 16-second timeout: sama5d4_wdt_init() unconditionally used WDT_DEFAULT_TIMEOUT (16s) for the hardware timeout, ignoring any timeout configured via device tree (watchdog_init_timeout) or userspace. Pass wdd->timeout to sama5d4_wdt_init() so the configured timeout is honored during probe and resume. Assisted-by: opencode:big-pickle Signed-off-by: Rosen Penev --- drivers/watchdog/sama5d4_wdt.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/drivers/watchdog/sama5d4_wdt.c b/drivers/watchdog/sama5d4_wdt.c index 704b786cc2ec..f74f1e8956b5 100644 --- a/drivers/watchdog/sama5d4_wdt.c +++ b/drivers/watchdog/sama5d4_wdt.c @@ -169,11 +169,12 @@ static irqreturn_t sama5d4_wdt_irq_handler(int irq, v= oid *dev_id) else reg =3D wdt_read(wdt, AT91_WDT_SR); =20 - if (reg) { - pr_crit("Atmel Watchdog Software Reset\n"); - emergency_restart(); - pr_crit("Reboot didn't succeed\n"); - } + if (!reg) + return IRQ_NONE; + + pr_crit("Atmel Watchdog Software Reset\n"); + emergency_restart(); + pr_crit("Reboot didn't succeed\n"); =20 return IRQ_HANDLED; } @@ -197,11 +198,11 @@ static int of_sama5d4_wdt_init(struct device_node *np= , struct sama5d4_wdt *wdt) return 0; } =20 -static int sama5d4_wdt_init(struct sama5d4_wdt *wdt) +static int sama5d4_wdt_init(struct sama5d4_wdt *wdt, unsigned int timeout) { u32 reg, val; =20 - val =3D WDT_SEC2TICKS(WDT_DEFAULT_TIMEOUT); + val =3D WDT_SEC2TICKS(timeout); /* * When booting and resuming, the bootloader may have changed the * watchdog configuration. @@ -305,7 +306,7 @@ static int sama5d4_wdt_probe(struct platform_device *pd= ev) set_bit(WDOG_HW_RUNNING, &wdd->status); } =20 - ret =3D sama5d4_wdt_init(wdt); + ret =3D sama5d4_wdt_init(wdt, wdd->timeout); if (ret) return ret; =20 @@ -358,7 +359,7 @@ static int sama5d4_wdt_resume_early(struct device *dev) * This should only be done when the registers are lost on suspend but * there is no way to get this information right now. */ - sama5d4_wdt_init(wdt); + sama5d4_wdt_init(wdt, wdt->wdd.timeout); =20 if (watchdog_active(&wdt->wdd)) sama5d4_wdt_start(&wdt->wdd); --=20 2.54.0 From nobody Thu Jun 25 00:31:37 2026 Received: from mail-yw1-f172.google.com (mail-yw1-f172.google.com [209.85.128.172]) (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 893B93E834C for ; Mon, 8 Jun 2026 20:09:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780949396; cv=none; b=GN+aARr664kEbOdXpjlezAUhn6fM8j5LyNkWcm5q85zgYNtrZw14DSkiNZRoJ9U8EGvhsC1ihvGp0+mf4KGIBQtN+wFSyneDEB8ADTv/r0ixomrCX3eEs6ijZ4HSXP1/wKlq5XiPm5kxkYCqjxAnTT8NTfzKsZKEsyRKkSTOQbs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780949396; c=relaxed/simple; bh=DHLaS/bps7xuN9CpIE0XgH/Gp0TcK5ng0HwpXQ2Y+MY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cBcVXz+sS55wb4m91FRVRuebJzv4nmQ3+VAPbr23MehNY9lJh3IGjpwJk+x7ZbIoUtXOumtehSYMGdTySWRBdIqAKa7lW72s8038RGhwKM5O0v2GDavLOGqbC/TCN6fx7gLN3t0PK13j8s7jx/v5dZFTee6gZuT0OvMMeS9yeYU= 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=KUnpVRNn; arc=none smtp.client-ip=209.85.128.172 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="KUnpVRNn" Received: by mail-yw1-f172.google.com with SMTP id 00721157ae682-7ea16f090b4so61157757b3.2 for ; Mon, 08 Jun 2026 13:09:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780949394; x=1781554194; 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=qOjBZkHBZjwgFY+2gRIf62N1RuUWDhpPmFlrCLR4zCo=; b=KUnpVRNnk+0MCFABr+ZfnLg3uyYgH1VEQfLxP7+Su2CpqjSHdbXlEB4kNStlAFPICB 1V1leAI67BAZ+CtnRwY9JVYR6o4D2i0RcBJL09vnJSVKVWrBUxqLa1Bh6tP/TJz5cs1n TQUP2ydGAl3O49aL2NoayM/aUMv6BtqmQr86agykDCv9pnE9LiHc6vZKeqOF0uc38K5+ Dft+OnHJ8RfQjnNMky0O3HutiZQE5JzI2SYfjP33u3LyA1YTBcRaaalQxvOs64e20lQJ uibYoBeWfyfCgYGMrlUKNuM1ELWiBvB6IkCoks/Behr9md3dfKbvqkLjwfirl9NJA0Ry qD4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780949394; x=1781554194; 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=qOjBZkHBZjwgFY+2gRIf62N1RuUWDhpPmFlrCLR4zCo=; b=QWKzrnDAq4KUHUSozXjn5LVVry9g3MK6EctJqp5JLQHlCPVGLKz8HJ46kqgIEdKYXm A4CF30buvopZDqooD3fuXRczGLSzI0oomskczzDUJEV2QnnXGs8cfPDVQBqd/U0TZpSv x3gZK4WT+muh6jzr3f7vQphYkmKyVpuHO14t6MM4Tnz65Kl2qSUXm/WoXX6eea6HW+uJ sW7K+iMoBR42diWvGYubfLEC/lz8TmTsEnGSwNtNUMffz6ZFTKXvq0O+sXPxif+SBfgs YM6BEXDBdukFW2OchJSmOejBzX7QAdK6iQOH/kM33QUbCAzO30Xknio/3p7c9/FndtL+ +HEQ== X-Forwarded-Encrypted: i=1; AFNElJ8s6Tzc0dKhc4+yiEK4deKABf+6XFKh/nAlojUiQoIlxsO7SRlXr3ATZRCPl8+pUUDbcZMOziXFBqQ4MF4=@vger.kernel.org X-Gm-Message-State: AOJu0YwtqwdsjC+n05n0VwU2VYK1kxWKVqzWnjpDxqcX9IT945SqfMy2 omTxI76jrysi5EGdMmuI6MT+XZTLB2WVEVnHVbPwMd0VPsZTuPK+mwkSWuvDlSKS X-Gm-Gg: Acq92OH6TkA/x7BTvPIiunq+AIHeK1oW4LuIMOCkiCEI9zOsZ5T9GyHyA9d8DQpQT+j SQWsjs42THCtEhncsu5qaqolqycrbjc/fBjG8tuX+KE3/whDIJU0UavQExIpwnjQTqcPzmVvZ3+ OE0yqkTiEsw/NCB4KsWrkxpiOf0lBvQhGEt7sb30SKwcDkxQjIurjuiNTW4lqb+zDHtruChHuAl +a2c5w5y34WXzmgFbPtFnQZexsx0Mp2IMKyulgrwuqtnlaJ/5emqpFP3bINg1ULaaxPenTlosG7 BbGIFxfAC2mTcpKwopu+ZP/n3QyocSieQvxxUsvEACEszIyz0RqiQqORF5reACbmz7nSCWyWHLV 5bshQKY4CsEQXw1E/6DxchbtknU/q/Ynt1/CXnGMXTjYJwQpvV/G8SzYwl4DYvTHQEj8F58XY7p D9h/9EyDMEc4GOz7Nk3zpE7G2Jd5yu49YTRqS2kNfrFvI0w61M84qeH/y9O5kw3OKJxqP2Apnyu gR/YokAu5g+CtL1xIvHBuuRLsqyquXj/W2MohXDOvAr3w== X-Received: by 2002:a05:690c:46c3:b0:7bd:93b0:bd25 with SMTP id 00721157ae682-7ed0adbb639mr169428527b3.4.1780949394561; Mon, 08 Jun 2026 13:09:54 -0700 (PDT) Received: from ryzen ([2601:644:8000:5b5d:7285:c2ff:fe45:8a32]) by smtp.gmail.com with ESMTPSA id 00721157ae682-7ea20ea986bsm88688987b3.9.2026.06.08.13.09.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 08 Jun 2026 13:09:53 -0700 (PDT) From: Rosen Penev To: linux-watchdog@vger.kernel.org Cc: Nicolas Ferre , Alexandre Belloni , Claudiu Beznea , Wim Van Sebroeck , Guenter Roeck , linux-arm-kernel@lists.infradead.org (moderated list:ARM/Microchip (AT91) SoC support), linux-kernel@vger.kernel.org (open list) Subject: [PATCHv2 2/3] watchdog: sama5d4: use platform_get_irq_optional() Date: Mon, 8 Jun 2026 13:09:32 -0700 Message-ID: <20260608200933.18669-3-rosenp@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260608200933.18669-1-rosenp@gmail.com> References: <20260608200933.18669-1-rosenp@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" irq_of_parse_and_map() requires irq_dispose_mapping() on failure. Don't bother with it as platform_get_irq_optional() doesn't need it. Also handle EPROBE_DEFER. Signed-off-by: Rosen Penev --- drivers/watchdog/sama5d4_wdt.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/watchdog/sama5d4_wdt.c b/drivers/watchdog/sama5d4_wdt.c index f74f1e8956b5..2536e2f2ab32 100644 --- a/drivers/watchdog/sama5d4_wdt.c +++ b/drivers/watchdog/sama5d4_wdt.c @@ -11,7 +11,6 @@ #include #include #include -#include #include #include #include @@ -245,7 +244,7 @@ static int sama5d4_wdt_probe(struct platform_device *pd= ev) struct watchdog_device *wdd; struct sama5d4_wdt *wdt; void __iomem *regs; - u32 irq =3D 0; + int irq =3D 0; u32 reg; int ret; =20 @@ -281,8 +280,11 @@ static int sama5d4_wdt_probe(struct platform_device *p= dev) return ret; =20 if (wdt->need_irq) { - irq =3D irq_of_parse_and_map(dev->of_node, 0); - if (!irq) { + irq =3D platform_get_irq_optional(pdev, 0); + if (irq =3D=3D -EPROBE_DEFER) + return irq; + + if (irq < 0) { dev_warn(dev, "failed to get IRQ from DT\n"); wdt->need_irq =3D false; } --=20 2.54.0 From nobody Thu Jun 25 00:31:37 2026 Received: from mail-yw1-f182.google.com (mail-yw1-f182.google.com [209.85.128.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 4D3473E7BD1 for ; Mon, 8 Jun 2026 20:09:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780949407; cv=none; b=tufLPimEWt2Z+dW59afoCLzFKLXajmq5fI3BJxzCVqQxTtq2ZpJxaZ5Sfbr55Gv7qcBM0N+Tj5/D9XysS1o8ti22A7uA+PlPLw2NO9XJmfzCQySq/6IEmpCk5V3Y4jFm5U00z6Go71eP+4X8d3ptYLjX+VPVUIEUr59EoH7Vfdw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780949407; c=relaxed/simple; bh=louR7FGrIJjSfJWVx0mXfpfHnnBnvP7COW3dXLPkNp4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oU1EMJp9QoEqIRJlv0/E2TdmpzCupLk0RkU7tuRpTo5CaoAsr3UUVCqkIKLo8PTmgyVBXQ4Scxuurwjlt+2kdg6quNA01jMj9mki7dVrCTAe3Ifss1UWT0TiiqWANjEBxacBfkMtnQvhAyr7VXLLrAg7QBVJr3fI0G55iitMzmI= 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=UPMVvuiM; arc=none smtp.client-ip=209.85.128.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="UPMVvuiM" Received: by mail-yw1-f182.google.com with SMTP id 00721157ae682-7dc67a5e102so49841207b3.1 for ; Mon, 08 Jun 2026 13:09:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780949396; x=1781554196; 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=HcanDgo3AUrD75pAr7Q6B0AchjycHv4iLbSmE1inK6Q=; b=UPMVvuiMMcIWvFf5+jkHY7VQjk3ClsNe909HUlI15IYNyd/BVZyqvOaIAC/aYB7rKw s+uVn3hotlXa3r+gc/RpdxEZLw829RDcntCwNbMvcJ9LOgINsjuYTGjmsnDJYlhzzJdT 5O+OA6CQLBAKs7BEIL9OYLysPIgjuy74r3n5SNBPcMZHFzBsbVqLaSXbXGDK3xgcmLfX IspbcCnTKEb0s+Mbxx7y+3V8Hpe2JzvPzZ87IdLtJp1v5YKihw27Dtc6Zcj2a7wwbN5M zjpurJWgCntPZ6qWdLcMaO0ta2E69hsAvm+GVEQv9C+bsIKHZcBXKRR7mMo6Z9CpJmOK k/oQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780949396; x=1781554196; 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=HcanDgo3AUrD75pAr7Q6B0AchjycHv4iLbSmE1inK6Q=; b=adcENrLtmDwSedQ4O5yWGjSc+y5ZL+jDE+STFyGRNABd69ZKbNf/4zg9GLMvfSGLOz PNDWAmDIUhZ5S3nLtFwXlIjOGk0pYfRHW8vmVDr1dpM1gBYVxsozwlEkZDMasOcjgEqo 5wSSaX9POn6vT7Y8FTrxy0iQe9boPEh72HGkX9yQ0GMkbR63qcPRAUd9YR80LPMwBqw8 HcLJlfQSDNBMx+RSQMuKyFNvkXrwQYv2ZgaGeefOS1+r3f4eS+Mxrgvu1Khx2GtSacE8 G9ApyRSDikPaSq/fou0byYVPP2vrcHEaih137eDPyjdZ8WJ38GTNCTp2x0+aJPutU5yV 3+Qg== X-Forwarded-Encrypted: i=1; AFNElJ+li5wUdZmGF0WisIEbVW5nLl5vHB/izxOPrmkR924JR26257nH4XtAyY7grrLA8T6udjsRRs7RZmnMG/Q=@vger.kernel.org X-Gm-Message-State: AOJu0YyZl0YfFz77QitdoOtp8lmOwRom0cxunIGiT4eGxDfDSmqBd+eP Obuy8sRpjjCQvimH6P4tevxSJMwaMPgdaQDfayYw/2FlqXSBxQW56GLb X-Gm-Gg: Acq92OHxgvf8jnMvhjdssHOtHgRnjWTz+T49GSuRUy/s33WlJSuVgoDQnye7Zyf4GZJ hk9g5/yA2mo5PD91KuP0mUDEMGQqDtgkyNXpOtcd9silsaW4iyB3dvk58WFObZYRidhRR4r1w4m D6xi3b9OY8GwMWqnETk9GfsZxI8Ny7LzbZ/WGWnhmLx8UD9wWEGBVOzonFVhoSgsFHaGOWa9Xo2 TIiHuok+7fdb4y6BU5wx2lqK7PVGh7RRCoBeZNslBlhAtRfBLevJffJHAr0M9Q23/hu5wdwTp5N 7mbAv5n6k2OPi63/SXELeG9tyZZDBw+TYM3bXUzPwcVOrx9lL4hU+ALHb8p02Lm5BY1mydQmX0Y Hs8ebYEu0IHQpYKKHN9EbcYdV5A3CrfArkpxi8Cdn7YmW2fV7ykvFKPNydUcfpA6lmwH3Amv1JE m79TujSyU//eRjgrTvG6yxC9dDUuEoFAhoraYBbfSwbg9wPkyosJkvHejV+9K9l5xTlPmA/Wpdp bmP2gvM8vrdfHy2lbGWAA4kiAdMRIgI0Cd6quCYD8lfkw== X-Received: by 2002:a05:690c:350a:b0:7e9:ab56:3c4e with SMTP id 00721157ae682-7ed0d5bfcf5mr147641987b3.18.1780949396178; Mon, 08 Jun 2026 13:09:56 -0700 (PDT) Received: from ryzen ([2601:644:8000:5b5d:7285:c2ff:fe45:8a32]) by smtp.gmail.com with ESMTPSA id 00721157ae682-7ea20ea986bsm88688987b3.9.2026.06.08.13.09.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 08 Jun 2026 13:09:55 -0700 (PDT) From: Rosen Penev To: linux-watchdog@vger.kernel.org Cc: Nicolas Ferre , Alexandre Belloni , Claudiu Beznea , Wim Van Sebroeck , Guenter Roeck , linux-arm-kernel@lists.infradead.org (moderated list:ARM/Microchip (AT91) SoC support), linux-kernel@vger.kernel.org (open list) Subject: [PATCHv2 3/3] watchdog: sama5d4: fix NULL deref in irq handler Date: Mon, 8 Jun 2026 13:09:33 -0700 Message-ID: <20260608200933.18669-4-rosenp@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260608200933.18669-1-rosenp@gmail.com> References: <20260608200933.18669-1-rosenp@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" Move platform_set_drvdata() before devm_request_irq() so that the interrupt handler can safely dereference the driver data via platform_get_drvdata(). An interrupt on the shared System IRQ line (SAM9X60/SAM9X7) could fire between request_irq and the late platform_set_drvdata() call, causing the handler to dereference NULL. Assisted-by: opencode:big-pickle Signed-off-by: Rosen Penev --- drivers/watchdog/sama5d4_wdt.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/watchdog/sama5d4_wdt.c b/drivers/watchdog/sama5d4_wdt.c index 2536e2f2ab32..7cd6f35c8e21 100644 --- a/drivers/watchdog/sama5d4_wdt.c +++ b/drivers/watchdog/sama5d4_wdt.c @@ -268,6 +268,7 @@ static int sama5d4_wdt_probe(struct platform_device *pd= ev) : AT91_WDT_WDDIS; =20 watchdog_set_drvdata(wdd, wdt); + platform_set_drvdata(pdev, wdt); =20 regs =3D devm_platform_ioremap_resource(pdev, 0); if (IS_ERR(regs)) @@ -319,8 +320,6 @@ static int sama5d4_wdt_probe(struct platform_device *pd= ev) if (ret) return ret; =20 - platform_set_drvdata(pdev, wdt); - dev_info(dev, "initialized (timeout =3D %d sec, nowayout =3D %d)\n", wdd->timeout, nowayout); =20 --=20 2.54.0