On Fri, Feb 26, 2021 at 06:18:25PM +1100, Alistair Popple wrote: > Remove the migration and device private entry_to_page() and > entry_to_pfn() inline functions and instead open code them directly. > This results in shorter code which is easier to understand. > > Signed-off-by: Alistair Popple <apopple@xxxxxxxxxx> > --- > arch/s390/mm/pgtable.c | 2 +- > fs/proc/task_mmu.c | 23 +++++++------------ > include/linux/swap.h | 4 ++-- > include/linux/swapops.h | 51 ++++------------------------------------- > mm/hmm.c | 5 ++-- > mm/memcontrol.c | 2 +- > mm/memory.c | 10 ++++---- > mm/migrate.c | 6 ++--- > mm/page_vma_mapped.c | 6 ++--- > 9 files changed, 30 insertions(+), 79 deletions(-) I wish you could come up with a more descriptive word that special here What I understand is this is true when the swap_offset is a pfn? > -static inline struct page *migration_entry_to_page(swp_entry_t entry) > -{ > - struct page *p = pfn_to_page(swp_offset(entry)); > - /* > - * Any use of migration entries may only occur while the > - * corresponding page is locked > - */ > - BUG_ON(!PageLocked(compound_head(p))); > - return p; And this constraint has been completely lost? A comment in front of the is_special_entry explaining all the rule would help alot Transformation looks fine otherwise Jason