• 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:ah

158 		    struct mthca_ah *ah)
163 ah->type = MTHCA_AH_PCI_POOL;
166 ah->av = kmalloc(sizeof *ah->av, GFP_ATOMIC);
167 if (!ah->av)
170 ah->type = MTHCA_AH_KMALLOC;
171 av = ah->av;
184 ah->type = MTHCA_AH_ON_HCA;
185 ah->avdma = dev->av_table.ddr_av_base +
190 if (ah->type == MTHCA_AH_PCI_POOL) {
191 ah->av = pci_pool_alloc(dev->av_table.pool,
192 GFP_ATOMIC, &ah->avdma);
193 if (!ah->av)
196 av = ah->av;
199 ah->key = pd->ntmr.ibmr.lkey;
226 av, (unsigned long) ah->avdma);
232 if (ah->type == MTHCA_AH_ON_HCA) {
241 int mthca_destroy_ah(struct mthca_dev *dev, struct mthca_ah *ah)
243 switch (ah->type) {
246 (ah->avdma - dev->av_table.ddr_av_base) /
251 pci_pool_free(dev->av_table.pool, ah->av, ah->avdma);
255 kfree(ah->av);
262 int mthca_ah_grh_present(struct mthca_ah *ah)
264 return !!(ah->av->g_slid & 0x80);
267 int mthca_read_ah(struct mthca_dev *dev, struct mthca_ah *ah,
270 if (ah->type == MTHCA_AH_ON_HCA)
273 header->lrh.service_level = be32_to_cpu(ah->av->sl_tclass_flowlabel) >> 28;
274 header->lrh.destination_lid = ah->av->dlid;
275 header->lrh.source_lid = cpu_to_be16(ah->av->g_slid & 0x7f);
276 if (mthca_ah_grh_present(ah)) {
278 (be32_to_cpu(ah->av->sl_tclass_flowlabel) >> 20) & 0xff;
280 ah->av->sl_tclass_flowlabel & cpu_to_be32(0xfffff);
281 header->grh.hop_limit = ah->av->hop_limit;
283 be32_to_cpu(ah->av->port_pd) >> 24,
284 ah->av->gid_index % dev->limits.gid_table_len,
287 ah->av->dgid, 16);
295 struct mthca_ah *ah = to_mah(ibah);
298 /* Only implement for MAD and memfree ah for now. */
299 if (ah->type == MTHCA_AH_ON_HCA)
303 attr->dlid = be16_to_cpu(ah->av->dlid);
304 attr->sl = be32_to_cpu(ah->av->sl_tclass_flowlabel) >> 28;
305 attr->port_num = be32_to_cpu(ah->av->port_pd) >> 24;
306 attr->static_rate = mthca_rate_to_ib(dev, ah->av->msg_sr & 0x7,
308 attr->src_path_bits = ah->av->g_slid & 0x7F;
309 attr->ah_flags = mthca_ah_grh_present(ah) ? IB_AH_GRH : 0;
313 be32_to_cpu(ah->av->sl_tclass_flowlabel) >> 20;
315 be32_to_cpu(ah->av->sl_tclass_flowlabel) & 0xfffff;
316 attr->grh.hop_limit = ah->av->hop_limit;
317 attr->grh.sgid_index = ah->av->gid_index &
319 memcpy(attr->grh.dgid.raw, ah->av->dgid, 16);