New objtool warning..

From: Linus Torvalds
Date: Tue Dec 15 2020 - 23:23:23 EST


I only see this on my laptop, but that's probably because my desktop
is built using clang. So it's a gcc code generation interaction, I
suspect..

Anyway, the new warning is

drivers/gpu/drm/drm_edid.o: warning: objtool: do_cvt_mode() falls
through to next function drm_mode_detailed.isra.0()

and googling around a bit I see that 0day ended up reporting it on the
linux-next lists, and blames commit 991fcb77f490 ("drm/edid: Fix
uninitialized variable in drm_cvt_modes()").

That presumably then makes gcc generate that odd code.

That "unreachable()" is because the compiler isn't smart enough to see
that yes, there really are case statements for every single possible
case. Oh well. Maybe the code should just make one of the possible
cases also be the "default:" case, and that might fix it.

But maybe this is worth looking into for objtool too?

Anyway, I see it with gcc-10.2.1 as per current F32. Holler if you
can't reproduce it, I can send the object file around.

Linus