Re: [linux-next:master 10251/12094] drivers/hwmon/cros_ec_hwmon.o: error: objtool: cros_ec_hwmon_read+0x6c: can't find jump dest instruction at .text+0xd2d

From: Guenter Roeck

Date: Sat Feb 07 2026 - 11:26:44 EST


On 2/7/26 07:33, Thomas Weißschuh wrote:
On 2026-02-07 07:07:13-0800, Guenter Roeck wrote:
On 2/7/26 02:56, Thomas Weißschuh wrote:
On 2026-02-07 13:14:53+0800, kernel test robot wrote:
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 9845cf73f7db6094c0d8419d6adb848028f4a921
commit: 165c14597d53cfa7bc97b4ff8bc85f7bd98262b7 [10251/12094] hwmon: (cros_ec) Add support for temperature thresholds
config: x86_64-randconfig-071-20260207 (https://download.01.org/0day-ci/archive/20260207/202602071311.Q6tATiyh-lkp@xxxxxxxxx/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260207/202602071311.Q6tATiyh-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202602071311.Q6tATiyh-lkp@xxxxxxxxx/

All errors (new ones prefixed by >>):

drivers/hwmon/cros_ec_hwmon.o: error: objtool: cros_ec_hwmon_read+0x6c: can't find jump dest instruction at .text+0xd2d

This is due to the call to unreachable() in cros_ec_hwmon_attr_to_thres().
Replacing it with BUG() avoids the issue.

Guenter, do you want to drop the patches for now and I'll resend them
next cycle? I can also send an incremental patch. Or you just fix it up
in your branch.


I strongly dislike BUG() because it means "I don't trust my own code".

Agreed, I am not a fan either, which is why I used unreachable()
originally.

The final "else" in the code is not really necessary and should be dropped.

That will trigger a compiler warning:

drivers/hwmon/cros_ec_hwmon.c:170:1: error: control reaches end of non-void function [-Werror=return-type]
170 | }
| ^


I meant something like

diff --git a/drivers/hwmon/cros_ec_hwmon.c b/drivers/hwmon/cros_ec_hwmon.c
index 5b998cd5e506..6cf5ab0f4b73 100644
--- a/drivers/hwmon/cros_ec_hwmon.c
+++ b/drivers/hwmon/cros_ec_hwmon.c
@@ -165,10 +165,7 @@ static enum ec_temp_thresholds cros_ec_hwmon_attr_to_thres(u32 attr)
return EC_TEMP_THRESH_WARN;
else if (attr == hwmon_temp_crit)
return EC_TEMP_THRESH_HIGH;
- else if (attr == hwmon_temp_emergency)
- return EC_TEMP_THRESH_HALT;
- else
- unreachable();
+ return EC_TEMP_THRESH_HALT; /* attr == hwmon_temp_emergency */
}

Guenter