Skip to content

Commit 77a6987

Browse files
Harry Yoojfvogel
authored andcommitted
mm: lru: move VM_WARN_ON_ONCE_FOLIO before MGLRU functions
Commit 8e7b52b ("mm: lru: add VM_WARN_ON_ONCE_FOLIO to lru maintenance function") added VM_WARN_ON_ONCE_FOLIO to lru maintenance functions. But the checks are placed after MGLRU's lru maintenance functions and therefore doesn't trigger when MGLRU is enabled. Move the check ealier to make sure that we catch any attempts to insert into or remove from an incorrect lruvec, regardless of whether MGLRU is enabled. Orabug: 37997580 Reviewed-by: Imran Khan <[email protected]> Signed-off-by: Harry Yoo <[email protected]>
1 parent 068c4ac commit 77a6987

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

include/linux/mm_inline.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -329,11 +329,11 @@ void lruvec_add_folio(struct lruvec *lruvec, struct folio *folio)
329329
{
330330
enum lru_list lru = folio_lru_list(folio);
331331

332+
VM_WARN_ON_ONCE_FOLIO(!folio_matches_lruvec(folio, lruvec), folio);
333+
332334
if (lru_gen_add_folio(lruvec, folio, false))
333335
return;
334336

335-
VM_WARN_ON_ONCE_FOLIO(!folio_matches_lruvec(folio, lruvec), folio);
336-
337337
update_lru_size(lruvec, lru, folio_zonenum(folio),
338338
folio_nr_pages(folio));
339339
if (lru != LRU_UNEVICTABLE)
@@ -345,11 +345,11 @@ void lruvec_add_folio_tail(struct lruvec *lruvec, struct folio *folio)
345345
{
346346
enum lru_list lru = folio_lru_list(folio);
347347

348+
VM_WARN_ON_ONCE_FOLIO(!folio_matches_lruvec(folio, lruvec), folio);
349+
348350
if (lru_gen_add_folio(lruvec, folio, true))
349351
return;
350352

351-
VM_WARN_ON_ONCE_FOLIO(!folio_matches_lruvec(folio, lruvec), folio);
352-
353353
update_lru_size(lruvec, lru, folio_zonenum(folio),
354354
folio_nr_pages(folio));
355355
/* This is not expected to be used on LRU_UNEVICTABLE */
@@ -361,11 +361,11 @@ void lruvec_del_folio(struct lruvec *lruvec, struct folio *folio)
361361
{
362362
enum lru_list lru = folio_lru_list(folio);
363363

364+
VM_WARN_ON_ONCE_FOLIO(!folio_matches_lruvec(folio, lruvec), folio);
365+
364366
if (lru_gen_del_folio(lruvec, folio, false))
365367
return;
366368

367-
VM_WARN_ON_ONCE_FOLIO(!folio_matches_lruvec(folio, lruvec), folio);
368-
369369
if (lru != LRU_UNEVICTABLE)
370370
list_del(&folio->lru);
371371
update_lru_size(lruvec, lru, folio_zonenum(folio),

0 commit comments

Comments
 (0)