Wire compat PERF_EVENT_IOC_QUERY_BPF, PERF_EVENT_IOC_MODIFY_ATTRIBUTES
PATCH 1/1 Wire compat PERF_EVENT_IOC_QUERY_BPF, PERF_EVENT_IOC_MODIFY_ATTRIBUTES
Since pointer size is different in compat, and switching in _perf_ioctl is done using exact ioctl numbers, all new ioctl numbers that use pointer should be added to perf_compat_ioctl for _IOC_SIZE fixup before passing to perf_ioctl routine (this shouldn't be needed if semantics of the size argument of _IO* macros was honored).
* kernel/events/core.c (perf_compat_ioctl): Add _IOC_NR(PERF_EVENT_IOC_QUERY_BPF) and _IOC_NR(PERF_EVENT_IOC_MODIFY_ATTRIBUTES) to the switch statement.
--- kernel/events/core.c | 2 ++ 1 file changed, 2 insertions(+)
kernel/events/core.c +2 -0
@@ -5120,6 +5120,8 @@ static long perf_compat_ioctl(struct file *file, unsigned int cmd,switch (_IOC_NR (cmd)) {case _IOC_NR (PERF_EVENT_IOC_SET_FILTER ):case _IOC_NR (PERF_EVENT_IOC_ID ): +case _IOC_NR (PERF_EVENT_IOC_QUERY_BPF ): +case _IOC_NR (PERF_EVENT_IOC_MODIFY_ATTRIBUTES ):/* Fix up pointer size (usually 4 -> 8 in 32-on-64-bit case */ if (_IOC_SIZE (cmd) ==sizeof (compat_uptr_t)) { cmd &= ~IOCSIZE_MASK ;
Signature · 1 line
2.1.4
tip-bot for Eugene Syromiatnikov
merge bot[tip:perf/core] perf/core: Wire up compat PERF_EVENT_IOC_QUERY_BPF, PERF_EVENT_IOC_MODIFY_ATTRIBUTES
perf/core: Wire up compat PERF_EVENT_IOC_QUERY_BPF, PERF_EVENT_IOC_MODIFY_ATTRIBUTES
Commit-ID: 82489c5fe5f99ca95f708fecae9f2c8aa99398bb Gitweb: https://git.kernel.org/tip/82489c5fe5f99ca95f708fecae9f2c8aa99398bb Author: Eugene Syromiatnikov <[email protected]> AuthorDate: Mon, 21 May 2018 14:34:20 +0200 Committer: Ingo Molnar <[email protected]> CommitDate: Fri, 25 May 2018 08:11:11 +0200
perf/core: Wire up compat PERF_EVENT_IOC_QUERY_BPF, PERF_EVENT_IOC_MODIFY_ATTRIBUTES
Since pointer size is different in compat, and switching in _perf_ioctl is done using exact ioctl numbers, all new ioctl numbers that use pointer should be added to perf_compat_ioctl for _IOC_SIZE fixup before passing to perf_ioctl routine (this shouldn't be needed if semantics of the size argument of _IO* macros was honored).
--- kernel/events/core.c | 2 ++ 1 file changed, 2 insertions(+)
kernel/events/core.c +2 -0
@@ -5120,6 +5120,8 @@ static long perf_compat_ioctl(struct file *file, unsigned int cmd,switch (_IOC_NR (cmd)) {case _IOC_NR (PERF_EVENT_IOC_SET_FILTER ):case _IOC_NR (PERF_EVENT_IOC_ID ): +case _IOC_NR (PERF_EVENT_IOC_QUERY_BPF ): +case _IOC_NR (PERF_EVENT_IOC_MODIFY_ATTRIBUTES ):/* Fix up pointer size (usually 4 -> 8 in 32-on-64-bit case */ if (_IOC_SIZE (cmd) ==sizeof (compat_uptr_t)) { cmd &= ~IOCSIZE_MASK ;