diff --git a/mm/kidled.c b/mm/kidled.c index db63de493ece7e212661bead0f62e7fe78694ffb..78abc078489043d8792e8b06e9333afd683208a8 100644 --- a/mm/kidled.c +++ b/mm/kidled.c @@ -75,9 +75,10 @@ int kidled_inc_page_age(pg_data_t *pgdat, unsigned long pfn) if (age >= KIDLED_AGE_MASK) break; + age++; new = old = page->flags; new &= ~(KIDLED_AGE_MASK << KIDLED_AGE_PGSHIFT); - new |= (((age + 1) & KIDLED_AGE_MASK) << KIDLED_AGE_PGSHIFT); + new |= ((age & KIDLED_AGE_MASK) << KIDLED_AGE_PGSHIFT); } while (unlikely(cmpxchg(&page->flags, old, new) != old)); return age;