From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f53.google.com (mail-wr1-f53.google.com [209.85.221.53]) (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 7B26A2DE702 for ; Thu, 18 Jun 2026 14:21:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.53 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781792512; cv=none; b=iOajTAWMkjmLRJNJZ0hUKJmflgse7KcN2PhhVrPQZNpGs0/CG1p7R35JXjoGxk2L36ukAAIyMqhXWtF5ZF6f5VnQ9U9kO67ONgLxDJLSaPlsam3vEoCW3YS8HKfFxKYQYJ1ughWG5MDgGsZ+fGcx8325rdw9llr4nYxbF7lepek= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781792512; c=relaxed/simple; bh=kCeIoEAay4t9BCgOONKclGYQECUKGanufY82RrtYFyM=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=QpE5BsenLUiPcjI2WWgpbCuAuF1xt7cyf9262DoRgVDH3W7mBr2o7UstejK0vzymBCjZlJowlEnWw+hZkWJYBzHF3eOKR4+aa2AQjdWZgdEf6dyZY55AHvke3vEeW326M5bi+ELGylStOpuV+btZgdpugtWqGQDglA45PdPwTuk= 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=dzuv7xwl; arc=none smtp.client-ip=209.85.221.53 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="dzuv7xwl" Received: by mail-wr1-f53.google.com with SMTP id ffacd0b85a97d-4626fdc829aso830731f8f.3 for ; Thu, 18 Jun 2026 07:21:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781792510; x=1782397310; 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=Rz3nujkpYP9ynRPoPkm0vDQOLMZIdBZNL9Osh2lcHMk=; b=dzuv7xwlCSlN6kTbP/wC5aUA3diWtbk1lfcJdCO0uIWt4nQhURUEenEUR7LdxqdgGN apgauDaRwNcXGKNefS4zqjwYR3s4PkidOVgLk9CGW+Hy/DTVoXut2l119ZUgRSyogKHq 0srQqGHSZrnyImika7lpr073hqmlGEprP3MGGOs9464DGWbm3q+U2h8EQ314baxuRl/5 Zg45i6BScN/rJ8PIPqmd2geinqel7wCDUPN16baNYognOlVGB4d84cr11eiwTPy4dO4R E8ro6+hZWpYvulv7D3qiw6wyTZpQXaS0kKybhHsbaURcku8UiHoQOGYIQdt08iQ3jy7v RhyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781792510; x=1782397310; 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=Rz3nujkpYP9ynRPoPkm0vDQOLMZIdBZNL9Osh2lcHMk=; b=HyVYAJ1RVyq/VXyQKMl2at3W1BgbRI3cFQsv+njXOAcGxO7En8n4TBiogFfkFZ1J7R rrFCiR+W3oS7Y6WNOdMddxXhkw4mPPh31YpAx85KesCAi4OU173HXaFnAPAmuIJdb88N vJ7f3N+0/V02ROk2q8GC6DqXOc8JWTeMyhlLXsukUOvdGOzN4WiAMTce9fhT/a8tkm57 vVBd9GLTa+0mhcrYmOMcalTzjFL93xc5qSz4tvYNbG+gjzvFS67StkSKV+F0OSV8qrKx DQDLYGNqMkj7boXvl+WmiwAlaLPrvCLcU++61ovkzwIiPk9Ykus/6oIsrMsB9keTz65B unoQ== X-Forwarded-Encrypted: i=1; AFNElJ94yfCYpRJBJfLaGVIs3jrEml4T/jNu22kfDgRC/xCpRCpXa+++vVrEH1zgD4tZ9D5KQ8LL9Hdpa/vTZLw=@vger.kernel.org X-Gm-Message-State: AOJu0YyqkloUNWdUmhStdq6I3DKqGyDj7xaRxdjVGkOx2Jn8EYEDGdVe 16CwBckzwudz5a5MyS9GSzkOb/0Jey479DglEQQOOYg6sihvDTtRk2nIU0H8Og== X-Gm-Gg: AfdE7clPE5QvCBcD1XioCff+x9X2vfF/LO9yN0QzONNVKolUhwOacCKlZc5bkirC/Qx A6gI50vfcs2I7SgTacVQkBUXFdAgdH/s1XUg7Tl9JJ2HAh8g4EMIL2BeB52TCMaghejBGVMmxbl dVrv/AP/t1FmMkGQGl9pSs7UfaXHwLLhu3IfBXbMqE2JtVQfCSE97UKDaHA4i0EXm2/wZY8TLNw Ot/zhbIWMnTJpY4s5KJfT2xPhkYCNIf5dLhD2B/aF5KxCgh3kEhNlLwDuCW4oezshTP+j9jE0xJ OGnFoNtID0ixgsGIIHo5QRYUHNYU/DZb2wPT4pKpgiHqivaNE3ChqEgPzyd+kqVfoCGr12HRSW6 F7XFvFdmG4RuHR0bl69JOShqeJeHxQFXII7gNwPQ1HSY3QaMv7eN+kaki7kgRNyV7iDVSSDmU0u hjXGDSPOtArSx0WY83P3BXrCtoSe041qWV8OPpiVn3vMT1Tmk3eQ+4WH6Mhlw0za84O3PAnJztw hKFFWmI7zslQft8uPw= X-Received: by 2002:adf:ebca:0:b0:45e:df46:ba30 with SMTP id ffacd0b85a97d-4624179babbmr11874320f8f.34.1781792509501; Thu, 18 Jun 2026 07:21:49 -0700 (PDT) Received: from workstation.speedport.ip (p200300d507395ebfa2b8133f7b4c3cc0.dip0.t-ipconnect.de. [2003:d5:739:5ebf:a2b8:133f:7b4c:3cc0]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4606f2c4240sm58083692f8f.27.2026.06.18.07.21.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 Jun 2026 07:21:49 -0700 (PDT) From: Mert Seftali To: Lee Jones , Pavel Machek Cc: Steffen Trumtrar , linux-leds@vger.kernel.org, linux-kernel@vger.kernel.org, Mert Seftali , kernel test robot , Dan Carpenter Subject: [PATCH v2] leds: lp5860: Return an error for an out-of-range 'reg' property Date: Thu, 18 Jun 2026 16:21:33 +0200 Message-ID: <20260618142133.27377-1-mertsftl@gmail.com> X-Mailer: git-send-email 2.54.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit lp5860_iterate_subleds() checks the result of reading the "reg" property and the channel range in a single condition: if (ret < 0 || channel > LP5860_MAX_LED) When fwnode_property_read_u32() succeeds but the channel is out of range, ret is 0, so the error path passes 0 to dev_err_probe() and returns 0 - an out-of-range "reg" is silently accepted instead of rejected. The shared "'reg' property is missing" message is also inaccurate when the property is present but out of range. Split the two cases: report a read failure with if (ret), and reject an out-of-range channel with -EINVAL. Each case now has its own accurate error message. Fixes: 3daf2c4ef82b ("leds: Add support for TI LP5860 LED driver chip") Reported-by: kernel test robot Reported-by: Dan Carpenter Closes: https://lore.kernel.org/r/202605210624.3gcr3prk-lkp@intel.com/ Signed-off-by: Mert Seftali --- Changes in v2 (per Lee Jones review): - Split the combined read/range test into separate checks: use if(ret) for the read failure, and reject an out-of-range channel with -EINVAL. - Give each case its own accurate message instead of the shared "missing" one, and drop the nested "if (ret >= 0)". drivers/leds/rgb/leds-lp5860-core.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/leds/rgb/leds-lp5860-core.c b/drivers/leds/rgb/leds-lp5860-core.c index fd0e2f6e6e0f..bc59be87b08f 100644 --- a/drivers/leds/rgb/leds-lp5860-core.c +++ b/drivers/leds/rgb/leds-lp5860-core.c @@ -114,13 +114,21 @@ static int lp5860_iterate_subleds(struct lp5860_led *led, struct led_init_data * } ret = fwnode_property_read_u32(led_node, "reg", &channel); - if (ret < 0 || channel > LP5860_MAX_LED) { + if (ret) { dev_err_probe(led->chip->dev, ret, - "%pfwP: 'reg' property is missing. Skipping.\n", led_node); + "%pfwP: Cannot read 'reg' property. Skipping.\n", led_node); fwnode_handle_put(led_node); return ret; } + if (channel > LP5860_MAX_LED) { + dev_err_probe(led->chip->dev, -EINVAL, + "%pfwP: 'reg' %u is out of range. Skipping.\n", + led_node, channel); + fwnode_handle_put(led_node); + return -EINVAL; + } + led->mc_cdev.subled_info[subled].color_index = color_index; led->mc_cdev.subled_info[subled].channel = channel; ret = lp5860_led_init(led, init_data->fwnode, channel); -- 2.54.0