/linux/drivers/dma-buf/ |
A D | dma-buf.c | 719 attach = kzalloc(sizeof(*attach), GFP_KERNEL); in dma_buf_dynamic_attach() 720 if (!attach) in dma_buf_dynamic_attach() 731 ret = dmabuf->ops->attach(dmabuf, attach); in dma_buf_dynamic_attach() 767 return attach; in dma_buf_dynamic_attach() 770 kfree(attach); in dma_buf_dynamic_attach() 829 __unmap_dma_buf(attach, attach->sgt, attach->dir); in dma_buf_detach() 927 if (WARN_ON(!attach || !attach->dmabuf)) in dma_buf_map_attachment() 948 r = attach->dmabuf->ops->pin(attach); in dma_buf_map_attachment() 960 attach->dmabuf->ops->unpin(attach); in dma_buf_map_attachment() 1004 if (WARN_ON(!attach || !attach->dmabuf || !sg_table)) in dma_buf_unmap_attachment() [all …]
|
/linux/drivers/gpu/drm/amd/amdgpu/ |
A D | amdgpu_dma_buf.c | 54 struct dma_buf_attachment *attach) in amdgpu_dma_buf_attach() argument 62 attach->peer2peer = false; in amdgpu_dma_buf_attach() 87 struct dma_buf_attachment *attach) in amdgpu_dma_buf_detach() argument 156 struct dma_buf *dma_buf = attach->dmabuf; in amdgpu_dma_buf_map() 169 attach->peer2peer) { in amdgpu_dma_buf_map() 198 bo->tbo.base.size, attach->dev, in amdgpu_dma_buf_map() 279 .attach = amdgpu_dma_buf_attach, 448 struct dma_buf_attachment *attach; in amdgpu_gem_prime_import() local 469 if (IS_ERR(attach)) { in amdgpu_gem_prime_import() 471 return ERR_CAST(attach); in amdgpu_gem_prime_import() [all …]
|
/linux/drivers/infiniband/core/ |
A D | umem_dmabuf.c | 24 dma_resv_assert_held(umem_dmabuf->attach->dmabuf->resv); in ib_umem_dmabuf_map_pages() 149 umem_dmabuf->attach = dma_buf_dynamic_attach( in ib_umem_dmabuf_get() 154 if (IS_ERR(umem_dmabuf->attach)) { in ib_umem_dmabuf_get() 155 ret = ERR_CAST(umem_dmabuf->attach); in ib_umem_dmabuf_get() 197 err = dma_buf_pin(umem_dmabuf->attach); in ib_umem_dmabuf_get_pinned() 205 dma_resv_unlock(umem_dmabuf->attach->dmabuf->resv); in ib_umem_dmabuf_get_pinned() 210 dma_buf_unpin(umem_dmabuf->attach); in ib_umem_dmabuf_get_pinned() 212 dma_resv_unlock(umem_dmabuf->attach->dmabuf->resv); in ib_umem_dmabuf_get_pinned() 220 struct dma_buf *dmabuf = umem_dmabuf->attach->dmabuf; in ib_umem_dmabuf_release() 225 dma_buf_unpin(umem_dmabuf->attach); in ib_umem_dmabuf_release() [all …]
|
/linux/drivers/media/common/videobuf2/ |
A D | videobuf2-vmalloc.c | 220 attach = kzalloc(sizeof(*attach), GFP_KERNEL); in vb2_vmalloc_dmabuf_ops_attach() 221 if (!attach) in vb2_vmalloc_dmabuf_ops_attach() 224 sgt = &attach->sgt; in vb2_vmalloc_dmabuf_ops_attach() 227 kfree(attach); in vb2_vmalloc_dmabuf_ops_attach() 235 kfree(attach); in vb2_vmalloc_dmabuf_ops_attach() 242 attach->dma_dir = DMA_NONE; in vb2_vmalloc_dmabuf_ops_attach() 253 if (!attach) in vb2_vmalloc_dmabuf_ops_detach() 256 sgt = &attach->sgt; in vb2_vmalloc_dmabuf_ops_detach() 262 kfree(attach); in vb2_vmalloc_dmabuf_ops_detach() 276 sgt = &attach->sgt; in vb2_vmalloc_dmabuf_ops_map() [all …]
|
A D | videobuf2-dma-sg.c | 377 attach = kzalloc(sizeof(*attach), GFP_KERNEL); in vb2_dma_sg_dmabuf_ops_attach() 378 if (!attach) in vb2_dma_sg_dmabuf_ops_attach() 381 sgt = &attach->sgt; in vb2_dma_sg_dmabuf_ops_attach() 387 kfree(attach); in vb2_dma_sg_dmabuf_ops_attach() 399 attach->dma_dir = DMA_NONE; in vb2_dma_sg_dmabuf_ops_attach() 400 dbuf_attach->priv = attach; in vb2_dma_sg_dmabuf_ops_attach() 411 if (!attach) in vb2_dma_sg_dmabuf_ops_detach() 414 sgt = &attach->sgt; in vb2_dma_sg_dmabuf_ops_detach() 420 kfree(attach); in vb2_dma_sg_dmabuf_ops_detach() 434 sgt = &attach->sgt; in vb2_dma_sg_dmabuf_ops_map() [all …]
|
A D | videobuf2-dma-contig.c | 327 attach = kzalloc(sizeof(*attach), GFP_KERNEL); in vb2_dc_dmabuf_ops_attach() 328 if (!attach) in vb2_dc_dmabuf_ops_attach() 331 sgt = &attach->sgt; in vb2_dc_dmabuf_ops_attach() 337 kfree(attach); in vb2_dc_dmabuf_ops_attach() 349 attach->dma_dir = DMA_NONE; in vb2_dc_dmabuf_ops_attach() 350 dbuf_attach->priv = attach; in vb2_dc_dmabuf_ops_attach() 361 if (!attach) in vb2_dc_dmabuf_ops_detach() 364 sgt = &attach->sgt; in vb2_dc_dmabuf_ops_detach() 377 kfree(attach); in vb2_dc_dmabuf_ops_detach() 391 sgt = &attach->sgt; in vb2_dc_dmabuf_ops_map() [all …]
|
/linux/drivers/xen/ |
A D | gntdev-dmabuf.c | 56 struct dma_buf_attachment *attach; member 261 attach->priv = NULL; in dmabuf_exp_ops_detach() 274 attach->dev); in dmabuf_exp_ops_map_dma_buf() 348 .attach = dmabuf_exp_ops_attach, 605 if (IS_ERR(attach)) { in dmabuf_imp_to_refs() 606 ret = ERR_CAST(attach); in dmabuf_imp_to_refs() 610 gntdev_dmabuf->u.imp.attach = attach; in dmabuf_imp_to_refs() 672 dma_buf_detach(dma_buf, attach); in dmabuf_imp_to_refs() 717 attach = gntdev_dmabuf->u.imp.attach; in dmabuf_imp_release() 722 dma_buf = attach->dmabuf; in dmabuf_imp_release() [all …]
|
/linux/drivers/gpu/drm/virtio/ |
A D | virtgpu_prime.c | 47 virtgpu_gem_map_dma_buf(struct dma_buf_attachment *attach, in virtgpu_gem_map_dma_buf() argument 50 struct drm_gem_object *obj = attach->dmabuf->priv; in virtgpu_gem_map_dma_buf() 54 return virtio_gpu_vram_map_dma_buf(bo, attach->dev, dir); in virtgpu_gem_map_dma_buf() 56 return drm_gem_map_dma_buf(attach, dir); in virtgpu_gem_map_dma_buf() 59 static void virtgpu_gem_unmap_dma_buf(struct dma_buf_attachment *attach, in virtgpu_gem_unmap_dma_buf() argument 63 struct drm_gem_object *obj = attach->dmabuf->priv; in virtgpu_gem_unmap_dma_buf() 67 virtio_gpu_vram_unmap_dma_buf(attach->dev, sgt, dir); in virtgpu_gem_unmap_dma_buf() 71 drm_gem_unmap_dma_buf(attach, sgt, dir); in virtgpu_gem_unmap_dma_buf() 77 .attach = virtio_dma_buf_attach, 170 struct drm_device *dev, struct dma_buf_attachment *attach, in virtgpu_gem_prime_import_sg_table() argument
|
/linux/include/linux/ |
A D | dma-buf.h | 72 int (*attach)(struct dma_buf *, struct dma_buf_attachment *); member 109 int (*pin)(struct dma_buf_attachment *attach); 122 void (*unpin)(struct dma_buf_attachment *attach); 490 void (*move_notify)(struct dma_buf_attachment *attach); 597 dma_buf_attachment_is_dynamic(struct dma_buf_attachment *attach) in dma_buf_attachment_is_dynamic() argument 599 return !!attach->importer_ops; in dma_buf_attachment_is_dynamic() 609 struct dma_buf_attachment *attach); 610 int dma_buf_pin(struct dma_buf_attachment *attach); 611 void dma_buf_unpin(struct dma_buf_attachment *attach);
|
/linux/drivers/gpu/drm/ |
A D | drm_prime.c | 596 struct dma_buf_attachment *attach) in drm_gem_map_detach() argument 789 .attach = drm_gem_map_attach, 913 struct dma_buf_attachment *attach; in drm_gem_prime_import_dev() local 934 if (IS_ERR(attach)) in drm_gem_prime_import_dev() 935 return ERR_CAST(attach); in drm_gem_prime_import_dev() 951 obj->import_attach = attach; in drm_gem_prime_import_dev() 959 dma_buf_detach(dma_buf, attach); in drm_gem_prime_import_dev() 1050 struct dma_buf_attachment *attach; in drm_prime_gem_destroy() local 1053 attach = obj->import_attach; in drm_prime_gem_destroy() 1056 dma_buf = attach->dmabuf; in drm_prime_gem_destroy() [all …]
|
A D | drm_gem_cma_helper.c | 444 struct dma_buf_attachment *attach, in drm_gem_cma_prime_import_sg_table() argument 450 if (drm_prime_get_contiguous_size(sgt) < attach->dmabuf->size) in drm_gem_cma_prime_import_sg_table() 454 cma_obj = __drm_gem_cma_create(dev, attach->dmabuf->size, true); in drm_gem_cma_prime_import_sg_table() 461 DRM_DEBUG_PRIME("dma_addr = %pad, size = %zu\n", &cma_obj->paddr, attach->dmabuf->size); in drm_gem_cma_prime_import_sg_table() 560 struct dma_buf_attachment *attach, in drm_gem_cma_prime_import_sg_table_vmap() argument 568 ret = dma_buf_vmap(attach->dmabuf, &map); in drm_gem_cma_prime_import_sg_table_vmap() 574 obj = drm_gem_cma_prime_import_sg_table(dev, attach, sgt); in drm_gem_cma_prime_import_sg_table_vmap() 576 dma_buf_vunmap(attach->dmabuf, &map); in drm_gem_cma_prime_import_sg_table_vmap()
|
/linux/drivers/gpu/drm/omapdrm/ |
A D | omap_gem_dmabuf.c | 131 struct dma_buf_attachment *attach; in omap_gem_prime_import() local 148 attach = dma_buf_attach(dma_buf, dev->dev); in omap_gem_prime_import() 149 if (IS_ERR(attach)) in omap_gem_prime_import() 150 return ERR_CAST(attach); in omap_gem_prime_import() 154 sgt = dma_buf_map_attachment(attach, DMA_TO_DEVICE); in omap_gem_prime_import() 166 obj->import_attach = attach; in omap_gem_prime_import() 171 dma_buf_unmap_attachment(attach, sgt, DMA_TO_DEVICE); in omap_gem_prime_import() 173 dma_buf_detach(dma_buf, attach); in omap_gem_prime_import()
|
/linux/drivers/gpu/drm/vmwgfx/ |
A D | vmwgfx_prime.c | 43 struct dma_buf_attachment *attach) in vmw_prime_map_attach() argument 49 struct dma_buf_attachment *attach) in vmw_prime_map_detach() argument 53 static struct sg_table *vmw_prime_map_dma_buf(struct dma_buf_attachment *attach, in vmw_prime_map_dma_buf() argument 59 static void vmw_prime_unmap_dma_buf(struct dma_buf_attachment *attach, in vmw_prime_unmap_dma_buf() argument 66 .attach = vmw_prime_map_attach,
|
/linux/tools/bpf/bpftool/Documentation/ |
A D | bpftool-cgroup.rst | 19 { **show** | **list** | **tree** | **attach** | **detach** | **help** } 26 | **bpftool** **cgroup attach** *CGROUP* *ATTACH_TYPE* *PROG* [*ATTACH_FLAGS*] 43 Output will start with program ID followed by attach type, 44 attach flags and program name. 57 program ID, attach type, attach flags and program name. 63 **bpftool cgroup attach** *CGROUP* *ATTACH_TYPE* *PROG* [*ATTACH_FLAGS*] 64 Attach program *PROG* to the cgroup *CGROUP* with attach type 74 no attach flags or the **override** flag. Attaching another 75 program will release old program and attach the new one. 114 Detach *PROG* from the cgroup *CGROUP* and attach type [all …]
|
A D | bpftool-net.rst | 18 { **show** | **list** | **attach** | **detach** | **help** } 24 | **bpftool** **net attach** *ATTACH_TYPE* *PROG* **dev** *NAME* [ **overwrite** ] 55 **bpftool** **net attach** *ATTACH_TYPE* *PROG* **dev** *NAME* [ **overwrite** ] 70 *ATTACH_TYPE* previously used for attach must be specified. 149 | **# bpftool net attach xdpdrv id 16 dev enp6s0np0** 158 | **# bpftool net attach xdpdrv id 16 dev enp6s0np0** 159 | **# bpftool net attach xdpdrv id 20 dev enp6s0np0 overwrite** 168 | **# bpftool net attach xdpdrv id 16 dev enp6s0np0**
|
/linux/drivers/nvdimm/ |
A D | claim.c | 44 bool __nd_attach_ndns(struct device *dev, struct nd_namespace_common *attach, in __nd_attach_ndns() argument 47 struct nvdimm_bus *nvdimm_bus = walk_to_nvdimm_bus(&attach->dev); in __nd_attach_ndns() 49 if (attach->claim) in __nd_attach_ndns() 53 attach->claim = dev; in __nd_attach_ndns() 54 *_ndns = attach; in __nd_attach_ndns() 55 get_device(&attach->dev); in __nd_attach_ndns() 59 bool nd_attach_ndns(struct device *dev, struct nd_namespace_common *attach, in nd_attach_ndns() argument 64 nvdimm_bus_lock(&attach->dev); in nd_attach_ndns() 65 claimed = __nd_attach_ndns(dev, attach, _ndns); in nd_attach_ndns() 66 nvdimm_bus_unlock(&attach->dev); in nd_attach_ndns()
|
/linux/drivers/gpu/drm/armada/ |
A D | armada_gem.c | 389 struct drm_gem_object *obj = attach->dmabuf->priv; in armada_gem_prime_map_dma_buf() 419 if (dma_map_sgtable(attach->dev, sgt, dir, 0)) in armada_gem_prime_map_dma_buf() 428 if (dma_map_sgtable(attach->dev, sgt, dir, 0)) in armada_gem_prime_map_dma_buf() 455 struct drm_gem_object *obj = attach->dmabuf->priv; in armada_gem_prime_unmap_dma_buf() 460 dma_unmap_sgtable(attach->dev, sgt, dir, 0); in armada_gem_prime_unmap_dma_buf() 502 struct dma_buf_attachment *attach; in armada_gem_prime_import() local 517 attach = dma_buf_attach(buf, dev->dev); in armada_gem_prime_import() 518 if (IS_ERR(attach)) in armada_gem_prime_import() 519 return ERR_CAST(attach); in armada_gem_prime_import() 523 dma_buf_detach(buf, attach); in armada_gem_prime_import() [all …]
|
/linux/Documentation/bpf/ |
A D | map_cgroup_storage.rst | 10 attach to cgroups; the programs are made available by the same Kconfig. The 34 ``attach_type`` is the the program's attach type. 37 When this key type is used, then all attach types of the particular cgroup and 39 ``struct bpf_cgroup_storage_key``, then programs of different attach types 133 multiple attach types, and each attach creates a fresh zeroed storage. The 145 does not already contain an entry for the cgroup and attach type pair, or else 146 the old storage is reused for the new attachment. If the map is attach type 147 shared, then attach type is simply ignored during comparison. Storage is freed 158 In all versions, userspace may use the the attach parameters of cgroup and 161 attach type shared storages, only the first value in the struct, cgroup inode [all …]
|
/linux/drivers/gpu/drm/i915/gem/ |
A D | i915_gem_dmabuf.c | 169 struct dma_buf_attachment *attach) in i915_gem_dmabuf_attach() argument 198 struct dma_buf_attachment *attach) in i915_gem_dmabuf_detach() argument 206 .attach = i915_gem_dmabuf_attach, 278 struct dma_buf_attachment *attach; in i915_gem_prime_import() local 300 attach = dma_buf_attach(dma_buf, dev->dev); in i915_gem_prime_import() 301 if (IS_ERR(attach)) in i915_gem_prime_import() 302 return ERR_CAST(attach); in i915_gem_prime_import() 315 obj->base.import_attach = attach; in i915_gem_prime_import() 331 dma_buf_detach(dma_buf, attach); in i915_gem_prime_import()
|
/linux/drivers/virtio/ |
A D | virtio_dma_buf.c | 28 exp_info->ops->attach != &virtio_dma_buf_attach || in virtio_dma_buf_export() 41 struct dma_buf_attachment *attach) in virtio_dma_buf_attach() argument 49 ret = ops->device_attach(dma_buf, attach); in virtio_dma_buf_attach() 63 return dma_buf->ops->attach == &virtio_dma_buf_attach; in is_virtio_dma_buf()
|
/linux/drivers/gpu/drm/tegra/ |
A D | gem.c | 408 struct dma_buf_attachment *attach; in tegra_bo_import() local 416 attach = dma_buf_attach(buf, drm->dev); in tegra_bo_import() 417 if (IS_ERR(attach)) { in tegra_bo_import() 418 err = PTR_ERR(attach); in tegra_bo_import() 424 bo->sgt = dma_buf_map_attachment(attach, DMA_TO_DEVICE); in tegra_bo_import() 436 bo->gem.import_attach = attach; in tegra_bo_import() 444 dma_buf_detach(buf, attach); in tegra_bo_import() 567 struct drm_gem_object *gem = attach->dmabuf->priv; in tegra_gem_prime_map_dma_buf() 585 if (dma_map_sgtable(attach->dev, sgt, dir, 0)) in tegra_gem_prime_map_dma_buf() 600 struct drm_gem_object *gem = attach->dmabuf->priv; in tegra_gem_prime_unmap_dma_buf() [all …]
|
/linux/include/drm/ |
A D | drm_prime.h | 78 struct dma_buf_attachment *attach); 80 struct dma_buf_attachment *attach); 81 struct sg_table *drm_gem_map_dma_buf(struct dma_buf_attachment *attach, 83 void drm_gem_unmap_dma_buf(struct dma_buf_attachment *attach,
|
/linux/samples/bpf/ |
A D | xdp_fwd_user.c | 87 int attach = 1; in main() local 93 attach = 0; in main() 118 if (attach) { in main() 160 if (!attach) { in main()
|
A D | tcp_bpf.readme | 2 programs. These programs attach to a cgroupv2. The following commands create 3 a cgroupv2 and attach a bash shell to the group. 12 (attach) one of the tcp_*_kern.o programs: 15 bpftool cgroup attach /tmp/cgroupv2/foo sock_ops pinned /sys/fs/bpf/tcp_prog
|
/linux/tools/testing/selftests/bpf/ |
A D | flow_dissector_load.c | 64 bool attach = false; in parse_opts() local 73 attach = true; in parse_opts() 76 if (attach) in parse_opts()
|