Lines Matching refs:pages
247 static void ttm_pages_put(struct page *pages[], unsigned npages, in ttm_pages_put() argument
253 if (ttm_set_pages_array_wb(pages, npages)) in ttm_pages_put()
259 if (ttm_set_pages_wb(pages[i], pages_nr)) in ttm_pages_put()
262 __free_pages(pages[i], order); in ttm_pages_put()
442 static int ttm_set_pages_caching(struct page **pages, in ttm_set_pages_caching() argument
449 r = ttm_set_pages_array_uc(pages, cpages); in ttm_set_pages_caching()
454 r = ttm_set_pages_array_wc(pages, cpages); in ttm_set_pages_caching()
469 static void ttm_handle_caching_state_failure(struct list_head *pages, in ttm_handle_caching_state_failure() argument
487 static int ttm_alloc_new_pages(struct list_head *pages, gfp_t gfp_flags, in ttm_alloc_new_pages() argument
519 ttm_handle_caching_state_failure(pages, in ttm_alloc_new_pages()
527 list_add(&p->lru, pages); in ttm_alloc_new_pages()
544 ttm_handle_caching_state_failure(pages, in ttm_alloc_new_pages()
557 ttm_handle_caching_state_failure(pages, in ttm_alloc_new_pages()
630 struct list_head *pages, in ttm_page_pool_get_pages() argument
647 list_splice_init(&pool->list, pages); in ttm_page_pool_get_pages()
668 list_cut_position(pages, &pool->list, p); in ttm_page_pool_get_pages()
678 list_for_each_entry(page, pages, lru) { in ttm_page_pool_get_pages()
700 r = ttm_alloc_new_pages(pages, gfp_flags, ttm_flags, cstate, in ttm_page_pool_get_pages()
708 static void ttm_put_pages(struct page **pages, unsigned npages, int flags, in ttm_put_pages() argument
723 struct page *p = pages[i]; in ttm_put_pages()
727 if (!pages[i]) { in ttm_put_pages()
735 if (p++ != pages[i + j]) in ttm_put_pages()
743 if (page_count(pages[i]) != 1) in ttm_put_pages()
745 __free_pages(pages[i], order); in ttm_put_pages()
749 pages[i++] = NULL; in ttm_put_pages()
763 struct page *p = pages[i]; in ttm_put_pages()
770 if (p++ != pages[i + j]) in ttm_put_pages()
776 list_add_tail(&pages[i]->lru, &huge->list); in ttm_put_pages()
779 pages[i++] = NULL; in ttm_put_pages()
798 if (pages[i]) { in ttm_put_pages()
799 if (page_count(pages[i]) != 1) in ttm_put_pages()
801 list_add_tail(&pages[i]->lru, &pool->list); in ttm_put_pages()
802 pages[i] = NULL; in ttm_put_pages()
825 static int ttm_get_pages(struct page **pages, unsigned npages, int flags, in ttm_get_pages() argument
872 pages[i++] = p++; in ttm_get_pages()
888 if (i > first && pages[i - 1] == p - 1) in ttm_get_pages()
889 swap(p, pages[i - 1]); in ttm_get_pages()
891 pages[i++] = p; in ttm_get_pages()
910 pages[count++] = &p[j]; in ttm_get_pages()
924 if (count > first && pages[count - 1] == tmp - 1) in ttm_get_pages()
925 swap(tmp, pages[count - 1]); in ttm_get_pages()
926 pages[count++] = tmp; in ttm_get_pages()
934 ttm_put_pages(pages, count, flags, cstate); in ttm_get_pages()
1037 if (!ttm->pages[i]) in ttm_pool_unpopulate_helper()
1040 ttm_mem_global_free_page(mem_glob, ttm->pages[i], PAGE_SIZE); in ttm_pool_unpopulate_helper()
1044 ttm_put_pages(ttm->pages, ttm->num_pages, ttm->page_flags, in ttm_pool_unpopulate_helper()
1061 ret = ttm_get_pages(ttm->pages, ttm->num_pages, ttm->page_flags, in ttm_pool_populate()
1069 ret = ttm_mem_global_alloc_page(mem_glob, ttm->pages[i], in ttm_pool_populate()
1107 struct page *p = tt->ttm.pages[i]; in ttm_populate_and_map_pages()
1111 if (++p != tt->ttm.pages[j]) in ttm_populate_and_map_pages()
1117 tt->dma_address[i] = dma_map_page(dev, tt->ttm.pages[i], in ttm_populate_and_map_pages()
1144 struct page *p = tt->ttm.pages[i]; in ttm_unmap_and_unpopulate_pages()
1147 if (!tt->dma_address[i] || !tt->ttm.pages[i]) { in ttm_unmap_and_unpopulate_pages()
1153 if (++p != tt->ttm.pages[j]) in ttm_unmap_and_unpopulate_pages()