Messages in this thread Patch in this message | | | Date | Thu, 28 Feb 2019 13:27:46 -0600 | From | "Gustavo A. R. Silva" <> | Subject | [PATCH v2] x86/syscalls: Mark expected switch fall-throughs |
| |
In preparation to enable -Wimplicit-fallthrough by default, mark switch-case statements where fall-through is intentional, explicitly in order to fix a bunch of -Wimplicit-fallthrough warnings.
In order to get the warnings mentioned above, the following line was added to the top Makefile:
KBUILD_CFLAGS += $(call cc-option,-Wimplicit-fallthrough=3,)
Reviewed-by: Kees Cook <keescook@chromium.org> Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com> --- Changes in v2: - Expand commit text as requested by Thomas Gleixner. - Add Kees' Reviewed-by.
arch/x86/include/asm/syscall.h | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+)
diff --git a/arch/x86/include/asm/syscall.h b/arch/x86/include/asm/syscall.h index d653139857af..04fc5c120558 100644 --- a/arch/x86/include/asm/syscall.h +++ b/arch/x86/include/asm/syscall.h @@ -125,23 +125,30 @@ static inline void syscall_get_arguments(struct task_struct *task, case 0: if (!n--) break; *args++ = regs->bx; + /* fall through */ case 1: if (!n--) break; *args++ = regs->cx; + /* fall through */ case 2: if (!n--) break; *args++ = regs->dx; + /* fall through */ case 3: if (!n--) break; *args++ = regs->si; + /* fall through */ case 4: if (!n--) break; *args++ = regs->di; + /* fall through */ case 5: if (!n--) break; *args++ = regs->bp; + /* fall through */ case 6: if (!n--) break; + /* fall through */ default: BUG(); break; @@ -152,23 +159,30 @@ static inline void syscall_get_arguments(struct task_struct *task, case 0: if (!n--) break; *args++ = regs->di; + /* fall through */ case 1: if (!n--) break; *args++ = regs->si; + /* fall through */ case 2: if (!n--) break; *args++ = regs->dx; + /* fall through */ case 3: if (!n--) break; *args++ = regs->r10; + /* fall through */ case 4: if (!n--) break; *args++ = regs->r8; + /* fall through */ case 5: if (!n--) break; *args++ = regs->r9; + /* fall through */ case 6: if (!n--) break; + /* fall through */ default: BUG(); break; @@ -186,23 +200,30 @@ static inline void syscall_set_arguments(struct task_struct *task, case 0: if (!n--) break; regs->bx = *args++; + /* fall through */ case 1: if (!n--) break; regs->cx = *args++; + /* fall through */ case 2: if (!n--) break; regs->dx = *args++; + /* fall through */ case 3: if (!n--) break; regs->si = *args++; + /* fall through */ case 4: if (!n--) break; regs->di = *args++; + /* fall through */ case 5: if (!n--) break; regs->bp = *args++; + /* fall through */ case 6: if (!n--) break; + /* fall through */ default: BUG(); break; @@ -213,23 +234,30 @@ static inline void syscall_set_arguments(struct task_struct *task, case 0: if (!n--) break; regs->di = *args++; + /* fall through */ case 1: if (!n--) break; regs->si = *args++; + /* fall through */ case 2: if (!n--) break; regs->dx = *args++; + /* fall through */ case 3: if (!n--) break; regs->r10 = *args++; + /* fall through */ case 4: if (!n--) break; regs->r8 = *args++; + /* fall through */ case 5: if (!n--) break; regs->r9 = *args++; + /* fall through */ case 6: if (!n--) break; + /* fall through */ default: BUG(); break; -- 2.21.0
| |