From nobody Sun May 24 20:33:04 2026 Received: from mail-pl1-f178.google.com (mail-pl1-f178.google.com [209.85.214.178]) (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 BD333233941 for ; Sat, 23 May 2026 05:11:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779513089; cv=none; b=JRZmBX3WQhkStVk5aIiUmHRlrr1dAwCa5a/XpufYnoyoZ/FzcBI/LrRTCxZ8mnTClXKorANT60Mt6i0jlBVkooNoEEqQeP2gH+Kz2cHOUXP9h3aliDePPt/kWtTc4TPQJRP3oe8RknG7SM+Fu1yIu+GYyoKSABxO6FaEuBoT+Zg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779513089; c=relaxed/simple; bh=Nu6W8k5XOMh2AJzVorqKOmSvKAncLNWlkoLvaNf337Y=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=LoXvGkwlY5SMBPpqjcIjPEpCyocnEJ3+WKAVe2NfLb8uw4rtPpGdlJ5fgeiEJWZSutgyi8ChNJSoBPw0lPdkHsFUuw/VlTfjndUqUdjAxLJ75r9xO5kGopWlXcGTBMUFAguwmMPAgWKOSlEvspuouRM8/C8PO85o5SsHU/uTIL4= 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=hXfm/n3V; arc=none smtp.client-ip=209.85.214.178 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="hXfm/n3V" Received: by mail-pl1-f178.google.com with SMTP id d9443c01a7336-2b9fcf7c91bso89618165ad.0 for ; Fri, 22 May 2026 22:11:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779513087; x=1780117887; 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; bh=OQ36cdauGD0igpnQwY9ngpIaWyW9GdP1S4Xkn70B54k=; b=hXfm/n3VoHyVwqsdTSnVKb+RuAeyEei/DlEtxtN8CCWMx3pj2HedM2gqgUwMaryj6E urkIV2UUG0ktdBS+To5Or7oX1KhkLGRukQiLVJ06WM+0F/1/kyPhUygfLic+179rEb2w bd5lACupf+UuqN/W105C1iCkewcfXJ3wjwleqWhTqCKIQZtm9HO3MLL0Y55AgJNvBi71 KR4nxeiqhzsCCnu/LlSTfXm9zPKofxNNhdKPrvVh0IBd2kYmlw7gkfKVdmbRFHk2gnCW kmX6hzLft6KXIJk8qttQmsgnX9jXTAfollIhJV+WV5aJ3nvWvPp8lghC2oxL8gdjcH3Y 1+Qw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779513087; x=1780117887; 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; bh=OQ36cdauGD0igpnQwY9ngpIaWyW9GdP1S4Xkn70B54k=; b=lVNAVrENLuiYmkKozpPVtoZ6/9yASUcTbluprC+3QyZtGysM/LJzkFjA9TCyEZ3zA9 YtNAF84PLzJ18kkHdKs7GkVVfd3Bry1doWMonQYEZLmw9HJUWzyhnJC7okxx1fm+XS17 pRoWIeXEGrIP9oMxs1VeC6wOMy5vDU10GluMneJ91lEW/QnojhjlFZ5PkpfqGZgkr5w0 NZrW7+YS3+xfyvUFy2c5XTxCHpV2qxX6xOlnYyv0sD7jYXLPca4S0Ie87ZbgJnC0T0Ew 7jmFRPfmKpC5Du+1Uf8XIzZWO8Jd0xka7AXl7tTLXoXjqHDS5pIwQCVKXKct1FSKuJ1F Dj3Q== X-Forwarded-Encrypted: i=1; AFNElJ+tdRZw0T/EQicShr+sLOdODtXUXgHiEX8UGKlyFBvjLOTKlFArDlMAqrodFslSVVX1Coa4SD7hzQNnJ1k=@vger.kernel.org X-Gm-Message-State: AOJu0YwktutDN6cwudxaV2t2az8fxTBJ/XNiwdoFc+c3A0MCkwQjqYs8 Lbup8r0fpvrOU9Y63cwIJYRRfLQqUapGHPLs5mHL6eIkPTRGUWhvPpON X-Gm-Gg: Acq92OH2kCroK0KKUkVoOV0isabuuGkVbNsvfSqP3nRNWaPODA8OLpeqrsrHKUp43gD pX610tkQpGfP8+y7m7feTNEB45V8Fc/Vh3f4jVQOLqY9o6BzLysAG1j9l0Zec4fF8jAI176C2X9 /JzXt5UkRx81+239XTs/2F/IUENoDzw50juYPSt2cYaOry19Ndw3E5md36mu77BqwTv/2oPRUwZ Ly11iQKoNZq5ttiX/7tmCKtzwUV4hPH/MKHsv5L1SxfW21KlX7dwfqDYUnV0SRfTMB8nhsWLCof W6TXsti+7h2cmLH753iYkKbCrR0LL9i9UXHHMOSwu61pnaT+2LAEfgCWnMr+5RE+iiPMcg2b0H/ vBkOImgVlpEIWpOJFT6bx9AWin5lonPT6tL1Ovr8SsCR4cV7BYGQryD0cZ3uyT3WL4ugiO6LBJb Vew+DwN2eAygO1Y8zYy2LeAi3g8T0C7T1zaYwfHESoR8XCH5qyhO0ize60Os4wgHVCZlN0ZmgKV uS16FayitT/eZNUbyNIWKAPvOYJyHGZaBDpmCFm7F44qzrd2d/B+0l6fHi1c5BcxN1O X-Received: by 2002:a17:902:d4c3:b0:2b0:4fb6:85ce with SMTP id d9443c01a7336-2beb065ba47mr67303165ad.21.1779513086848; Fri, 22 May 2026 22:11:26 -0700 (PDT) Received: from ERIC039ERIC (123-192-112-211.dynamic.kbronet.com.tw. [123.192.112.211]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2beb58b3c92sm34935585ad.42.2026.05.22.22.11.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 May 2026 22:11:26 -0700 (PDT) From: Chen-Shi-Hong To: Guenter Roeck Cc: linux-hwmon@vger.kernel.org, linux-kernel@vger.kernel.org, Chen-Shi-Hong Subject: [PATCH] hwmon: (fschmd) avoid client->dev dereference in watchdog_release Date: Sat, 23 May 2026 13:10:53 +0800 Message-ID: <20260523051117.9400-1-eric039eric@gmail.com> X-Mailer: git-send-email 2.53.0 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" fschmd_remove() can detach the i2c client while the watchdog device is still open. If watchdog_release() later takes the unexpected-close path, it calls watchdog_trigger() and then logs the event with dev_crit() using data->client->dev. However, the client may already have been cleared by the remove path. watchdog_trigger() already checks whether data->client is still valid and returns -ENODEV if the client is gone. Use its return value to decide whether to emit the message, and log with watchdog_name instead of dereferencing data->client->dev. This avoids relying on a device pointer that may no longer be valid during release after device removal. Signed-off-by: Chen-Shi-Hong --- drivers/hwmon/fschmd.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/hwmon/fschmd.c b/drivers/hwmon/fschmd.c index 1211fa2259e5..d1e7fc72e81f 100644 --- a/drivers/hwmon/fschmd.c +++ b/drivers/hwmon/fschmd.c @@ -834,9 +834,9 @@ static int watchdog_release(struct inode *inode, struct= file *filp) watchdog_stop(data); data->watchdog_expect_close =3D 0; } else { - watchdog_trigger(data); - dev_crit(&data->client->dev, - "unexpected close, not stopping watchdog!\n"); + if (!watchdog_trigger(data)) + pr_crit("%s: unexpected close, not stopping watchdog!\n", + data->watchdog_name); } =20 clear_bit(0, &data->watchdog_is_open); --=20 2.53.0