• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/drivers/infiniband/hw/mthca/

Lines Matching refs:icm

89 void mthca_free_icm(struct mthca_dev *dev, struct mthca_icm *icm, int coherent)
93 if (!icm)
96 list_for_each_entry_safe(chunk, tmp, &icm->chunk_list, list) {
105 kfree(icm);
136 struct mthca_icm *icm;
144 icm = kmalloc(sizeof *icm, gfp_mask & ~(__GFP_HIGHMEM | __GFP_NOWARN));
145 if (!icm)
146 return icm;
148 icm->refcount = 0;
149 INIT_LIST_HEAD(&icm->chunk_list);
162 list_add_tail(&chunk->list, &icm->chunk_list);
210 return icm;
213 mthca_free_icm(dev, icm, coherent);
225 if (table->icm[i]) {
226 ++table->icm[i]->refcount;
230 table->icm[i] = mthca_alloc_icm(dev, MTHCA_TABLE_CHUNK_SIZE >> PAGE_SHIFT,
233 if (!table->icm[i]) {
238 if (mthca_MAP_ICM(dev, table->icm[i], table->virt + i * MTHCA_TABLE_CHUNK_SIZE,
240 mthca_free_icm(dev, table->icm[i], table->coherent);
241 table->icm[i] = NULL;
246 ++table->icm[i]->refcount;
265 if (--table->icm[i]->refcount == 0) {
269 mthca_free_icm(dev, table->icm[i], table->coherent);
270 table->icm[i] = NULL;
280 struct mthca_icm *icm;
289 icm = table->icm[idx / MTHCA_TABLE_CHUNK_SIZE];
292 if (!icm)
295 list_for_each_entry(chunk, &icm->chunk_list, list) {
367 table = kmalloc(sizeof *table + num_icm * sizeof *table->icm, GFP_KERNEL);
380 table->icm[i] = NULL;
387 table->icm[i] = mthca_alloc_icm(dev, chunk_size >> PAGE_SHIFT,
390 if (!table->icm[i])
392 if (mthca_MAP_ICM(dev, table->icm[i], virt + i * MTHCA_TABLE_CHUNK_SIZE,
394 mthca_free_icm(dev, table->icm[i], table->coherent);
395 table->icm[i] = NULL;
403 ++table->icm[i]->refcount;
410 if (table->icm[i]) {
414 mthca_free_icm(dev, table->icm[i], table->coherent);
428 if (table->icm[i]) {
432 mthca_free_icm(dev, table->icm[i], table->coherent);