x86 x32 system calls are not supported by LTTng. They are currently not
traced simply because their system call number is beyond the range of
NR_compat_syscalls.
However, this mostly happens by accident rather than by design.
Enforce this with an explicit check for in_x32_syscall(), which clearly
documents that those are not supported.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I3a6985a8355f14f4e557ee7f5edea36969dadfe9
const struct trace_syscall_entry *table, *entry;
size_t table_len;
+#ifdef CONFIG_X86_X32_ABI
+ if (in_x32_syscall()) {
+ /* x32 system calls are not supported. */
+ return;
+ }
+#endif
if (unlikely(in_compat_syscall())) {
struct lttng_syscall_filter *filter = chan->sc_filter;
size_t table_len;
long id;
+#ifdef CONFIG_X86_X32_ABI
+ if (in_x32_syscall()) {
+ /* x32 system calls are not supported. */
+ return;
+ }
+#endif
id = syscall_get_nr(current, regs);
if (unlikely(in_compat_syscall())) {
struct lttng_syscall_filter *filter = chan->sc_filter;