Lines Matching refs:chunk

53 static void i40iw_free_vmalloc_mem(struct i40iw_hw *hw, struct i40iw_chunk *chunk);
63 struct i40iw_chunk *chunk;
68 chunk = list_entry(clist, struct i40iw_chunk, list);
69 if (chunk->type == I40IW_VMALLOC)
70 i40iw_free_vmalloc_mem(dev->hw, chunk);
71 kfree(chunk);
138 struct i40iw_chunk *chunk = info->chunk;
151 chunk->type = I40IW_DMA_COHERENT;
155 chunk->size = info->pages << I40IW_HMC_PAGED_BP_SHIFT;
156 chunk->vaddr = ((u8 *)sd_entry->u.bp.addr.va + offset);
157 chunk->fpm_addr = pble_rsrc->next_fpm_addr;
159 chunk->size, chunk->size, chunk->vaddr, chunk->fpm_addr);
166 * @chunk: chunk information for vmalloc
168 static void i40iw_free_vmalloc_mem(struct i40iw_hw *hw, struct i40iw_chunk *chunk)
173 if (!chunk->pg_cnt)
175 for (i = 0; i < chunk->pg_cnt; i++)
176 dma_unmap_page(&pcidev->dev, chunk->dmaaddrs[i], PAGE_SIZE, DMA_BIDIRECTIONAL);
179 kfree(chunk->dmaaddrs);
180 chunk->dmaaddrs = NULL;
181 vfree(chunk->vaddr);
182 chunk->vaddr = NULL;
183 chunk->type = 0;
189 * @chunk: chunk to adf
193 struct i40iw_chunk *chunk,
202 chunk->dmaaddrs = kzalloc(pg_cnt << 3, GFP_KERNEL);
203 if (!chunk->dmaaddrs)
206 chunk->vaddr = vmalloc(size);
207 if (!chunk->vaddr) {
208 kfree(chunk->dmaaddrs);
209 chunk->dmaaddrs = NULL;
212 chunk->size = size;
213 addr = (u8 *)chunk->vaddr;
218 chunk->dmaaddrs[i] = dma_map_page(&pcidev->dev, page, 0,
220 if (dma_mapping_error(&pcidev->dev, chunk->dmaaddrs[i]))
225 chunk->pg_cnt = i;
226 chunk->type = I40IW_VMALLOC;
230 i40iw_free_vmalloc_mem(hw, chunk);
259 struct i40iw_chunk *chunk = info->chunk;
266 status = i40iw_get_vmalloc_mem(dev->hw, chunk, info->pages);
284 addr = chunk->vaddr;
286 mem.pa = chunk->dmaaddrs[i];
312 chunk->fpm_addr = pble_rsrc->next_fpm_addr;
315 i40iw_free_vmalloc_mem(dev->hw, chunk);
329 struct i40iw_chunk *chunk;
343 chunk = kzalloc(sizeof(*chunk), GFP_KERNEL);
344 if (!chunk)
347 chunk->fpm_addr = pble_rsrc->next_fpm_addr;
353 info.chunk = chunk;
385 if (gen_pool_add_virt(pble_rsrc->pinfo.pool, (unsigned long)chunk->vaddr,
386 (phys_addr_t)chunk->fpm_addr, chunk->size, -1)) {
391 pble_rsrc->next_fpm_addr += chunk->size;
393 pble_rsrc->next_fpm_addr, chunk->size, chunk->size);
394 pble_rsrc->unallocated_pble -= (chunk->size >> 3);
408 list_add(&chunk->list, &pble_rsrc->pinfo.clist);
411 kfree(chunk);