Skip to content

Commit

Permalink
kpatch-syscall: Fix kpatch s390 build error when CONFIG_COMPAT is dis…
Browse files Browse the repository at this point in the history
…abled

When CONFIG_COMPAT is disabled (No 31 bit emulation support), macro
__S390_SYS_STUBx() is nop.
(See arch/s390/include/asm/syscall_wrapper.h).
Also, __SC_COMPAT_CAST definition is not available, which leads to build
error.

Hence, __KPATCH_S390_SYS_STUBx() inherited from __S390_SYS_STUBx() macro,
should point also point to nop when CONFIG_COMPAT is disabled.

Signed-off-by: Sumanth Korikkar <[email protected]>
  • Loading branch information
sumanthkorikkar committed Jan 3, 2025
1 parent a9a7360 commit 55c118c
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions kmod/patch/kpatch-syscall.h
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@
/* arch/s390/include/asm/syscall_wrapper.h versions */
#if defined(KPATCH_SYSCALL_WRAPPERS_V1)

#if defined(CONFIG_COMPAT)
#define __KPATCH_S390_SYS_STUBx(x, name, ...) \
long __s390_sys##name(struct pt_regs *regs); \
ALLOW_ERROR_INJECTION(__s390_sys##name, ERRNO); \
Expand All @@ -119,6 +120,9 @@
__MAP(x,__SC_TEST,__VA_ARGS__); \
return ret; \
}
#else
#define __KPATCH_S390_SYS_STUBx(x, name, ...)
#endif /* CONFIG_COMPAT */

#define __KPATCH_SYSCALL_DEFINEx(x, name, ...) \
__diag_push(); \
Expand All @@ -142,6 +146,7 @@

# else /* KPATCH_SYSCALL_WRAPPERS_V2 */

#if defined(CONFIG_COMPAT)
#define __KPATCH_S390_SYS_STUBx(x, name, ...) \
long __s390_sys##name(struct pt_regs *regs); \
ALLOW_ERROR_INJECTION(__s390_sys##name, ERRNO); \
Expand All @@ -155,6 +160,9 @@
__MAP(x, __SC_TEST, __VA_ARGS__); \
return __kpatch_do_sys##name(__MAP(x, __SC_COMPAT_CAST, __VA_ARGS__)); \
}
#else
#define __KPATCH_S390_SYS_STUBx(x, name, ...)
#endif /* CONFIG_COMPAT */

#define __KPATCH_SYSCALL_DEFINEx(x, name, ...) \
long __s390x_sys##name(struct pt_regs *regs); \
Expand Down

0 comments on commit 55c118c

Please sign in to comment.