From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com [209.85.218.42]) (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 4C95756854C for ; Wed, 14 Oct 2026 17:34:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.42 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791999269; cv=none; b=cWTt7US1Usqbl1HstlVHT0kqeG8A23yV7BUGNKK/TjhBz52Z+9Vpkpnq1yr/54n7xEOM3qzLUy3SCePgZrrbahx48ZJIvufDym5NsWn6gSqki/nPW6ZYDOq4bPlLYwzgdYmPDayuxGTB51tSs87iyq7etn/rIx5O3KbGCMBzsq8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791999269; c=relaxed/simple; bh=tEaYoaokfTDeC+YTWR3V+2BkXiRgjSARyNOHEZYlDSM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=R+c5ip81LybPMpYX4I0wpW9P+IxW41nv2iyfhXNthkFFk3+0jRAgch0Ocy622JUjxXbG7E/Mi/HgjgkbQZfTn4sxPriw+2JIMttud1jH9CLMlnFggNTezDwrVNvJwaT9HUkhC1ozgMV1ya1fX2KY12eusn1hEE0uazXts5Weu/A= 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=kTr/V+Sb; arc=none smtp.client-ip=209.85.218.42 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="kTr/V+Sb" Received: by mail-ej1-f42.google.com with SMTP id a640c23a62f3a-c262f1186f0so587920466b.1 for ; Wed, 14 Oct 2026 10:34:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1791999263; x=1792604063; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=4o314AkdT/hGMbAfrRQAXUHtm0eSAGgqeibTH2FdEkQ=; b=kTr/V+SbgjAUKvRfsrnQ5vhDid2r9OpinKSRPvLTq+WTha/2X+8BT1ItxSN4POf5nk Y2HWWhSdO/3JP8S8ktee9XFHXo4RHBubEZJK6ON60cK6iz8QpleKHpniuwJbVbrCWASO QgkFJ/CND7QJBHFSEP9Teuffmd75T6Utl/s+aBSd2n0qUUuHBs3kHd2wWWTRixyLp0Yn wUohuTW1KXLaqygx7bQmM1f2Bv59yoUfz0hcUhbB+0+bdnLVd17NoURLgkG9ZNyzTKOV 2wdqu6Sa26o79Va8fNGyL833xN0BnrnzLUlbln7OZsxU/mtfZQbFK47I2aX4l9i72DTz h3rA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1791999263; x=1792604063; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=4o314AkdT/hGMbAfrRQAXUHtm0eSAGgqeibTH2FdEkQ=; b=IFieY3/g1PW7hbWFP1cK0FbYKKtPQFTyU5RuetLKVaciCW0CAGYDsAAZn++pRy++sE 6HFZIjYihpJ+nGHTJ8sSmmyQN/BZyIR2mxtFk7dx56mu98UAP+eZr4310jZzj85JpFJU sNdUn15UnFbfq1rq3QBSna38C9JPFILd4NVTWNMgx3dNjPf5rOoDn4RI/GqhilLOcePF IXU/vbxHlfH+GxXYLTHdjMFq2Danomg/0biSHdFhjGOD7fNfI/mSjEyyNhjjZ5UeGo8T SVFpvQkxMJLFHKNGV2vzzSBs1hXLi8WnY80Ej9GBezLpDfqHiroNFpYA9oIjwCV8MOSs SF2A== X-Gm-Message-State: AFq9FYJ65iO74KdAM1Yy+HpQQRjoVGgU7BmwkXDuWEPf7FvD/mir9h9R IPDzwwX6/gQFAyEQkx+Jw+cuy/pYR4krZVIFu7mZZQNRFWMV3gYwpjqi X-Gm-Gg: AYBFou1TQWjDczDVOFXsX927y22Rn3r7ZYjaKf74OTKcGyF+EWgxiPG4XqW3dFVxoiO 9VfBIhDsxGfghCiGLh+77qk0J9xrPVocQorQeBrU2vXTJr/NJmXx7qDf7O9dGM7UXJ7UfGtl6VL yzhw3dbG+jsfjUdjk60AD+ui8LrvQhBMnCmwlAVMK4EtZ8sWROBsOZvcf5/ZVDimJ+oxM8KnUDM OdPi898AYKNXXdysPl3RQkU43iaCWd55GjV31xsbYaibQIp6vE/deINTjX7GOrr6lMaE6X1Aw6W E4PZXDgHwNPvj6BnSqOCcgbU3Em9UjnBgMQq8YqqH/fAd+FJKfNcpO3Ky1BcmE4dg2cYpRWbjOq U05PrBppXf3CZcn1/IqrvsJIN1rTp1YECeDtfn17L3UQbSNv615TZ39FRuIRHVNKrkVT1cM7XIz sDNKBCwZloncQ9olOjr8+tk5m5o75XO2A+BBx9NpTANmH0+vg5+HPXkWwy79WFxgHNjz3o3NvCu h0Luk9Yw7Gmm9H/ X-Received: by 2002:a17:907:3d4a:b0:c26:22ae:b66b with SMTP id a640c23a62f3a-c31a9fa1d4amr1618151866b.15.1791999263151; Wed, 14 Oct 2026 10:34:23 -0700 (PDT) Received: from [127.0.1.1] ([2001:4bb8:148:f08c:65a8:f8e5:f310:5a71]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c3ed963cecesm9381366b.21.2026.10.14.10.34.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 14 Oct 2026 10:34:22 -0700 (PDT) From: Javier Carrasco Date: Wed, 14 Oct 2026 19:34:05 +0200 Subject: [PATCH v3 06/11] hwmon: chipcap2: disable device after hwmon teardown Precedence: bulk X-Mailing-List: linux-hwmon@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20261014-chipcap2_locks-v3-6-27ebfc2c5b9e@gmail.com> References: <20261014-chipcap2_locks-v3-0-27ebfc2c5b9e@gmail.com> In-Reply-To: <20261014-chipcap2_locks-v3-0-27ebfc2c5b9e@gmail.com> To: Guenter Roeck Cc: linux-hwmon@vger.kernel.org, linux-kernel@vger.kernel.org, Javier Carrasco , stable@vger.kernel.org X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1791999252; l=1970; i=javier.carrasco.cruz@gmail.com; s=20260924; h=from:subject:message-id; bh=tEaYoaokfTDeC+YTWR3V+2BkXiRgjSARyNOHEZYlDSM=; b=DU00AsHpqm60m8y8hn5WeCDWjaGzKIjb8MGXi6ooaNx0rRcHilmSsoGZ7KWf9UAzL0l6yheJ/ A7xJ9vTetJfDZJb90s6FWyJegpqVQY+TFNRvSerHuL7jvfKy2eo0DYh X-Developer-Key: i=javier.carrasco.cruz@gmail.com; a=ed25519; pk=VV+hcMoOj1Sx6xSiY0W/FZNAskGZe2AagSMVj0PsmAs= cc2_remove() disables the device while the device-managed hwmon device is still registered. A concurrent sysfs callback can then enable the device after it has been disabled during removal. Register a device-managed disable action before registering the hwmon device, so devres unregisters the hwmon device before disabling the physical device. Fixes: 3af350929e75 ("hwmon: Add support for Amphenol ChipCap 2") Cc: stable@vger.kernel.org Signed-off-by: Javier Carrasco --- drivers/hwmon/chipcap2.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/drivers/hwmon/chipcap2.c b/drivers/hwmon/chipcap2.c index 21dc6db27c40..654f6420da7a 100644 --- a/drivers/hwmon/chipcap2.c +++ b/drivers/hwmon/chipcap2.c @@ -152,6 +152,11 @@ static void cc2_disable(struct cc2_data *data) } } +static void cc2_disable_action(void *data) +{ + cc2_disable(data); +} + static int cc2_cmd_response_diagnostic(struct device *dev, u8 status) { int resp; @@ -744,6 +749,10 @@ static int cc2_probe(struct i2c_client *client) if (ret) return dev_err_probe(dev, ret, "Failed to get IRQs\n"); + ret = devm_add_action_or_reset(dev, cc2_disable_action, data); + if (ret) + return ret; + ret = cc2_request_data_ready(data, dev); if (ret) return dev_err_probe(dev, ret, "Failed to request ready irq\n"); @@ -762,13 +771,6 @@ static int cc2_probe(struct i2c_client *client) return 0; } -static void cc2_remove(struct i2c_client *client) -{ - struct cc2_data *data = i2c_get_clientdata(client); - - cc2_disable(data); -} - static const struct i2c_device_id cc2_id[] = { { .name = "cc2d23" }, { .name = "cc2d23s" }, @@ -801,7 +803,6 @@ static struct i2c_driver cc2_driver = { .of_match_table = cc2_of_match, }, .probe = cc2_probe, - .remove = cc2_remove, .id_table = cc2_id, }; module_i2c_driver(cc2_driver); -- 2.43.0