@@ -198,24 +198,22 @@ bool page_vma_mapped_walk(struct page_vma_mapped_walk *pvmw)
198
198
if (pmd_page (pmde ) != page )
199
199
return not_found (pvmw );
200
200
return true;
201
- } else if (!pmd_present (pmde )) {
202
- if (thp_migration_supported ()) {
203
- if (!(pvmw -> flags & PVMW_MIGRATION ))
204
- return not_found (pvmw );
205
- if (is_migration_entry (pmd_to_swp_entry (pmde ))) {
206
- swp_entry_t entry = pmd_to_swp_entry (pmde );
201
+ }
202
+ if (!pmd_present (pmde )) {
203
+ swp_entry_t entry ;
207
204
208
- if (migration_entry_to_page (entry ) != page )
209
- return not_found (pvmw );
210
- return true;
211
- }
212
- }
213
- return not_found (pvmw );
214
- } else {
215
- /* THP pmd was split under us: handle on pte level */
216
- spin_unlock (pvmw -> ptl );
217
- pvmw -> ptl = NULL ;
205
+ if (!thp_migration_supported () ||
206
+ !(pvmw -> flags & PVMW_MIGRATION ))
207
+ return not_found (pvmw );
208
+ entry = pmd_to_swp_entry (pmde );
209
+ if (!is_migration_entry (entry ) ||
210
+ migration_entry_to_page (entry ) != page )
211
+ return not_found (pvmw );
212
+ return true;
218
213
}
214
+ /* THP pmd was split under us: handle on pte level */
215
+ spin_unlock (pvmw -> ptl );
216
+ pvmw -> ptl = NULL ;
219
217
} else if (!pmd_present (pmde )) {
220
218
/*
221
219
* If PVMW_SYNC, take and drop THP pmd lock so that we
0 commit comments