mirror of
https://github.com/torvalds/linux.git
synced 2024-10-22 21:20:52 +00:00
mm: remove follow_page()
All users are gone, let's remove it and any leftovers in comments. We'll leave any FOLL/follow_page_() naming cleanups as future work. Link: https://lkml.kernel.org/r/20240802155524.517137-11-david@redhat.com Signed-off-by: David Hildenbrand <david@redhat.com> Cc: Alexander Gordeev <agordeev@linux.ibm.com> Cc: Christian Borntraeger <borntraeger@linux.ibm.com> Cc: Claudio Imbrenda <imbrenda@linux.ibm.com> Cc: Gerald Schaefer <gerald.schaefer@linux.ibm.com> Cc: Heiko Carstens <hca@linux.ibm.com> Cc: Janosch Frank <frankja@linux.ibm.com> Cc: Jonathan Corbet <corbet@lwn.net> Cc: Matthew Wilcox <willy@infradead.org> Cc: Sven Schnelle <svens@linux.ibm.com> Cc: Vasily Gorbik <gor@linux.ibm.com> Cc: Ryan Roberts <ryan.roberts@arm.com> Cc: Zi Yan <ziy@nvidia.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
0b31a3cef4
commit
7290840de6
|
@ -31,10 +31,10 @@ Design principles
|
||||||
feature that applies to all dynamic high order allocations in the
|
feature that applies to all dynamic high order allocations in the
|
||||||
kernel)
|
kernel)
|
||||||
|
|
||||||
get_user_pages and follow_page
|
get_user_pages and pin_user_pages
|
||||||
==============================
|
=================================
|
||||||
|
|
||||||
get_user_pages and follow_page if run on a hugepage, will return the
|
get_user_pages and pin_user_pages if run on a hugepage, will return the
|
||||||
head or tail pages as usual (exactly as they would do on
|
head or tail pages as usual (exactly as they would do on
|
||||||
hugetlbfs). Most GUP users will only care about the actual physical
|
hugetlbfs). Most GUP users will only care about the actual physical
|
||||||
address of the page and its temporary pinning to release after the I/O
|
address of the page and its temporary pinning to release after the I/O
|
||||||
|
|
|
@ -3527,9 +3527,6 @@ static inline vm_fault_t vmf_fs_error(int err)
|
||||||
return VM_FAULT_SIGBUS;
|
return VM_FAULT_SIGBUS;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct page *follow_page(struct vm_area_struct *vma, unsigned long address,
|
|
||||||
unsigned int foll_flags);
|
|
||||||
|
|
||||||
static inline int vm_fault_to_errno(vm_fault_t vm_fault, int foll_flags)
|
static inline int vm_fault_to_errno(vm_fault_t vm_fault, int foll_flags)
|
||||||
{
|
{
|
||||||
if (vm_fault & VM_FAULT_OOM)
|
if (vm_fault & VM_FAULT_OOM)
|
||||||
|
|
|
@ -112,7 +112,7 @@
|
||||||
* ->swap_lock (try_to_unmap_one)
|
* ->swap_lock (try_to_unmap_one)
|
||||||
* ->private_lock (try_to_unmap_one)
|
* ->private_lock (try_to_unmap_one)
|
||||||
* ->i_pages lock (try_to_unmap_one)
|
* ->i_pages lock (try_to_unmap_one)
|
||||||
* ->lruvec->lru_lock (follow_page->mark_page_accessed)
|
* ->lruvec->lru_lock (follow_page_mask->mark_page_accessed)
|
||||||
* ->lruvec->lru_lock (check_pte_range->isolate_lru_page)
|
* ->lruvec->lru_lock (check_pte_range->isolate_lru_page)
|
||||||
* ->private_lock (folio_remove_rmap_pte->set_page_dirty)
|
* ->private_lock (folio_remove_rmap_pte->set_page_dirty)
|
||||||
* ->i_pages lock (folio_remove_rmap_pte->set_page_dirty)
|
* ->i_pages lock (folio_remove_rmap_pte->set_page_dirty)
|
||||||
|
|
24
mm/gup.c
24
mm/gup.c
|
@ -1072,28 +1072,6 @@ static struct page *follow_page_mask(struct vm_area_struct *vma,
|
||||||
return page;
|
return page;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct page *follow_page(struct vm_area_struct *vma, unsigned long address,
|
|
||||||
unsigned int foll_flags)
|
|
||||||
{
|
|
||||||
struct follow_page_context ctx = { NULL };
|
|
||||||
struct page *page;
|
|
||||||
|
|
||||||
if (vma_is_secretmem(vma))
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
if (WARN_ON_ONCE(foll_flags & FOLL_PIN))
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* We never set FOLL_HONOR_NUMA_FAULT because callers don't expect
|
|
||||||
* to fail on PROT_NONE-mapped pages.
|
|
||||||
*/
|
|
||||||
page = follow_page_mask(vma, address, foll_flags, &ctx);
|
|
||||||
if (ctx.pgmap)
|
|
||||||
put_dev_pagemap(ctx.pgmap);
|
|
||||||
return page;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int get_gate_page(struct mm_struct *mm, unsigned long address,
|
static int get_gate_page(struct mm_struct *mm, unsigned long address,
|
||||||
unsigned int gup_flags, struct vm_area_struct **vma,
|
unsigned int gup_flags, struct vm_area_struct **vma,
|
||||||
struct page **page)
|
struct page **page)
|
||||||
|
@ -2519,7 +2497,7 @@ static bool is_valid_gup_args(struct page **pages, int *locked,
|
||||||
* These flags not allowed to be specified externally to the gup
|
* These flags not allowed to be specified externally to the gup
|
||||||
* interfaces:
|
* interfaces:
|
||||||
* - FOLL_TOUCH/FOLL_PIN/FOLL_TRIED/FOLL_FAST_ONLY are internal only
|
* - FOLL_TOUCH/FOLL_PIN/FOLL_TRIED/FOLL_FAST_ONLY are internal only
|
||||||
* - FOLL_REMOTE is internal only and used on follow_page()
|
* - FOLL_REMOTE is internal only, set in (get|pin)_user_pages_remote()
|
||||||
* - FOLL_UNLOCKABLE is internal only and used if locked is !NULL
|
* - FOLL_UNLOCKABLE is internal only and used if locked is !NULL
|
||||||
*/
|
*/
|
||||||
if (WARN_ON_ONCE(gup_flags & INTERNAL_GUP_FLAGS))
|
if (WARN_ON_ONCE(gup_flags & INTERNAL_GUP_FLAGS))
|
||||||
|
|
|
@ -1578,12 +1578,6 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len,
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct page *follow_page(struct vm_area_struct *vma, unsigned long address,
|
|
||||||
unsigned int foll_flags)
|
|
||||||
{
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
int remap_pfn_range(struct vm_area_struct *vma, unsigned long addr,
|
int remap_pfn_range(struct vm_area_struct *vma, unsigned long addr,
|
||||||
unsigned long pfn, unsigned long size, pgprot_t prot)
|
unsigned long pfn, unsigned long size, pgprot_t prot)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue
Block a user