diff options
| author | Linus Torvalds <torvalds@athlon.transmeta.com> | 2002-02-04 20:30:11 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@athlon.transmeta.com> | 2002-02-04 20:30:11 -0800 |
| commit | 5db5272c0a5cd37e5a697e4750fbc4ce6317b7dc (patch) | |
| tree | ebb132cbe03d613b01bea25c3c552360c8acb2ec /mm/page_alloc.c | |
| parent | aad40ef3f2b9c4077e5a79606aed24a92ccb0406 (diff) | |
v2.4.14 -> v2.4.14.1
- me: fix page flags race condition Andrea found
- David Miller: sparc and network updates
- various: fix loop driver that thought it was part of the VM system
- me: teach DRM about VM_RESERVED
- Alan Cox: more merging
Diffstat (limited to 'mm/page_alloc.c')
| -rw-r--r-- | mm/page_alloc.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index d2605907760f..c3234a648150 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -80,9 +80,9 @@ static void __free_pages_ok (struct page *page, unsigned int order) BUG(); if (PageLocked(page)) BUG(); - if (PageActive(page)) + if (PageLRU(page)) BUG(); - if (PageInactive(page)) + if (PageActive(page)) BUG(); page->flags &= ~((1<<PG_referenced) | (1<<PG_dirty)); @@ -203,7 +203,10 @@ static struct page * rmqueue(zone_t *zone, unsigned int order) set_page_count(page, 1); if (BAD_RANGE(zone,page)) BUG(); - DEBUG_LRU_PAGE(page); + if (PageLRU(page)) + BUG(); + if (PageActive(page)) + BUG(); return page; } curr_order++; @@ -268,9 +271,9 @@ static struct page * balance_classzone(zone_t * classzone, unsigned int gfp_mask BUG(); if (PageLocked(page)) BUG(); - if (PageActive(page)) + if (PageLRU(page)) BUG(); - if (PageInactive(page)) + if (PageActive(page)) BUG(); if (PageDirty(page)) BUG(); @@ -425,7 +428,7 @@ unsigned long get_zeroed_page(unsigned int gfp_mask) void page_cache_release(struct page *page) { if (!PageReserved(page) && put_page_testzero(page)) { - if (PageActive(page) || PageInactive(page)) + if (PageLRU(page)) lru_cache_del(page); __free_pages_ok(page, 0); } |
