Open
Conversation
There was a problem hiding this comment.
Pull request overview
This pull request introduces inline hooking for the syscall tracepoint mechanism to avoid running code in preempt-disabled context. The implementation adds ARM64-specific assembly trampolines and inline hook infrastructure to intercept syscall_trace_enter calls directly, rather than relying solely on the kernel's tracepoint mechanism.
Changes:
- Adds ARM64 inline hook infrastructure with instruction relocation and trampoline generation
- Implements assembly trampoline for syscall interception with register preservation
- Modifies syscall hook manager to use inline hooks alongside tracepoint registration
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 21 comments.
Show a summary per file
| File | Description |
|---|---|
| kernel/trampoline.S | ARM64 assembly trampoline that preserves registers and calls ksu_trace_sys_enter |
| kernel/inline_hook.c | Core inline hook implementation with ARM64 instruction relocation logic |
| kernel/hook.h | Header defining hook structures, error codes, and API |
| kernel/patch.c | Hook installation code that finds and patches syscall_trace_enter jump table entry |
| kernel/syscall_hook_manager.c | Integration changes to install inline hook and use no-op tracepoint handler |
| kernel/syscall_hook_manager.h | Added declarations for inline hook functions |
| kernel/Kbuild | Added new object files to build system |
| kernel/.gitignore | Generalized pattern to ignore all .cmd files |
| .github/workflows/build-lkm.yml | Added fail-fast: false for better CI behavior |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
af9284c to
a93f91c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Intended to avoid running code in preempt disable context.