[PATCH 3/5] mm: export zap_page_range_single and list_lru_add/del

David Hildenbrand (arm) david at kernel.org
Thu Feb 5 10:59:47 UTC 2026


On 2/5/26 11:51, Alice Ryhl wrote:
> These are the functions needed by Binder's shrinker.
> 
> Binder uses zap_page_range_single in the shrinker path to remove an
> unused page from the mmap'd region. Note that pages are only removed
> from the mmap'd region lazily when shrinker asks for it.
> 
> Binder uses list_lru_add/del to keep track of the shrinker lru list, and
> it can't use _obj because the list head is not stored inline in the page
> actually being lru freed, so page_to_nid(virt_to_page(item)) on the list
> head computes the nid of the wrong page.
> 
> Signed-off-by: Alice Ryhl <aliceryhl at google.com>
> ---
>   mm/list_lru.c | 2 ++
>   mm/memory.c   | 1 +
>   2 files changed, 3 insertions(+)
> 
> diff --git a/mm/list_lru.c b/mm/list_lru.c
> index ec48b5dadf519a5296ac14cda035c067f9e448f8..bf95d73c9815548a19db6345f856cee9baad22e3 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 da360a6eb8a48e29293430d0c577fb4b6ec58099..64083ace239a2caf58e1645dd5d91a41d61492c4 100644
> --- a/mm/memory.c
> +++ b/mm/memory.c
> @@ -2168,6 +2168,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(zap_page_range_single);

Why not EXPORT_SYMBOL_GPL?

-- 
Cheers,

David



More information about the Linux-security-module-archive mailing list