-
Notifications
You must be signed in to change notification settings - Fork 105
[linux-6.18.y] symbols: Export symbols needed by Android Drivers #1402
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: linux-6.18.y
Are you sure you want to change the base?
Conversation
symbols: Export symbols needed by Android Drivers Signed-off-by: gfdgd_xi <[email protected]>
Reviewer's guide (collapsed on small PRs)Reviewer's GuideExports a set of core kernel and security helper symbols as GPL-only to support out-of-tree Android drivers and emulator components, without changing their internal behavior. Sequence diagram for Android driver using binder security helpersequenceDiagram
actor AndroidDriver
participant Kernel as KernelModuleBinder
participant Security as LSMHooks
AndroidDriver->>Kernel: security_binder_transaction(from_cred, to_cred)
Kernel->>Security: binder_transaction(from_cred, to_cred)
Security-->>Kernel: decision (allow_or_deny)
Kernel-->>AndroidDriver: return decision
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
|
Hi @gfdgd-xi. Thanks for your PR. I'm waiting for a deepin-community member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
@opsiff |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This pull request exports internal kernel symbols as GPL-only exports to enable Android driver and emulator support (such as KMRE). The changes add EXPORT_SYMBOL_GPL macros to 14 previously unexported functions across the kernel subsystems including security, memory management, scheduling, IPC, and filesystem layers.
- Adds GPL symbol exports for binder security hooks to enable external binder implementations
- Exports memory management functions (VMA locking, page unmapping, LRU list operations) for memory subsystem interactions
- Exposes scheduler and task management functions for process control operations
- Makes IPC namespace and file descriptor operations available to external modules
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| security/security.c | Exports 4 binder security hook functions for Android IPC support |
| mm/mmap_lock.c | Exports lock_vma_under_rcu for VMA locking support (with placement issue) |
| mm/memory.c | Exports zap_page_range_single for memory unmapping operations |
| mm/list_lru.c | Exports list_lru_add and list_lru_del for LRU list management |
| kernel/task_work.c | Exports task_work_add for task work queue operations |
| kernel/sched/wait.c | Exports __wake_up_pollfree for wait queue operations |
| kernel/sched/syscalls.c | Exports can_nice for nice value checking |
| ipc/namespace.c | Exports put_ipc_ns for IPC namespace reference management |
| ipc/msgutil.c | Exports init_ipc_ns global for IPC namespace initialization |
| fs/file.c | Exports file_close_fd for file descriptor closing operations |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
|
||
| return vma; | ||
| } | ||
| EXPORT_SYMBOL_GPL(lock_vma_under_rcu); |
Copilot
AI
Dec 29, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The EXPORT_SYMBOL_GPL(lock_vma_under_rcu) is placed after the wrong function. The lock_vma_under_rcu function ends at line 270, but this export is placed at line 362 after the lock_next_vma function. This will cause the export to be associated with the wrong function symbol. Move this line to immediately after line 270 where lock_vma_under_rcu actually ends.
| EXPORT_SYMBOL_GPL(lock_vma_under_rcu); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The EXPORT_SYMBOL_GPL(lock_vma_under_rcu) is placed after the wrong function. The lock_vma_under_rcu function ends at line 270, but this export is placed at line 362 after the lock_next_vma function. This will cause the export to be associated with the wrong function symbol. Move this line to immediately after line 270 where lock_vma_under_rcu actually ends.
虽然这比较奇怪 但是按我的理解不应该影响功能 @gfdgd-xi 看看改一下?
Export the currently un-exported symbols to support some Android emulator such as kmre and so on.
Summary by Sourcery
Export previously internal kernel symbols required by Android driver and emulator support.
Enhancements: