From 3eafefa069d8f075f04bfb3b4565100789eacd48 Mon Sep 17 00:00:00 2001 From: gfdgd_xi <3025613752@qq.com> Date: Sat, 27 Dec 2025 10:00:06 +0800 Subject: [PATCH] symbols: Export symbols needed by Android Drivers symbols: Export symbols needed by Android Drivers Signed-off-by: gfdgd_xi <3025613752@qq.com> --- fs/file.c | 1 + ipc/msgutil.c | 1 + ipc/namespace.c | 1 + kernel/sched/syscalls.c | 1 + kernel/sched/wait.c | 1 + kernel/task_work.c | 1 + mm/list_lru.c | 2 ++ mm/memory.c | 1 + mm/mmap_lock.c | 1 + security/security.c | 4 ++++ 10 files changed, 14 insertions(+) diff --git a/fs/file.c b/fs/file.c index 28743b742e3cf..d030787add367 100644 --- a/fs/file.c +++ b/fs/file.c @@ -858,6 +858,7 @@ struct file *file_close_fd(unsigned int fd) return file; } +EXPORT_SYMBOL_GPL(file_close_fd); void do_close_on_exec(struct files_struct *files) { diff --git a/ipc/msgutil.c b/ipc/msgutil.c index 7a03f6d03de3a..2d397f053c515 100644 --- a/ipc/msgutil.c +++ b/ipc/msgutil.c @@ -35,6 +35,7 @@ struct ipc_namespace init_ipc_ns = { #endif .ns.ns_type = ns_common_type(&init_ipc_ns), }; +EXPORT_SYMBOL_GPL(init_ipc_ns); struct msg_msgseg { struct msg_msgseg *next; diff --git a/ipc/namespace.c b/ipc/namespace.c index 59b12fcb40bdf..7416908815e9a 100644 --- a/ipc/namespace.c +++ b/ipc/namespace.c @@ -208,6 +208,7 @@ void put_ipc_ns(struct ipc_namespace *ns) schedule_work(&free_ipc_work); } } +EXPORT_SYMBOL_GPL(put_ipc_ns); static struct ns_common *ipcns_get(struct task_struct *task) { diff --git a/kernel/sched/syscalls.c b/kernel/sched/syscalls.c index 77ae87f36e841..90f65d9bbd04a 100644 --- a/kernel/sched/syscalls.c +++ b/kernel/sched/syscalls.c @@ -140,6 +140,7 @@ int can_nice(const struct task_struct *p, const int nice) { return is_nice_reduction(p, nice) || capable(CAP_SYS_NICE); } +EXPORT_SYMBOL_GPL(can_nice); #ifdef __ARCH_WANT_SYS_NICE diff --git a/kernel/sched/wait.c b/kernel/sched/wait.c index 20f27e2cf7aec..8b1338c283414 100644 --- a/kernel/sched/wait.c +++ b/kernel/sched/wait.c @@ -231,6 +231,7 @@ void __wake_up_pollfree(struct wait_queue_head *wq_head) /* POLLFREE must have cleared the queue. */ WARN_ON_ONCE(waitqueue_active(wq_head)); } +EXPORT_SYMBOL_GPL(__wake_up_pollfree); /* * Note: we use "set_current_state()" _after_ the wait-queue add, diff --git a/kernel/task_work.c b/kernel/task_work.c index 0f7519f8e7c93..45fd146b85df4 100644 --- a/kernel/task_work.c +++ b/kernel/task_work.c @@ -102,6 +102,7 @@ int task_work_add(struct task_struct *task, struct callback_head *work, return 0; } +EXPORT_SYMBOL_GPL(task_work_add); /** * task_work_cancel_match - cancel a pending work added by task_work_add() diff --git a/mm/list_lru.c b/mm/list_lru.c index ec48b5dadf519..bf95d73c98155 100644 --- a/mm/list_lru.c +++ b/mm/list_lru.c @@ -179,6 +179,7 @@ bool list_lru_add(struct list_lru *lru, struct list_head *item, int nid, unlock_list_lru(l, false); return false; } +EXPORT_SYMBOL_GPL(list_lru_add); bool list_lru_add_obj(struct list_lru *lru, struct list_head *item) { @@ -216,6 +217,7 @@ bool list_lru_del(struct list_lru *lru, struct list_head *item, int nid, unlock_list_lru(l, false); return false; } +EXPORT_SYMBOL_GPL(list_lru_del); bool list_lru_del_obj(struct list_lru *lru, struct list_head *item) { diff --git a/mm/memory.c b/mm/memory.c index b59ae7ce42ebc..4fbc7ccc265e1 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -2170,6 +2170,7 @@ void zap_page_range_single(struct vm_area_struct *vma, unsigned long address, zap_page_range_single_batched(&tlb, vma, address, size, details); tlb_finish_mmu(&tlb); } +EXPORT_SYMBOL_GPL(zap_page_range_single); /** * zap_vma_ptes - remove ptes mapping the vma diff --git a/mm/mmap_lock.c b/mm/mmap_lock.c index 42e3dde73e741..b1a3f42618af2 100644 --- a/mm/mmap_lock.c +++ b/mm/mmap_lock.c @@ -268,6 +268,7 @@ struct vm_area_struct *lock_vma_under_rcu(struct mm_struct *mm, count_vm_vma_lock_event(VMA_LOCK_ABORT); return NULL; } +EXPORT_SYMBOL_GPL(lock_vma_under_rcu); static struct vm_area_struct *lock_next_vma_under_mmap_lock(struct mm_struct *mm, struct vma_iterator *vmi, diff --git a/security/security.c b/security/security.c index 4d3c03a4524c5..881c9322c39bc 100644 --- a/security/security.c +++ b/security/security.c @@ -1035,6 +1035,7 @@ int security_binder_set_context_mgr(const struct cred *mgr) { return call_int_hook(binder_set_context_mgr, mgr); } +EXPORT_SYMBOL_GPL(security_binder_set_context_mgr); /** * security_binder_transaction() - Check if a binder transaction is allowed @@ -1050,6 +1051,7 @@ int security_binder_transaction(const struct cred *from, { return call_int_hook(binder_transaction, from, to); } +EXPORT_SYMBOL_GPL(security_binder_transaction); /** * security_binder_transfer_binder() - Check if a binder transfer is allowed @@ -1065,6 +1067,7 @@ int security_binder_transfer_binder(const struct cred *from, { return call_int_hook(binder_transfer_binder, from, to); } +EXPORT_SYMBOL_GPL(security_binder_transfer_binder); /** * security_binder_transfer_file() - Check if a binder file xfer is allowed @@ -1081,6 +1084,7 @@ int security_binder_transfer_file(const struct cred *from, { return call_int_hook(binder_transfer_file, from, to, file); } +EXPORT_SYMBOL_GPL(security_binder_transfer_file); /** * security_ptrace_access_check() - Check if tracing is allowed