From nobody Mon Sep 28 09:58:46 2026 Received: from mail-ed1-f52.google.com (mail-ed1-f52.google.com [209.85.208.52]) (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 A64BE37E5EF for ; Sun, 23 Aug 2026 17:59:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787507953; cv=none; b=nmZW6xqQHD84F53qPNozWYcT1n2SAsEpRWETpsVWkm/F4/ReweyTe99m1DjBLCTfN6c1cgwV02vGdCrIqXiblFaU1DjEh0z2bJJKL8yXgUph27q37YssEK6r8/4b0JK1bLQsJMhPsX2xtBmTg9DW8RzH3E+JM2bC9Y850TTaEJg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787507953; c=relaxed/simple; bh=fLQQ4JIzzuT4Vt7XQPvCoVjlsMWHJ7PoqIP957VnMqs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=NmVLLNdNHSMmRbn9mmKtFVHWeI6rtKoTDOwn2iDKIOjvHoANHGsY3rYqrnElGkcFyHZhrJVPTH2WV/+EmHO3VYDr/OMKraujxI6cCCvPxs6dw+FrsKIptvvPr0fhjccSEYFz9t2sqfRVfMEcKJH7H2Tw+uVUHJ3DKNuInIBRJTc= 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=inNZalsl; arc=none smtp.client-ip=209.85.208.52 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="inNZalsl" Received: by mail-ed1-f52.google.com with SMTP id 4fb4d7f45d1cf-6a422090b14so3711108a12.1 for ; Sun, 23 Aug 2026 10:59:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787507949; x=1788112749; 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=I19+PjIQNnODooxQ97qMirgzt/rnck5BIrQXPDznt18=; b=inNZalsl0ANHa0i+w0ICoAxv26GI6qIZPMzA6KRbd3R3jgUMQuYdi0CGDsSiJ0SLek nyZOfRfhBNZCFJradEUCw3c+UCBPiqhpy1yJeUSNac6VlwfLEZoRad4aPfOIrMSg84oV 9Si0OT6kIpP2jee34x/Gfj984q6L70wnvKk2O5tuRNz6u2p7ektcOkgMwbszSEg6a8Yq 46IbboLnDni+S3ciQic8n7Tp2alKQpzb8xQGcndO1yiqZlFQbhlDKqFcKfJXebVprt8O Me5evxPyY18InEREs+FrM6Fq7IWYixJTlL4ovBnSYDNJX/0nOqbJ5+MOBq17re0CLfsA azFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787507949; x=1788112749; 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=I19+PjIQNnODooxQ97qMirgzt/rnck5BIrQXPDznt18=; b=RrJn6kRweqNB77hA3iL9TRcQQ81cptEmI/veDKz9BO4zLVLC3nwsmlz/+jjzsaSB/u NHnCO+DiJ8PBQFQgQyMHcN0bjpGYCq8B4PzXb2RaItQac6Jf6Vlp6ZJKlbrYdyXQ7z8C IHLsGWhfPcEq7HpF+DJEQeBhBek/XFm4nKL3QoOtPmXCTaSbzIlpueUsA8ecnQHDVwDf iqTR4zLCLchLbjGpzrdqkre9q77ahPdedZ38IOV9iYwf23JRULXl9xSAI1ApIAUmdIWe G8AmaZByq6EDWMM2umLGUfwQtLybST+D+aD3k+iUrTDFwdp+QiievfoNoXuIKJrYnRZI ZIjQ== X-Forwarded-Encrypted: i=1; AHgh+RpkwNFYmdHo6fjWC+J3GYKY0UTCqnQw5LZuKtoP+hpSjyNQyieOpVLq8WC9RfT6Rra3oLgbs32hjS2Y8YA=@vger.kernel.org X-Gm-Message-State: AFuF++k9qdW9ZN224NXAEf0YtUer1tIJHny4cXZmJRKvsSlqcUUymEww 2hV0dYQSvPT48HLeUxFbXK5QRXcpM0pS4lrBuZMMYUTBPeYe+eaaWnAW X-Gm-Gg: AR+sD11zDcv9tkKZ3LjOEpN5IbZ6ptHwh/jkUOplxJLkbBK8C8DoyYhiK44IUx0s+1U BKpaeukxBNg7jO1jf1rcJHUcLCjogiGNWGtoFTN/VuyxfMLFKMqFnHVodViUhviw5CmV8ur37qR 8MP4fV01RiVsBRs8yHFCgj4jlJVEURBfVF38bjHFnvx/Yb3cb0nRuVkIfFBLEFW5g1w403xpuJb Eo2lyEMNgaNsQWY+gxvr+cCm7ske9yR/GLibKmQjsIq0SuSYt3Rz+J8Jwsj2UKYSREDVyP9lUnn i2VU9RCXHnHXYT6RGYYNTyJKs3ZktemYIUWcGOgB+XuFWTmw7TH1E0oJCNKbv40LlQ/94mzaUUB Oo90f8jg4DaJvPu0mATiPbbPbaox2X/0akw8axM8P8JU0rmzxwu20l4515RGeNcUPFKvlM3p41R zVs4nltKQXL+dBLHLBOBu/6Tkn1dd+YELoi7E3HsJcminffuNkXo6Na7PT2HhvdZTo3XdZY89It tT4Og== X-Received: by 2002:a05:6402:50c8:b0:6a3:87b7:b516 with SMTP id 4fb4d7f45d1cf-6a582b25777mr12416486a12.6.1787507948478; Sun, 23 Aug 2026 10:59:08 -0700 (PDT) Received: from [127.0.1.1] ([2001:4bb8:148:9afb:38d7:b606:f380:289e]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-6a59e199cb8sm4153933a12.16.2026.08.23.10.59.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Aug 2026 10:59:07 -0700 (PDT) From: Javier Carrasco Date: Sun, 23 Aug 2026 19:59:01 +0200 Subject: [PATCH v2 1/4] hwmon: chipcap2: fix channels in humidity alarm notifications Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260823-chipcap2_locks-v2-1-6a26c8e9e2fc@gmail.com> References: <20260823-chipcap2_locks-v2-0-6a26c8e9e2fc@gmail.com> In-Reply-To: <20260823-chipcap2_locks-v2-0-6a26c8e9e2fc@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=1787507945; l=1798; i=javier.carrasco.cruz@gmail.com; s=20260111; h=from:subject:message-id; bh=fLQQ4JIzzuT4Vt7XQPvCoVjlsMWHJ7PoqIP957VnMqs=; b=9DUBcEZ9MfS/ltCluXensv7cQ6cP7LfZorGh88txRsFUX+EwvMAMqF2RGAFz/vH3vAEqb42Zd RGRLru7TivxAIWPl1JUrYOhqOOpzQoBtyAkat3Mxk0WO0XMFGsXdH3/ X-Developer-Key: i=javier.carrasco.cruz@gmail.com; a=ed25519; pk=Lge8w8xidNSf/INy7JAIbAW+Hezkp3nsBh2OjKL7lLU= hwmon_notify_event() expects the channel number as its last argument, taken into account with the type parameter that it is a humidity sensor type. Given that this device only provides one humidity channel, 0 must be passed. The custom construct to enumerate the channels makes wrong assumptions by listing all types together (temperature and humidity). Remove the custom channel enumeration and pass the right channel to hwmon_notify_event() for hwmon_humidity_min_alarm and hwmon_humidity_max_alarm. Fixes: 3af350929e75 ("hwmon: Add support for Amphenol ChipCap 2") Cc: stable@vger.kernel.org Signed-off-by: Javier Carrasco --- drivers/hwmon/chipcap2.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/drivers/hwmon/chipcap2.c b/drivers/hwmon/chipcap2.c index 086571d556b7..9bef767b589e 100644 --- a/drivers/hwmon/chipcap2.c +++ b/drivers/hwmon/chipcap2.c @@ -92,11 +92,6 @@ struct cc2_data { bool process_irqs; }; =20 -enum cc2_chan_addr { - CC2_CHAN_TEMP =3D 0, - CC2_CHAN_HUMIDITY, -}; - /* %RH as a per cent mille from a register value */ static long cc2_rh_convert(u16 data) { @@ -499,7 +494,7 @@ static irqreturn_t cc2_low_interrupt(int irq, void *dat= a) =20 if (cc2->process_irqs) { hwmon_notify_event(cc2->hwmon, hwmon_humidity, - hwmon_humidity_min_alarm, CC2_CHAN_HUMIDITY); + hwmon_humidity_min_alarm, 0); cc2->rh_alarm.low_alarm =3D true; } =20 @@ -512,7 +507,7 @@ static irqreturn_t cc2_high_interrupt(int irq, void *da= ta) =20 if (cc2->process_irqs) { hwmon_notify_event(cc2->hwmon, hwmon_humidity, - hwmon_humidity_max_alarm, CC2_CHAN_HUMIDITY); + hwmon_humidity_max_alarm, 0); cc2->rh_alarm.high_alarm =3D true; } =20 --=20 2.43.0 From nobody Mon Sep 28 09:58:46 2026 Received: from mail-ed1-f45.google.com (mail-ed1-f45.google.com [209.85.208.45]) (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 42560347FEC for ; Sun, 23 Aug 2026 17:59:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787507956; cv=none; b=Y+P8y5U63kA+60sK0jcAj+e6cxc3PlpyL2Scex1YBn2RmGA50GL01W+R2T8J6mRpb2K54voRzR35LzC6yp1Zz0ptiSSsh+F6iJpwIxwR/7KMa0wuU9nC1mXVCEYcjnLWplYOIMtj3Qn/nv4qfxUhxBa6cNFNi/b5iFj9YWBr1k8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787507956; c=relaxed/simple; bh=NDfDF//cYaOMQlKuyN0eF+WouZ/qTNtQvy32KQUCa/I=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=azKE/9GFy0J88MoEA4D/YTMrlQfDdtIStGUYrRLTrjbdRyVp91Hn28+029tqEiAFx0azH7dect7a+Jw1GZten0/VDkg5WZH09y+I8OIyyMcC5KbRIzXpy6xThaRswxifYuQxX63lcOF47U+LMGhOXfMiZieJ+FCns1LseH8L6jM= 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=RiV36WvO; arc=none smtp.client-ip=209.85.208.45 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="RiV36WvO" Received: by mail-ed1-f45.google.com with SMTP id 4fb4d7f45d1cf-6a156627e22so6832836a12.1 for ; Sun, 23 Aug 2026 10:59:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787507950; x=1788112750; 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=vgFoHaAGCDAcXCaglR6rN0UVDpopjrCPNpzvvDuKgdo=; b=RiV36WvOz995tLol0ZfUU+Iqmqte8eQqnhvRrvm5l61FVle0XlN5BEnWVxxYjZkW8L H0vs1WzR/XTvgEoCJyNHfDiVKnMoe7Cm8L8MWg8MNVN4DZoB/BzVlEO2WAHsbvfp0+FB rB2q/01tq/ytE05DdD/dR3mB3UxOHxM51P3cdLgSu9EYNW/RcKqURcXEJ1pTm2lVtuWX WJ99VoghSqOwbmcS8wPXVx6jwFxRN6ZDx3wkAaiPu6tz9IhgJQEbuZNXx6rcr1NZDJZB bQ+VZohTQmJVYO52yRk19xmyNgeHZQUclZWhnazxouMTUfYSHfls/5n5gyEpPOM0W8wp +GIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787507950; x=1788112750; 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=vgFoHaAGCDAcXCaglR6rN0UVDpopjrCPNpzvvDuKgdo=; b=hFlNOrjuyYXFbckZ9M3NBvDzuhGA0/s6NAZys0LriQHqN+LwjRxUjuHhBhaL8XYq+S A8tOFLQNv3c46dbrmrm9zDykSTqksXnn+o/WCmryORDaZTODAxq9+wKK6bfCj1HH9o1E kX8L1aI2XFJUMuyWdBrJ0Xc4jbz4x5V+XZLs7wFKUKilNGGeYsKTmvBNoR5YyI1PoZMI Os2cOgklw4yHW/6CoQgPz7RU4I6rg3c2aXA4G2qCVUNZS4u8R8EUVF0cOXJwhA0VepNF 0qvodoFPfJLis7RKDQSv1ZeryF0D2hgFHwaaDwdPi1QqhjQTmofXIdyl0a6dfgcBEwjI +NHg== X-Forwarded-Encrypted: i=1; AHgh+RrtvUIfrD4owVbbrzG+O2dAkHAzy4k47ajGEqlgd3xgHIWfTQd3paa806+YoyrEm1I5jkU1bZtewkab2s0=@vger.kernel.org X-Gm-Message-State: AFuF++mJlIhDt2jKrWZmGpZrPzY+UmcXzk2RjoGjBI3rnNegC0Q+jZHB XgJ3YNCWjt67lNKTC9zdkiOSFHOOK2FtRIByRsRJ0A6ia/r4dEFgSQ5J X-Gm-Gg: AR+sD13RBMPnF4lovuDe7DDYIkP1GxSKMeLProWRD9oeayMgW5xWE8qi9dNwGPtWb6w wO/BwAPV4I5+X3cDVg3aQBi4LkuZgbZ7lqKAm/g++h4dbjXRuTAI5KTrG7GfigtOJl4aDzc2fvl QdhSFkUHDGktefWz1feuHw9qZe7EtoC/VQjfKD7M73K6iFMv54OyCHP+3o2fuBoFx7ns/8q3usf wEkIez0BFr6I/JU+hsVH6TqPoFkRW39GNcWAZTCm4qMIcGZT989LvXgo+tnL1CGB/1sKI5U4lNB lLLD/l+speHtM2K1aBv9vXIcDLVwrSdnRTYSDw8HJQsdALf9p5sCX/mKQOpczBPnFY9c0TniWEP poP/mVVkv/VIHUUh3+SD7aTXKFN5XR7xG46KlbYvoV0NWHtWrjUQosmcEk/jfVov2Blhr3H6HlR dWLfJkU5Xv0Sk5Rne0IH/TE/XLFDmpl4beD5imTTCMTRkMpK3kgFOPeNbncJy24j/iQ3UVEYt/w t4IyA== X-Received: by 2002:a05:6402:380f:b0:698:a9fe:2eb3 with SMTP id 4fb4d7f45d1cf-6a41145a43bmr26058292a12.9.1787507949986; Sun, 23 Aug 2026 10:59:09 -0700 (PDT) Received: from [127.0.1.1] ([2001:4bb8:148:9afb:38d7:b606:f380:289e]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-6a59e199cb8sm4153933a12.16.2026.08.23.10.59.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Aug 2026 10:59:09 -0700 (PDT) From: Javier Carrasco Date: Sun, 23 Aug 2026 19:59:02 +0200 Subject: [PATCH v2 2/4] hwmon: chipcap2: fix IRQ teardown ordering Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260823-chipcap2_locks-v2-2-6a26c8e9e2fc@gmail.com> References: <20260823-chipcap2_locks-v2-0-6a26c8e9e2fc@gmail.com> In-Reply-To: <20260823-chipcap2_locks-v2-0-6a26c8e9e2fc@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=1787507945; l=4560; i=javier.carrasco.cruz@gmail.com; s=20260111; h=from:subject:message-id; bh=NDfDF//cYaOMQlKuyN0eF+WouZ/qTNtQvy32KQUCa/I=; b=r6no+mQoz1iJ5MY7rtmCfcAP0SDldZgM+T8J8TvEGIN6rE6UoDmq0txzvhLIC6Z0wvHzDBB8C azoZDHF22wGBf4pmF5CWoItbrVVcBgAV/0qoQ7Rz0h/bdL4Ylv39LiM X-Developer-Key: i=javier.carrasco.cruz@gmail.com; a=ed25519; pk=Lge8w8xidNSf/INy7JAIbAW+Hezkp3nsBh2OjKL7lLU= The threaded IRQs are currently requested before the hwmon device is registered. Since devres releases resources in reverse order, the hwmon device is unregistered before the IRQs are freed during driver teardown. An IRQ may therefore still run after the hwmon device has been released and access the stale data->hwmon pointer. Separate IRQ discovery from IRQ registration so that the IRQ numbers and alarm visibility flags are initialized before registering the hwmon device, while the IRQ handlers are requested afterwards. This ensures that the IRQs are released before the hwmon device during devres cleanup. Fixes: 3af350929e75 ("hwmon: Add support for Amphenol ChipCap 2") Cc: stable@vger.kernel.org Signed-off-by: Javier Carrasco --- drivers/hwmon/chipcap2.c | 55 ++++++++++++++++++++++++--------------------= ---- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/drivers/hwmon/chipcap2.c b/drivers/hwmon/chipcap2.c index 9bef767b589e..15630d1dd90a 100644 --- a/drivers/hwmon/chipcap2.c +++ b/drivers/hwmon/chipcap2.c @@ -631,28 +631,37 @@ static int cc2_write(struct device *dev, enum hwmon_s= ensor_types type, u32 attr, } } =20 -static int cc2_request_ready_irq(struct cc2_data *data, struct device *dev) +static void cc2_get_irqs(struct cc2_data *data, struct device *dev) { - int ret =3D 0; =20 data->irq_ready =3D fwnode_irq_get_byname(dev_fwnode(dev), "ready"); - if (data->irq_ready > 0) { + if (data->irq_ready > 0) init_completion(&data->complete); + + data->irq_low =3D fwnode_irq_get_byname(dev_fwnode(dev), "low"); + if (data->irq_low > 0) + data->rh_alarm.low_alarm_visible =3D true; + + data->irq_high =3D fwnode_irq_get_byname(dev_fwnode(dev), "high"); + if (data->irq_high > 0) + data->rh_alarm.high_alarm_visible =3D true; +} + +static int cc2_request_irqs(struct cc2_data *data, struct device *dev) +{ + int ret; + + if (data->irq_ready > 0) { ret =3D devm_request_threaded_irq(dev, data->irq_ready, NULL, cc2_ready_interrupt, IRQF_ONESHOT | IRQF_TRIGGER_RISING, dev_name(dev), data); + if (ret) + return dev_err_probe(dev, ret, + "Failed to request ready irq\n"); } =20 - return ret; -} - -static int cc2_request_alarm_irqs(struct cc2_data *data, struct device *de= v) -{ - int ret =3D 0; - - data->irq_low =3D fwnode_irq_get_byname(dev_fwnode(dev), "low"); if (data->irq_low > 0) { ret =3D devm_request_threaded_irq(dev, data->irq_low, NULL, cc2_low_interrupt, @@ -660,12 +669,10 @@ static int cc2_request_alarm_irqs(struct cc2_data *da= ta, struct device *dev) IRQF_TRIGGER_RISING, dev_name(dev), data); if (ret) - return ret; - - data->rh_alarm.low_alarm_visible =3D true; + return dev_err_probe(dev, ret, + "Failed to request low alarm irq\n"); } =20 - data->irq_high =3D fwnode_irq_get_byname(dev_fwnode(dev), "high"); if (data->irq_high > 0) { ret =3D devm_request_threaded_irq(dev, data->irq_high, NULL, cc2_high_interrupt, @@ -673,12 +680,11 @@ static int cc2_request_alarm_irqs(struct cc2_data *da= ta, struct device *dev) IRQF_TRIGGER_RISING, dev_name(dev), data); if (ret) - return ret; - - data->rh_alarm.high_alarm_visible =3D true; + return dev_err_probe(dev, ret, + "Failed to request high alarm irq\n"); } =20 - return ret; + return 0; } =20 static const struct hwmon_channel_info *cc2_info[] =3D { @@ -706,7 +712,6 @@ static int cc2_probe(struct i2c_client *client) { struct cc2_data *data; struct device *dev =3D &client->dev; - int ret; =20 if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) return -EOPNOTSUPP; @@ -726,13 +731,7 @@ static int cc2_probe(struct i2c_client *client) =20 device_property_read_string(dev, "label", &data->label); =20 - ret =3D cc2_request_ready_irq(data, dev); - if (ret) - return dev_err_probe(dev, ret, "Failed to request ready irq\n"); - - ret =3D cc2_request_alarm_irqs(data, dev); - if (ret) - return dev_err_probe(dev, ret, "Failed to request alarm irqs\n"); + cc2_get_irqs(data, dev); =20 data->hwmon =3D devm_hwmon_device_register_with_info(dev, client->name, data, &cc2_chip_info, @@ -741,7 +740,7 @@ static int cc2_probe(struct i2c_client *client) return dev_err_probe(dev, PTR_ERR(data->hwmon), "Failed to register hwmon device\n"); =20 - return 0; + return cc2_request_irqs(data, dev); } =20 static void cc2_remove(struct i2c_client *client) --=20 2.43.0 From nobody Mon Sep 28 09:58:46 2026 Received: from mail-ed1-f47.google.com (mail-ed1-f47.google.com [209.85.208.47]) (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 34197353A9C for ; Sun, 23 Aug 2026 17:59:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787507958; cv=none; b=BYbnHmRrnfB9jKmDnRhC6NGSw3a87ixEvBQ1WCUiswYfYjuc4mjORzS78pbUjxPVV/P9ptPRArNhWNmPV7RNd0ed1CdAQe0rVxYlmdUeDD7p2NB6N/0VFE7UmgwEi8WHAHcmBkkLg9MaKZnj/OZP4coKBardNZbHpz4tSGfMYao= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787507958; c=relaxed/simple; bh=jbfRCvEVo3PuhpBjVfzgqvGIah0vGZmzLa1w2pHljmU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ZoX1afHlSDwHJ1XjqUQpszBtB9EePl3tmf48CYV1mdPn9jqOgU7M1n2Q2KlwnIeUK5T6AapGfPsbVb41ds8v+7f+6Yw7Z4uVR1ehU0DG9gBOQVl8/kr4aurADwb+e2SQ9abMB0WN4TBKTS/lGoytcBGh06nVeJLrr0J2RXRcKvg= 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=ToSssXnG; arc=none smtp.client-ip=209.85.208.47 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="ToSssXnG" Received: by mail-ed1-f47.google.com with SMTP id 4fb4d7f45d1cf-6983d3dae7aso6137635a12.0 for ; Sun, 23 Aug 2026 10:59:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787507953; x=1788112753; 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=XaxU4abLJpeHOJBbZvBLa6ziYwQVZqgnY4S91187WoU=; b=ToSssXnG0mCLd+DAZaIjQ7mA1+ADwbshb61Y2uZNZ++SPJ2hee56NmYUGbezaAaiWL dJ6nakiZiBeUuTzTUENt5BZSQKYkXetqoiz6+wsYsUPrbwUCHQUI5KpJ1cFXQdMuFBVK gcjZTHH1YR6BEiC9L98+lxhQa7VbHNyIdsuzlQms+g4GBCuwUfwxdgqn3dOwJE7nVIT0 sichXPr4YJ/+RUep35To4YcZJl6tekPPDVvet4TYy8yL6RPp1qjvs8BaGPCpei7jD/uL t4goqf6EQNDaQiFP2iTo7gZ3Iwf0cHNQB0fKlPE7GVbEgZyoFm4Bo1ZkpIJsrmFn2dl0 RXRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787507953; x=1788112753; 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=XaxU4abLJpeHOJBbZvBLa6ziYwQVZqgnY4S91187WoU=; b=ozVB9ZTbQEIw1ZeYIZJCQX6XgqcF7G73dg7LXYHhRVvnQGyomGxezsNGLqrdeQuq6J O7mBOZgwllFGwhS5kg88zOpekfLpe5UBWBV0zrm5BXbWhguz3h0sALRgGsGCTWg5+Ncy a5iXLBJ52O16VENcRi6QHG/1VDByyIhybh0AwI2CtmAEKIvFM1cfLd2Zm+Jr7OPLiX/J iucEr9xvKZs3vuZN4QPi7I02BDBVdbrNOYBUvXNTlBxKwDmiA/Np88a3RT94diKvDkV5 sO3JlN4BHpPmJhp10GczcgBaCdFbsz0cQcHDKB4dZib/pbR6D3z44MOIb7n/qPts3Z1p 9O8w== X-Forwarded-Encrypted: i=1; AHgh+RqY13v+Zqn82v+QOo6Ovhalz3wSKpmBMUDC6P9mQd5Xk4Noo3XM4Gv0i/quok3CDQv94G9PEbk2d2IMT9g=@vger.kernel.org X-Gm-Message-State: AFuF++lgVPUS4IB5Df0r4E4tmDnFwRRKXWemNaaO/o83dge/kdRqyDyx Xb6tpFAQIbV63lzYyrUFal7t2XJ95SA3BRY9k2X0O/AUUjEIOvNF1L4K X-Gm-Gg: AR+sD11DSfAatB12Cd4yEtJB/Ji6CiHvmv+TCLUyOgbIFvtEkxLtHuNpO9n7Dlf/3Rz l/TwepiVMz24t+HVA1TjwUzKlQfxGpWEEoA0415TN6nrjLQ89GBdRtowFZGgME6ixfMgak+U9oY XSL9BguYSImyHt/lO+r64DXdqxowJdesxnD1GMV1c68UaGzu0LS9pqDsG5NMMYN6dhu4m1Cj5a0 oAZgjhBnn88xxSlnCiyxGa3KQDoZgbUP24BXBfFhalYlRLwTatbNeWgzROrEXavbgiipAt/fqI7 b8KjUumxOyOIwq6JoNPynYJ9JjjsBoBn4OjvmGcqDEkECs94Xjp6FZMKFldOX+pJPKws2UxY920 8J5mcZsSZO1WpMsK0uiN5vhmUYbaVQRgA+plyPwY0BVY5ipmZDTukHhkxhYs3B1XHt+A1BN84ft R13v7BJVrqUYUKl/Yj18OxswLCDaEEthznRnxwp5eIXpDaEAH25eWF4zaZRFuZnL1NvX3AM0l5M iE/bpcYJDR9mHwz X-Received: by 2002:a05:6402:321b:b0:69f:c929:b88 with SMTP id 4fb4d7f45d1cf-6a430debb60mr20778691a12.5.1787507952817; Sun, 23 Aug 2026 10:59:12 -0700 (PDT) Received: from [127.0.1.1] ([2001:4bb8:148:9afb:38d7:b606:f380:289e]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-6a59e199cb8sm4153933a12.16.2026.08.23.10.59.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Aug 2026 10:59:11 -0700 (PDT) From: Javier Carrasco Date: Sun, 23 Aug 2026 19:59:03 +0200 Subject: [PATCH v2 3/4] hwmon: chipcap2: enable IRQ processing when regulator is already enabled Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260823-chipcap2_locks-v2-3-6a26c8e9e2fc@gmail.com> References: <20260823-chipcap2_locks-v2-0-6a26c8e9e2fc@gmail.com> In-Reply-To: <20260823-chipcap2_locks-v2-0-6a26c8e9e2fc@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=1787507945; l=1283; i=javier.carrasco.cruz@gmail.com; s=20260111; h=from:subject:message-id; bh=jbfRCvEVo3PuhpBjVfzgqvGIah0vGZmzLa1w2pHljmU=; b=kwvqnY0uG0GB80exLrAofUbi7prlQZmWnSwEK59YHfIqnudHlnvBDtNFttK/K2rgEvp1vUqjj 8Vfg7za3iyuCxZ4rwuKc4797TshpHKEyMmCTfORZwH1Jg7EMC/yJzQq X-Developer-Key: i=javier.carrasco.cruz@gmail.com; a=ed25519; pk=Lge8w8xidNSf/INy7JAIbAW+Hezkp3nsBh2OjKL7lLU= cc2_enable() returns early when the regulator is already enabled. This can happen if a previous regulator_disable() failed or if the regulator was configured as always-on. In this case, process_irqs remains false, causing the ready interrupt to be ignored. Subsequent operations waiting for the ready completion then time out. Set process_irqs before returning when the regulator is already enabled, so that the driver continues to process ready interrupts. Fixes: 3af350929e75 ("hwmon: Add support for Amphenol ChipCap 2") Cc: stable@vger.kernel.org Signed-off-by: Javier Carrasco --- drivers/hwmon/chipcap2.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/hwmon/chipcap2.c b/drivers/hwmon/chipcap2.c index 15630d1dd90a..57d22d65612c 100644 --- a/drivers/hwmon/chipcap2.c +++ b/drivers/hwmon/chipcap2.c @@ -119,8 +119,10 @@ static int cc2_enable(struct cc2_data *data) int ret; =20 /* exclusive regulator, check in case a disable failed */ - if (regulator_is_enabled(data->regulator)) + if (regulator_is_enabled(data->regulator)) { + data->process_irqs =3D true; return 0; + } =20 /* clear any pending completion */ try_wait_for_completion(&data->complete); --=20 2.43.0 From nobody Mon Sep 28 09:58:46 2026 Received: from mail-ed1-f44.google.com (mail-ed1-f44.google.com [209.85.208.44]) (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 B3550367F59 for ; Sun, 23 Aug 2026 17:59:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787507961; cv=none; b=j6SA50j46XAwyGIBfhNrhc7AqDy33t+7hMXFvMhJdlwzl//rO3WbvXZ3Kfcthk5DoLtGcOOwX6jo0GGsF8MRXFkJbMcI2jJXhNVB0f6InRfXbCqSM9T5swHka8INsIfCAVIWx/9BWQhwwedXp53jAh1KFUSAdDZNFNABKNbxz1I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787507961; c=relaxed/simple; bh=OLd9jwlnqoCKmW05aLl+FzhuGsqsi3L3dHXRNy9HTLo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=m/sX4LixIK5QE30B1qjbwZBWV/DQZX0W/bCF/M23W81sNnafjAQGnBN1l2LTjAh4imHVoh/lJj/u+eJFUpBwaFsE+Osw6fYlXW2yusZ5WKVqeTCE9fBSsNJvW+19fjJ7XZzk0u15b5FfLPYcAtP4GU37tE3IT/iDdNQAvQqGZ8E= 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=mCM5N3IQ; arc=none smtp.client-ip=209.85.208.44 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="mCM5N3IQ" Received: by mail-ed1-f44.google.com with SMTP id 4fb4d7f45d1cf-6a3819e8be8so5766613a12.0 for ; Sun, 23 Aug 2026 10:59:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1787507954; x=1788112754; 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=qm1o//RsN8ARpvy9uYBLbnotafV4ghP1JDsyKT1NBig=; b=mCM5N3IQj1JRU+PbU0ZRvis4itS6zEYzfPHvIy+RIt6++uGLJovzoSu8ce5wt4d1aE HvtyEwsLbSdHhqL+qFDOobanwzo9iiFht5fkx4CGBz4dpSoNdLxNA/a6nc39waq79J8L z7ytypvX4jmJKBbJiGPIBnkYOzQrKVeI8DkARd6NQN6R83R9qTYIwgbbJZY+u1dbooxJ Xxupd2hq5/RBPIMvpHVvz16tuNPBv0R7kLfTGQ8ils8qraUcaLCyUvMYlpauCwmWTI6k qAQAL2XdgHX/iuICEFTqGf1RFwHkpZCd2WsN/JZvxs9RVyRUaeg6QbxT6mMoQSx/NP2w 96Dg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787507954; x=1788112754; 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=qm1o//RsN8ARpvy9uYBLbnotafV4ghP1JDsyKT1NBig=; b=YvCNaGSuHLGU4ritpI6r1KOnlmdbEx3l0QzdEhP5L6TZm1AxhoqHtpLeNS9b5WxAh0 39Bvh2ey8dt1+X3+IbDLC1AhaCuSGgPgOAgNQmT3cXR9lj+5+n7CvwDwnyniB2bnmwaz zGhCoya+VVavpSLmnT1qUEKBLJrjXaIaOYtamTPOkqZwcj6I4FoA3C5dkFZQ3Vc5GYm6 4KPtlv5G2fQ8brpZZQyXrUQjqJyWbJOVqCEccKqxHyc2RiaLXJ8wF5fYgV9F0gXnFeDp 4H6B3kn3KHWlwXrMg3JpYRMMXNWLJekv7t5OZeX2VSeA+9FDUuTMKMPRCirZHFwYxmqv nHgQ== X-Forwarded-Encrypted: i=1; AHgh+RobpNdRREo/psawuYsN3ncoqyNTf3+b5MVqRTosx0rXGAb/fvqNUdMSeiucIfR/V3y9S20TXlzf6JzTimU=@vger.kernel.org X-Gm-Message-State: AFuF++mSRJxz5bHiAHUOMr2F48j2QWwC8oZhiv+z1jb0anPKEbl1KjTy U9O/TS05sRdObypsRlKZSRN9rdnV0hTNEv4LwaR3MyY9U3AJCAi8WyqzY2RSfA== X-Gm-Gg: AR+sD10y8QzfauVxPEYZR8o819RH3kxUQV2uhwc42R0rl9S0RsQTWQxb7EdXpfEJ1JL p9/wCEPIgtWv+s9WE8ctev9bM9vCe0L1Dgyt40tqZHoCdeS3RS0dEbnl7FuTVGtt5EDhvtWrDI7 5cuEQ5kK2/mXHn7K1E7ffmaaFydA8L1nXc5ahxIWhokZiIOflLVw0+lpHN2MaMMrHsD2h7bTsx4 dRHZ1nWkgo33OkLfWpIJz0BhLReS+MVT60OFx91mHntApFB1EzVk3erXU9raC0i23OhOfN3ngr3 pAEhLo0uQ3WDQDPA/nwr2OLGKCFs4V7vtieMr5Uex9eA2UAG1MjgJvObT1phcoYCwD4sOHAuRC1 i4++aAAr1bN1xZKf+RPGrpAhb7d64PIg9bickMBC0Pohni1fJoardeWGVsDrRK/jpW2cgdHqqrG vW7ROo0BabufzH6/X0xysurV0q0wDn783VV3HwjV/jak0e+vcLmZGkl2ZuToGrgwOldkEskQxvf BVWLg== X-Received: by 2002:a05:6402:52c3:b0:697:8b0c:36e1 with SMTP id 4fb4d7f45d1cf-6a430bf0c5fmr20193459a12.4.1787507954379; Sun, 23 Aug 2026 10:59:14 -0700 (PDT) Received: from [127.0.1.1] ([2001:4bb8:148:9afb:38d7:b606:f380:289e]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-6a59e199cb8sm4153933a12.16.2026.08.23.10.59.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Aug 2026 10:59:13 -0700 (PDT) From: Javier Carrasco Date: Sun, 23 Aug 2026 19:59:04 +0200 Subject: [PATCH v2 4/4] hwmon: chipcap2: serialize access to low/high_alarm indicators Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260823-chipcap2_locks-v2-4-6a26c8e9e2fc@gmail.com> References: <20260823-chipcap2_locks-v2-0-6a26c8e9e2fc@gmail.com> In-Reply-To: <20260823-chipcap2_locks-v2-0-6a26c8e9e2fc@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=1787507945; l=1558; i=javier.carrasco.cruz@gmail.com; s=20260111; h=from:subject:message-id; bh=OLd9jwlnqoCKmW05aLl+FzhuGsqsi3L3dHXRNy9HTLo=; b=wBQvzQDC8odzNuxzagOcjihZm5c0lGbgrQQo+evF/jVZS/Mn2j1GIkc8cfunXhm5Us1debSId 84Vva+ooobHCdbsSBNw0XyH+vY2mIXHH+J6M+u6fiyyv12b0Ywgnwae X-Developer-Key: i=javier.carrasco.cruz@gmail.com; a=ed25519; pk=Lge8w8xidNSf/INy7JAIbAW+Hezkp3nsBh2OjKL7lLU= Access to low_alarm and high_alarm from the threaded interrupt handlers and sysfs is not protected by any locking mechanism at the moment, which can lead to missed events. Use the hwmon subsystem lock to serialize access to the alarm indicators and update their state before generating the corresponding event to keep a consistent state. Fixes: 3af350929e75 ("hwmon: Add support for Amphenol ChipCap 2") Cc: stable@vger.kernel.org Signed-off-by: Javier Carrasco --- drivers/hwmon/chipcap2.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/hwmon/chipcap2.c b/drivers/hwmon/chipcap2.c index 57d22d65612c..0a56c55e9394 100644 --- a/drivers/hwmon/chipcap2.c +++ b/drivers/hwmon/chipcap2.c @@ -495,9 +495,11 @@ static irqreturn_t cc2_low_interrupt(int irq, void *da= ta) struct cc2_data *cc2 =3D data; =20 if (cc2->process_irqs) { + scoped_guard(hwmon_lock, cc2->hwmon); + cc2->rh_alarm.low_alarm =3D true; + hwmon_notify_event(cc2->hwmon, hwmon_humidity, hwmon_humidity_min_alarm, 0); - cc2->rh_alarm.low_alarm =3D true; } =20 return IRQ_HANDLED; @@ -508,9 +510,11 @@ static irqreturn_t cc2_high_interrupt(int irq, void *d= ata) struct cc2_data *cc2 =3D data; =20 if (cc2->process_irqs) { + scoped_guard(hwmon_lock, cc2->hwmon); + cc2->rh_alarm.high_alarm =3D true; + hwmon_notify_event(cc2->hwmon, hwmon_humidity, hwmon_humidity_max_alarm, 0); - cc2->rh_alarm.high_alarm =3D true; } =20 return IRQ_HANDLED; --=20 2.43.0