• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/sys/dev/mthca/

Lines Matching defs:icm

87 void mthca_free_icm(struct mthca_dev *dev, struct mthca_icm *icm, int coherent)
91 if (!icm)
94 list_for_each_entry_safe(chunk, tmp, &icm->chunk_list, list) {
103 kfree(icm);
139 struct mthca_icm *icm;
147 icm = kmalloc(sizeof *icm, gfp_mask & ~(__GFP_HIGHMEM | __GFP_NOWARN));
148 if (!icm)
149 return icm;
151 icm->refcount = 0;
152 INIT_LIST_HEAD(&icm->chunk_list);
166 list_add_tail(&chunk->list, &icm->chunk_list);
214 return icm;
217 mthca_free_icm(dev, icm, coherent);
228 if (table->icm[i]) {
229 ++table->icm[i]->refcount;
233 table->icm[i] = mthca_alloc_icm(dev, MTHCA_TABLE_CHUNK_SIZE >> PAGE_SHIFT,
236 if (!table->icm[i]) {
241 if (mthca_MAP_ICM(dev, table->icm[i],
243 mthca_free_icm(dev, table->icm[i], table->coherent);
244 table->icm[i] = NULL;
249 ++table->icm[i]->refcount;
267 if (--table->icm[i]->refcount == 0) {
270 mthca_free_icm(dev, table->icm[i], table->coherent);
271 table->icm[i] = NULL;
281 struct mthca_icm *icm;
290 icm = table->icm[idx / MTHCA_TABLE_CHUNK_SIZE];
293 if (!icm)
296 list_for_each_entry(chunk, &icm->chunk_list, list) {
369 table = kmalloc(sizeof *table + num_icm * sizeof *table->icm, GFP_KERNEL);
382 table->icm[i] = NULL;
389 table->icm[i] = mthca_alloc_icm(dev, chunk_size >> PAGE_SHIFT,
392 if (!table->icm[i])
394 if (mthca_MAP_ICM(dev, table->icm[i],
396 mthca_free_icm(dev, table->icm[i], table->coherent);
397 table->icm[i] = NULL;
405 ++table->icm[i]->refcount;
412 if (table->icm[i]) {
415 mthca_free_icm(dev, table->icm[i], table->coherent);
428 if (table->icm[i]) {
432 mthca_free_icm(dev, table->icm[i], table->coherent);