Lines Matching refs:pinned_pages
322 struct scif_pinned_pages *pinned_pages = window->pinned_pages; in scif_destroy_window() local
338 j = atomic_sub_return(1, &pinned_pages->ref_count); in scif_destroy_window()
349 scif_destroy_pinned_pages(window->pinned_pages); in scif_destroy_window()
545 scif_pinned_pages_t pin = window->pinned_pages; in scif_iommu_map()
598 pin = window->pinned_pages; in scif_map_window()
732 if ((!!(window->pinned_pages->map_flags & SCIF_MAP_KERNEL)) && in scif_unregister_window()
1326 struct scif_pinned_pages *pinned_pages; in __scif_pin_pages() local
1354 pinned_pages = scif_create_pinned_pages(nr_pages, prot); in __scif_pin_pages()
1355 if (!pinned_pages) in __scif_pin_pages()
1364 pinned_pages->pages[i] = in __scif_pin_pages()
1367 pinned_pages->pages[i] = in __scif_pin_pages()
1370 pinned_pages->nr_pages = nr_pages; in __scif_pin_pages()
1371 pinned_pages->map_flags = SCIF_MAP_KERNEL; in __scif_pin_pages()
1391 pinned_pages->nr_pages = 0; in __scif_pin_pages()
1396 pinned_pages->nr_pages = get_user_pages( in __scif_pin_pages()
1403 pinned_pages->pages, in __scif_pin_pages()
1406 if (nr_pages != pinned_pages->nr_pages) { in __scif_pin_pages()
1412 for (i = 0; i < pinned_pages->nr_pages; i++) { in __scif_pin_pages()
1413 if (pinned_pages->pages[i]) in __scif_pin_pages()
1415 pinned_pages->pages[i]); in __scif_pin_pages()
1422 pinned_pages->map_flags = 0; in __scif_pin_pages()
1425 if (pinned_pages->nr_pages < nr_pages) { in __scif_pin_pages()
1427 pinned_pages->nr_pages = nr_pages; in __scif_pin_pages()
1432 atomic_set(&pinned_pages->ref_count, 1); in __scif_pin_pages()
1433 *pages = pinned_pages; in __scif_pin_pages()
1440 pinned_pages->nr_pages = nr_pages; in __scif_pin_pages()
1441 scif_destroy_pinned_pages(pinned_pages); in __scif_pin_pages()
1455 int scif_unpin_pages(scif_pinned_pages_t pinned_pages) in scif_unpin_pages() argument
1459 if (!pinned_pages || SCIFEP_MAGIC != pinned_pages->magic) in scif_unpin_pages()
1462 ret = atomic_sub_return(1, &pinned_pages->ref_count); in scif_unpin_pages()
1476 err = scif_destroy_pinned_pages(pinned_pages); in scif_unpin_pages()
1491 scif_pinned_pages_t pinned_pages, in scif_register_pinned_pages() argument
1505 len = pinned_pages->nr_pages << PAGE_SHIFT; in scif_register_pinned_pages()
1526 if (!atomic_add_unless(&pinned_pages->ref_count, 1, 0)) in scif_register_pinned_pages()
1533 atomic_sub(1, &pinned_pages->ref_count); in scif_register_pinned_pages()
1538 window = scif_create_window(ep, pinned_pages->nr_pages, in scif_register_pinned_pages()
1541 atomic_sub(1, &pinned_pages->ref_count); in scif_register_pinned_pages()
1546 window->pinned_pages = pinned_pages; in scif_register_pinned_pages()
1547 window->nr_pages = pinned_pages->nr_pages; in scif_register_pinned_pages()
1548 window->prot = pinned_pages->prot; in scif_register_pinned_pages()
1595 scif_pinned_pages_t pinned_pages; in scif_register() local
1672 &pinned_pages); in scif_register()
1679 window->pinned_pages = pinned_pages; in scif_register()
1680 window->prot = pinned_pages->prot; in scif_register()