include: jhash/signal: Fix fall-through warnings for Clang

In preparation to enable -Wimplicit-fallthrough for Clang, mark
switch cases where it is expected to fall through.

This patch adds four fallthrough annotations that, together, fix almost
80,000 warnings when building Linux 5.9-rc3 with Clang 12.0.0 and this[1]
change reverted. Notice that in order to enable -Wimplicit-fallthrough
for Clang, such change[1] is meant to be reverted at some point. So, this
patch helps to move in that direction.

Something important to mention is that there is currently a discrepancy
between GCC and Clang when dealing with switch fall-through to empty case
statements or to cases that only contain a break/continue/return

Now that the -Wimplicit-fallthrough option has been globally enabled[5],
any compiler should really warn on missing a fallthrough annotation or a
break/continue/return statement when falling through to any kind of case
statement. Otherwise, making an exception turns into a bogus sort of a
special case scenario.  Something important to keep in mind is that the
point of enabling options like -Wimplicit-fallthrough is to prevent the
human error and aid the developers in spotting bugs before their code
is even submitted/committed, therefore elimitating classes of bugs. So,
in order to really accomplish this, we should, and can, move in the
direction of addressing any error-prone scenarios and get rid of the
unintentional fallthrough bug-class in the kernel, entirely.

[1] commit e2079e93f562c ("kbuild: Do not enable -Wimplicit-fallthrough for clang for now")
[5] commit a035d552a93b ("Makefile: Globally enable fall-through warning")

Reviewed-by: Nathan Chancellor <>
Signed-off-by: Gustavo A. R. Silva <>
2 files changed