Lines Matching refs:page_alloc
52 struct mlx4_en_rx_alloc *page_alloc, in mlx4_alloc_pages() argument
78 page_alloc->page_size = PAGE_SIZE << order; in mlx4_alloc_pages()
79 page_alloc->page = page; in mlx4_alloc_pages()
80 page_alloc->dma = dma; in mlx4_alloc_pages()
81 page_alloc->page_offset = 0; in mlx4_alloc_pages()
85 atomic_add(page_alloc->page_size / frag_info->frag_stride - 1, in mlx4_alloc_pages()
96 struct mlx4_en_rx_alloc page_alloc[MLX4_EN_MAX_RX_FRAGS]; in mlx4_en_alloc_frags() local
104 page_alloc[i] = ring_alloc[i]; in mlx4_en_alloc_frags()
105 page_alloc[i].page_offset += frag_info->frag_stride; in mlx4_en_alloc_frags()
107 if (page_alloc[i].page_offset + frag_info->frag_stride <= in mlx4_en_alloc_frags()
111 if (mlx4_alloc_pages(priv, &page_alloc[i], frag_info, gfp)) in mlx4_en_alloc_frags()
118 ring_alloc[i] = page_alloc[i]; in mlx4_en_alloc_frags()
126 if (page_alloc[i].page != ring_alloc[i].page) { in mlx4_en_alloc_frags()
127 dma_unmap_page(priv->ddev, page_alloc[i].dma, in mlx4_en_alloc_frags()
128 page_alloc[i].page_size, PCI_DMA_FROMDEVICE); in mlx4_en_alloc_frags()
129 page = page_alloc[i].page; in mlx4_en_alloc_frags()
157 struct mlx4_en_rx_alloc *page_alloc; in mlx4_en_init_allocator() local
162 if (mlx4_alloc_pages(priv, &ring->page_alloc[i], in mlx4_en_init_allocator()
167 i, ring->page_alloc[i].page_size, in mlx4_en_init_allocator()
168 atomic_read(&ring->page_alloc[i].page->_count)); in mlx4_en_init_allocator()
176 page_alloc = &ring->page_alloc[i]; in mlx4_en_init_allocator()
177 dma_unmap_page(priv->ddev, page_alloc->dma, in mlx4_en_init_allocator()
178 page_alloc->page_size, PCI_DMA_FROMDEVICE); in mlx4_en_init_allocator()
179 page = page_alloc->page; in mlx4_en_init_allocator()
182 page_alloc->page = NULL; in mlx4_en_init_allocator()
190 struct mlx4_en_rx_alloc *page_alloc; in mlx4_en_destroy_allocator() local
196 page_alloc = &ring->page_alloc[i]; in mlx4_en_destroy_allocator()
198 i, page_count(page_alloc->page)); in mlx4_en_destroy_allocator()
200 dma_unmap_page(priv->ddev, page_alloc->dma, in mlx4_en_destroy_allocator()
201 page_alloc->page_size, PCI_DMA_FROMDEVICE); in mlx4_en_destroy_allocator()
202 while (page_alloc->page_offset + frag_info->frag_stride < in mlx4_en_destroy_allocator()
203 page_alloc->page_size) { in mlx4_en_destroy_allocator()
204 put_page(page_alloc->page); in mlx4_en_destroy_allocator()
205 page_alloc->page_offset += frag_info->frag_stride; in mlx4_en_destroy_allocator()
207 page_alloc->page = NULL; in mlx4_en_destroy_allocator()
244 return mlx4_en_alloc_frags(priv, rx_desc, frags, ring->page_alloc, gfp); in mlx4_en_prepare_rx_desc()