free_pages
free_pages(m);
goto free_pages;
goto free_pages;
free_pages:
page = stash_pop_page(&vm->free_pages);
stash_push_pagevec(&vm->free_pages, &stack);
struct pagevec *pvec = &vm->free_pages.pvec;
lockdep_assert_held(&vm->free_pages.lock);
lockmgr(&vm->free_pages.lock, LK_RELEASE);
lockmgr(&vm->free_pages.lock, LK_EXCLUSIVE);
lockmgr(&vm->free_pages.lock, LK_EXCLUSIVE);
if (!pagevec_add(&vm->free_pages.pvec, page))
lockmgr(&vm->free_pages.lock, LK_RELEASE);
stash_init(&vm->free_pages);
lockmgr(&vm->free_pages.lock, LK_EXCLUSIVE);
if (pagevec_count(&vm->free_pages.pvec))
GEM_BUG_ON(pagevec_count(&vm->free_pages.pvec));
lockmgr(&vm->free_pages.lock, LK_RELEASE);
struct pagestash free_pages;
free_pages(p, 0);
free_pages(p, order);
free_pages(p, 0);
struct free_page *free_pages;
free_pages(p, 0);
free_pages(p, order);
free_pages(p, 0);
TAILQ_HEAD(, vm_page) free_pages;
TAILQ_INIT(&free_pages);
TAILQ_INSERT_TAIL(&free_pages, m, pageq);
while ((m = TAILQ_FIRST(&free_pages)) != NULL) {
TAILQ_REMOVE(&free_pages, m, pageq);