Files
David Hildenbrand f002882ca3 mm: merge folio_is_secretmem() and folio_fast_pin_allowed() into gup_fast_folio_allowed()
folio_is_secretmem() is currently only used during GUP-fast.  Nowadays,
folio_fast_pin_allowed() performs similar checks during GUP-fast and
contains a lot of careful handling -- READ_ONCE() -- , sanity checks --
lockdep_assert_irqs_disabled() -- and helpful comments on how this
handling is safe and correct.

So let's merge folio_is_secretmem() into folio_fast_pin_allowed().  Rename
folio_fast_pin_allowed() to gup_fast_folio_allowed(), to better match the
new semantics.

Link: https://lkml.kernel.org/r/[email protected]
Signed-off-by: David Hildenbrand <[email protected]>
Reviewed-by: Mike Rapoport (IBM) <[email protected]>
Cc: David Hildenbrand <[email protected]>
Cc: Lorenzo Stoakes <[email protected]>
Cc: Miklos Szeredi <[email protected]>
Cc: xingwei lee <[email protected]>
Cc: yue sun <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
2024-04-25 20:56:13 -07:00

37 lines
706 B
C

/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
#ifndef _LINUX_SECRETMEM_H
#define _LINUX_SECRETMEM_H
#ifdef CONFIG_SECRETMEM
extern const struct address_space_operations secretmem_aops;
static inline bool secretmem_mapping(struct address_space *mapping)
{
return mapping->a_ops == &secretmem_aops;
}
bool vma_is_secretmem(struct vm_area_struct *vma);
bool secretmem_active(void);
#else
static inline bool vma_is_secretmem(struct vm_area_struct *vma)
{
return false;
}
static inline bool secretmem_mapping(struct address_space *mapping)
{
return false;
}
static inline bool secretmem_active(void)
{
return false;
}
#endif /* CONFIG_SECRETMEM */
#endif /* _LINUX_SECRETMEM_H */