Lines Matching defs:dmb

104 				WARN(1, "%s: attempt to unregister '%s' with registered dmb(s)\n",
291 static void ism_free_dmb(struct ism_dev *ism, struct ism_dmb *dmb)
293 clear_bit(dmb->sba_idx, ism->sba_bitmap);
294 dma_free_coherent(&ism->pdev->dev, dmb->dmb_len,
295 dmb->cpu_addr, dmb->dma_addr);
298 static int ism_alloc_dmb(struct ism_dev *ism, struct ism_dmb *dmb)
302 if (PAGE_ALIGN(dmb->dmb_len) > dma_get_max_seg_size(&ism->pdev->dev))
305 if (!dmb->sba_idx) {
311 dmb->sba_idx = bit;
313 if (dmb->sba_idx < ISM_DMB_BIT_OFFSET ||
314 test_and_set_bit(dmb->sba_idx, ism->sba_bitmap))
317 dmb->cpu_addr = dma_alloc_coherent(&ism->pdev->dev, dmb->dmb_len,
318 &dmb->dma_addr,
321 if (!dmb->cpu_addr)
322 clear_bit(dmb->sba_idx, ism->sba_bitmap);
324 return dmb->cpu_addr ? 0 : -ENOMEM;
327 int ism_register_dmb(struct ism_dev *ism, struct ism_dmb *dmb,
334 ret = ism_alloc_dmb(ism, dmb);
342 cmd.request.dmb = dmb->dma_addr;
343 cmd.request.dmb_len = dmb->dmb_len;
344 cmd.request.sba_idx = dmb->sba_idx;
345 cmd.request.vlan_valid = dmb->vlan_valid;
346 cmd.request.vlan_id = dmb->vlan_id;
347 cmd.request.rgid = dmb->rgid;
351 ism_free_dmb(ism, dmb);
354 dmb->dmb_tok = cmd.response.dmb_tok;
356 ism->sba_client_arr[dmb->sba_idx - ISM_DMB_BIT_OFFSET] = client->id;
363 int ism_unregister_dmb(struct ism_dev *ism, struct ism_dmb *dmb)
373 cmd.request.dmb_tok = dmb->dmb_tok;
376 ism->sba_client_arr[dmb->sba_idx - ISM_DMB_BIT_OFFSET] = NO_CLIENT;
383 ism_free_dmb(ism, dmb);
752 static int smcd_register_dmb(struct smcd_dev *smcd, struct smcd_dmb *dmb,
755 return ism_register_dmb(smcd->priv, (struct ism_dmb *)dmb, client);
758 static int smcd_unregister_dmb(struct smcd_dev *smcd, struct smcd_dmb *dmb)
760 return ism_unregister_dmb(smcd->priv, (struct ism_dmb *)dmb);