From nobody Sat Feb 7 04:40:15 2026 Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) (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 361652857CF for ; Sun, 1 Feb 2026 20:35:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769978121; cv=none; b=Nyqutc1/VJ25KP6ykj41eZVKVmzC84SZtqkEfFptDheTcHvZiaomxym2dkzySRMQxHAk8B8m62M345gkdzhHqFY0qL0v97hBi8uK/INJTzb7sj/QDB2FZwlI1PP7mIMMf7x2qzv8PltUwsOXTINeeZuMSoxm/590zgHiXXqDDtc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769978121; c=relaxed/simple; bh=5aFcpAaR/lASpDeQK/SKRvYCXntKw60Rvq8b69dCrfw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=LgdXzuIFTTQOFRQYSNBgHfdWHAYzgmjk5HEYZHCas0CPbhVdw+MGSpA6rYJAoJypZcdtUEL5qVw+Y+iE0/L2a0z5nIZxF5DV9h9IrFX2E7vvS2hKdXQBJ06VxU3XJMsl45gqf+D0NaHxg+j6C6HIz0rQChfY3CSQJVPDbwG2iJg= 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=d1qjLEUB; arc=none smtp.client-ip=209.85.128.50 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="d1qjLEUB" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-481188b7760so23915065e9.0 for ; Sun, 01 Feb 2026 12:35:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1769978118; x=1770582918; darn=vger.kernel.org; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:from:to:cc:subject:date:message-id:reply-to; bh=91/0VfU3LtdVoSnFoD2Wj5KpABZ0e6Hnrwv0/nUnRaY=; b=d1qjLEUBpGMmNcA4iRbOdpiQ0r0e94uFb9lscngtOWjOlURwjalkY0JdrNAUz5o1hA HImDc0Z1NZM/XguIbd9DYh5GZ45FFhVPtGTeGG7uA/9teNxHc5XgGeSoLB5z3wBiNa/s qoHAUnpNf8rYClpNbZnN8kyGeugfweZlk3xXb7n2ve5sgtptecILMgqEQSs139dqgf9c Ow9Q2/T/KTxIILSHQaqonjCxXXyDC1CbV6weU6oJMrqyGiQPcrhGhov9R0ck+rGvELkB YrEl7OHIEJImiXQ+5IYoeL2DIIt6FjHrTOwKDFGIpyhCLsN7ZC9LBKVv+qpGBbTRjgY+ pJMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769978118; x=1770582918; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=91/0VfU3LtdVoSnFoD2Wj5KpABZ0e6Hnrwv0/nUnRaY=; b=e7bBZx3r9wkI8IhOQQ+e79ZO/Alescce+nUpGVvGIcgjGQWrR4nswFVjrQp9pZPmfp 89yjv8uC/nsyXbayL4U/SKse5622KvYjT0T2/3nxSBrj+Rj0VBL2vhQBtUs/aiesss93 FHfwwKsPYYbZY4q0oSek1MUmfHArGn/UPRyImgb8+m1x/pS3Ns8zjQwf5nxcTrLQn1zS QjdizGc2qDQ6vOiV0DvGbTKJpLVBN0gKmpLpa7y74tk0sO2Iz9wcLJThmXnoxd2Ouith Knb4ofYmNmgS0gI+TEFREq4GPM6NSFnMG4EMCtp9Ck1TzarW+mKwtPUI+ZdjbYYzeLu4 F+mw== X-Forwarded-Encrypted: i=1; AJvYcCVLJM36AHl81LP5MgAOtgzZeTCdHAZLnDTJ1jX/pciCSDMN3A6CLleMHXA5lrdZc5JhTxEuJd+5RN4954U=@vger.kernel.org X-Gm-Message-State: AOJu0YwLFFio4ylDK+9DTZFm/29MtUtlFrRbAkTtFrHjY/PWmkAQQj9g pJfFqo0aYdpZamgykG06aYvV3FBqDG87kmjC3QB+SNA7P8LzcMMoiBJA X-Gm-Gg: AZuq6aJKMv7L0agsMkjG83cwaS5YyuYC/0DESD7prReFw6Ums1KiQMPmvjwNqBWpTFP oC4lbUhOoSRg4jRXtSSyvdXl04l0hYNWu8UiRogIBC7cixi782G4iRliyaOjlWELVEQGs7/8dWZ 1hOGOer/wS2QaT21X2m+7e90LxYYOJDF/XA467/+mqvrsHQT+1/QOoDvQfNUM/dTGwsRI/iT5vt WasaHBUcqlIsG5HVXLh5ks8zvd5r8N4BhCad/BTSDXJKJOQ1dPcYdDx/GN6XuilKe2aZz1gMAcX AEWz6dsKJnKgKdMEJW7vZyVkwxiqef0wFbEFj69nAB10ZKitNofNOfuyMnLi9579yynXBbhIAUB CIfyUmecC74+Tbo5uDw7Xzt1+G4WebNSBOWz/2jMCQUQyJq1kSNeSHJzwwqCfCHtzjrN7qRmZV7 zRJetSXkhJWFwOvnG8q8AChxdwyu+fX8st4ragzkdqBUIcXDClTys= X-Received: by 2002:a05:600c:310f:b0:480:1b1a:5526 with SMTP id 5b1f17b1804b1-482db46c28amr129120025e9.16.1769978118540; Sun, 01 Feb 2026 12:35:18 -0800 (PST) Received: from [192.168.0.253] (5D59A51C.catv.pool.telekom.hu. [93.89.165.28]) by smtp.googlemail.com with ESMTPSA id ffacd0b85a97d-435e10e48a6sm37663837f8f.8.2026.02.01.12.35.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 01 Feb 2026 12:35:17 -0800 (PST) From: Gabor Juhos Date: Sun, 01 Feb 2026 21:35:06 +0100 Subject: [PATCH] hwmon: gpio-fan: fix set_rpm() return value 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: <20260201-gpio-fan-set_rpm-retval-fix-v1-1-dc39bc7693ca@gmail.com> X-B4-Tracking: v=1; b=H4sIAPm4f2kC/x3MQQqDMBBG4avIrB2YRGqhVylFgv6xA20MExFBv LvB5fcW76ACUxR6NQcZNi26pArXNjR+Q5rBOlWTF9+LF8dz1oVjSFywDpb/bFi38OOoO6MPz+i kg0wPqodsqPm+vz/neQGJ4KZlbQAAAA== X-Change-ID: 20260201-gpio-fan-set_rpm-retval-fix-e6a7f103e0d5 To: Guenter Roeck , Alexander Stein Cc: linux-hwmon@vger.kernel.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org, Gabor Juhos X-Mailer: b4 0.14.2 The set_rpm function is used as a 'store' callback of a device attribute, and as such it should return with the number of bytes consumed. However since commit 0d01110e6356 ("hwmon: (gpio-fan) Add regulator support"), the function returns with zero on success. Due to this, the function gets called again and again whenever the user tries to change the FAN speed by writing the desired RPM value into the 'fan1_target' sysfs attribute. The broken behaviour can be reproduced easily. For example, the following command never returns unless it gets terminated: $ echo 500 > /sys/class/hwmon/hwmon1/fan1_target ^C $ Change the code to return with the same value as the 'count' parameter on success to indicate that all bytes from the input buffer are consumed. The function behaved the same way prior to the offending change. Cc: stable@vger.kernel.org Fixes: 0d01110e6356 ("hwmon: (gpio-fan) Add regulator support") Signed-off-by: Gabor Juhos --- drivers/hwmon/gpio-fan.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/hwmon/gpio-fan.c b/drivers/hwmon/gpio-fan.c index 516c34bb61c9cfa2927d31ee6459c8306be2fb5b..d7fa021f376e39b79b6a0302377= c4516f9861459 100644 --- a/drivers/hwmon/gpio-fan.c +++ b/drivers/hwmon/gpio-fan.c @@ -291,7 +291,7 @@ static ssize_t set_rpm(struct device *dev, struct devic= e_attribute *attr, { struct gpio_fan_data *fan_data =3D dev_get_drvdata(dev); unsigned long rpm; - int ret =3D count; + int ret; =20 if (kstrtoul(buf, 10, &rpm)) return -EINVAL; @@ -308,7 +308,7 @@ static ssize_t set_rpm(struct device *dev, struct devic= e_attribute *attr, exit_unlock: mutex_unlock(&fan_data->lock); =20 - return ret; + return ret ? ret : count; } =20 static DEVICE_ATTR_RW(pwm1); --- base-commit: 1117702454262fb361869451be5b006c022eb08a change-id: 20260201-gpio-fan-set_rpm-retval-fix-e6a7f103e0d5 Best regards, --=20 Gabor Juhos