/linux-6.12.1/drivers/dma-buf/ |
D | dma-buf.c | 791 static struct sg_table * __map_dma_buf(struct dma_buf_attachment *attach, in __map_dma_buf() argument 797 sg_table = attach->dmabuf->ops->map_dma_buf(attach, direction); in __map_dma_buf() 801 if (!dma_buf_attachment_is_dynamic(attach)) { in __map_dma_buf() 802 ret = dma_resv_wait_timeout(attach->dmabuf->resv, in __map_dma_buf() 806 attach->dmabuf->ops->unmap_dma_buf(attach, sg_table, in __map_dma_buf() 907 struct dma_buf_attachment *attach; in dma_buf_dynamic_attach() local 916 attach = kzalloc(sizeof(*attach), GFP_KERNEL); in dma_buf_dynamic_attach() 917 if (!attach) in dma_buf_dynamic_attach() 920 attach->dev = dev; in dma_buf_dynamic_attach() 921 attach->dmabuf = dmabuf; in dma_buf_dynamic_attach() [all …]
|
/linux-6.12.1/drivers/gpu/drm/xe/ |
D | xe_dma_buf.c | 26 struct dma_buf_attachment *attach) in xe_dma_buf_attach() argument 28 struct drm_gem_object *obj = attach->dmabuf->priv; in xe_dma_buf_attach() 30 if (attach->peer2peer && in xe_dma_buf_attach() 31 pci_p2pdma_distance(to_pci_dev(obj->dev->dev), attach->dev, false) < 0) in xe_dma_buf_attach() 32 attach->peer2peer = false; in xe_dma_buf_attach() 34 if (!attach->peer2peer && !xe_bo_can_migrate(gem_to_xe_bo(obj), XE_PL_TT)) in xe_dma_buf_attach() 42 struct dma_buf_attachment *attach) in xe_dma_buf_detach() argument 44 struct drm_gem_object *obj = attach->dmabuf->priv; in xe_dma_buf_detach() 49 static int xe_dma_buf_pin(struct dma_buf_attachment *attach) in xe_dma_buf_pin() argument 51 struct drm_gem_object *obj = attach->dmabuf->priv; in xe_dma_buf_pin() [all …]
|
/linux-6.12.1/drivers/gpu/drm/amd/amdgpu/ |
D | amdgpu_dma_buf.c | 54 struct dma_buf_attachment *attach) in amdgpu_dma_buf_attach() argument 60 if (pci_p2pdma_distance(adev->pdev, attach->dev, false) < 0) in amdgpu_dma_buf_attach() 61 attach->peer2peer = false; in amdgpu_dma_buf_attach() 73 static int amdgpu_dma_buf_pin(struct dma_buf_attachment *attach) in amdgpu_dma_buf_pin() argument 75 struct drm_gem_object *obj = attach->dmabuf->priv; in amdgpu_dma_buf_pin() 89 static void amdgpu_dma_buf_unpin(struct dma_buf_attachment *attach) in amdgpu_dma_buf_unpin() argument 91 struct drm_gem_object *obj = attach->dmabuf->priv; in amdgpu_dma_buf_unpin() 110 static struct sg_table *amdgpu_dma_buf_map(struct dma_buf_attachment *attach, in amdgpu_dma_buf_map() argument 113 struct dma_buf *dma_buf = attach->dmabuf; in amdgpu_dma_buf_map() 126 attach->peer2peer) { in amdgpu_dma_buf_map() [all …]
|
/linux-6.12.1/drivers/infiniband/core/ |
D | umem_dmabuf.c | 24 dma_resv_assert_held(umem_dmabuf->attach->dmabuf->resv); in ib_umem_dmabuf_map_pages() 32 sgt = dma_buf_map_attachment(umem_dmabuf->attach, in ib_umem_dmabuf_map_pages() 75 ret = dma_resv_wait_timeout(umem_dmabuf->attach->dmabuf->resv, in ib_umem_dmabuf_map_pages() 88 dma_resv_assert_held(umem_dmabuf->attach->dmabuf->resv); in ib_umem_dmabuf_unmap_pages() 109 dma_buf_unmap_attachment(umem_dmabuf->attach, umem_dmabuf->sgt, in ib_umem_dmabuf_unmap_pages() 158 umem_dmabuf->attach = dma_buf_dynamic_attach( in ib_umem_dmabuf_get_with_dma_device() 163 if (IS_ERR(umem_dmabuf->attach)) { in ib_umem_dmabuf_get_with_dma_device() 164 ret = ERR_CAST(umem_dmabuf->attach); in ib_umem_dmabuf_get_with_dma_device() 188 ib_umem_dmabuf_unsupported_move_notify(struct dma_buf_attachment *attach) in ib_umem_dmabuf_unsupported_move_notify() argument 190 struct ib_umem_dmabuf *umem_dmabuf = attach->importer_priv; in ib_umem_dmabuf_unsupported_move_notify() [all …]
|
/linux-6.12.1/drivers/media/common/videobuf2/ |
D | videobuf2-vmalloc.c | 215 struct vb2_vmalloc_attachment *attach; in vb2_vmalloc_dmabuf_ops_attach() local 224 attach = kzalloc(sizeof(*attach), GFP_KERNEL); in vb2_vmalloc_dmabuf_ops_attach() 225 if (!attach) in vb2_vmalloc_dmabuf_ops_attach() 228 sgt = &attach->sgt; in vb2_vmalloc_dmabuf_ops_attach() 231 kfree(attach); in vb2_vmalloc_dmabuf_ops_attach() 239 kfree(attach); in vb2_vmalloc_dmabuf_ops_attach() 246 attach->dma_dir = DMA_NONE; in vb2_vmalloc_dmabuf_ops_attach() 247 dbuf_attach->priv = attach; in vb2_vmalloc_dmabuf_ops_attach() 254 struct vb2_vmalloc_attachment *attach = db_attach->priv; in vb2_vmalloc_dmabuf_ops_detach() local 257 if (!attach) in vb2_vmalloc_dmabuf_ops_detach() [all …]
|
D | videobuf2-dma-sg.c | 371 struct vb2_dma_sg_attachment *attach; in vb2_dma_sg_dmabuf_ops_attach() local 378 attach = kzalloc(sizeof(*attach), GFP_KERNEL); in vb2_dma_sg_dmabuf_ops_attach() 379 if (!attach) in vb2_dma_sg_dmabuf_ops_attach() 382 sgt = &attach->sgt; in vb2_dma_sg_dmabuf_ops_attach() 388 kfree(attach); in vb2_dma_sg_dmabuf_ops_attach() 400 attach->dma_dir = DMA_NONE; in vb2_dma_sg_dmabuf_ops_attach() 401 dbuf_attach->priv = attach; in vb2_dma_sg_dmabuf_ops_attach() 409 struct vb2_dma_sg_attachment *attach = db_attach->priv; in vb2_dma_sg_dmabuf_ops_detach() local 412 if (!attach) in vb2_dma_sg_dmabuf_ops_detach() 415 sgt = &attach->sgt; in vb2_dma_sg_dmabuf_ops_detach() [all …]
|
D | videobuf2-dma-contig.c | 320 struct vb2_dc_attachment *attach; in vb2_dc_dmabuf_ops_attach() local 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() 358 struct vb2_dc_attachment *attach = db_attach->priv; in vb2_dc_dmabuf_ops_detach() local 361 if (!attach) in vb2_dc_dmabuf_ops_detach() 364 sgt = &attach->sgt; in vb2_dc_dmabuf_ops_detach() [all …]
|
/linux-6.12.1/include/linux/ |
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); 488 void (*move_notify)(struct dma_buf_attachment *attach); 595 dma_buf_attachment_is_dynamic(struct dma_buf_attachment *attach) in dma_buf_attachment_is_dynamic() argument 597 return !!attach->importer_ops; in dma_buf_attachment_is_dynamic() 607 struct dma_buf_attachment *attach); 608 int dma_buf_pin(struct dma_buf_attachment *attach); 609 void dma_buf_unpin(struct dma_buf_attachment *attach); 627 dma_buf_map_attachment_unlocked(struct dma_buf_attachment *attach, [all …]
|
/linux-6.12.1/drivers/gpu/drm/virtio/ |
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, 166 struct drm_device *dev, struct dma_buf_attachment *attach, in virtgpu_gem_prime_import_sg_table() argument
|
/linux-6.12.1/drivers/xen/ |
D | gntdev-dmabuf.c | 48 struct dma_buf_attachment *attach; member 221 struct dma_buf_attachment *attach) in dmabuf_exp_ops_attach() argument 231 attach->priv = gntdev_dmabuf_attach; in dmabuf_exp_ops_attach() 236 struct dma_buf_attachment *attach) in dmabuf_exp_ops_detach() argument 238 struct gntdev_dmabuf_attachment *gntdev_dmabuf_attach = attach->priv; in dmabuf_exp_ops_detach() 245 dma_unmap_sgtable(attach->dev, sgt, in dmabuf_exp_ops_detach() 253 attach->priv = NULL; in dmabuf_exp_ops_detach() 258 dmabuf_exp_ops_map_dma_buf(struct dma_buf_attachment *attach, in dmabuf_exp_ops_map_dma_buf() argument 261 struct gntdev_dmabuf_attachment *gntdev_dmabuf_attach = attach->priv; in dmabuf_exp_ops_map_dma_buf() 262 struct gntdev_dmabuf *gntdev_dmabuf = attach->dmabuf->priv; in dmabuf_exp_ops_map_dma_buf() [all …]
|
/linux-6.12.1/drivers/gpu/drm/omapdrm/ |
D | omap_gem_dmabuf.c | 100 struct dma_buf_attachment *attach; in omap_gem_prime_import() local 117 attach = dma_buf_attach(dma_buf, dev->dev); in omap_gem_prime_import() 118 if (IS_ERR(attach)) in omap_gem_prime_import() 119 return ERR_CAST(attach); in omap_gem_prime_import() 123 sgt = dma_buf_map_attachment_unlocked(attach, DMA_TO_DEVICE); in omap_gem_prime_import() 135 obj->import_attach = attach; in omap_gem_prime_import() 140 dma_buf_unmap_attachment_unlocked(attach, sgt, DMA_TO_DEVICE); in omap_gem_prime_import() 142 dma_buf_detach(dma_buf, attach); in omap_gem_prime_import()
|
/linux-6.12.1/drivers/gpu/drm/ |
D | drm_prime.c | 605 struct dma_buf_attachment *attach) in drm_gem_map_attach() argument 631 struct dma_buf_attachment *attach) in drm_gem_map_detach() argument 651 struct sg_table *drm_gem_map_dma_buf(struct dma_buf_attachment *attach, in drm_gem_map_dma_buf() argument 654 struct drm_gem_object *obj = attach->dmabuf->priv; in drm_gem_map_dma_buf() 668 ret = dma_map_sgtable(attach->dev, sgt, dir, in drm_gem_map_dma_buf() 688 void drm_gem_unmap_dma_buf(struct dma_buf_attachment *attach, in drm_gem_unmap_dma_buf() argument 695 dma_unmap_sgtable(attach->dev, sgt, dir, DMA_ATTR_SKIP_CPU_SYNC); in drm_gem_unmap_dma_buf() 814 .attach = drm_gem_map_attach, 938 struct dma_buf_attachment *attach; in drm_gem_prime_import_dev() local 958 attach = dma_buf_attach(dma_buf, attach_dev); in drm_gem_prime_import_dev() [all …]
|
/linux-6.12.1/drivers/gpu/drm/i915/gem/ |
D | i915_gem_dmabuf.c | 28 static struct sg_table *i915_gem_map_dma_buf(struct dma_buf_attachment *attach, in i915_gem_map_dma_buf() argument 31 struct drm_i915_gem_object *obj = dma_buf_to_obj(attach->dmabuf); in i915_gem_map_dma_buf() 56 ret = dma_map_sgtable(attach->dev, sgt, dir, DMA_ATTR_SKIP_CPU_SYNC); in i915_gem_map_dma_buf() 168 struct dma_buf_attachment *attach) in i915_gem_dmabuf_attach() argument 197 struct dma_buf_attachment *attach) in i915_gem_dmabuf_detach() argument 205 .attach = i915_gem_dmabuf_attach, 286 struct dma_buf_attachment *attach; in i915_gem_prime_import() local 308 attach = dma_buf_attach(dma_buf, dev->dev); in i915_gem_prime_import() 309 if (IS_ERR(attach)) in i915_gem_prime_import() 310 return ERR_CAST(attach); in i915_gem_prime_import() [all …]
|
/linux-6.12.1/drivers/gpu/drm/tegra/ |
D | gem.c | 82 map->attach = dma_buf_attach(buf, dev); in tegra_bo_pin() 83 if (IS_ERR(map->attach)) { in tegra_bo_pin() 84 err = PTR_ERR(map->attach); in tegra_bo_pin() 88 map->sgt = dma_buf_map_attachment_unlocked(map->attach, direction); in tegra_bo_pin() 90 dma_buf_detach(buf, map->attach); in tegra_bo_pin() 163 if (map->attach) { in tegra_bo_unpin() 164 dma_buf_unmap_attachment_unlocked(map->attach, map->sgt, in tegra_bo_unpin() 166 dma_buf_detach(map->attach->dmabuf, map->attach); in tegra_bo_unpin() 460 struct dma_buf_attachment *attach; in tegra_bo_import() local 468 attach = dma_buf_attach(buf, drm->dev); in tegra_bo_import() [all …]
|
/linux-6.12.1/Documentation/bpf/libbpf/ |
D | program_types.rst | 8 The table below lists the program types, their attach types where relevant and the ELF section 15 When ``extras`` are specified, they provide details of how to auto-attach the BPF program. The 216 .. [#fentry] The ``fentry`` attach format is ``fentry[.s]/<function>``. 217 .. [#kprobe] The ``kprobe`` attach format is ``kprobe/<function>[+<offset>]``. Valid 220 .. [#ksyscall] The ``ksyscall`` attach format is ``ksyscall/<syscall>``. 221 .. [#uprobe] The ``uprobe`` attach format is ``uprobe[.s]/<path>:<function>[+<offset>]``. 222 .. [#usdt] The ``usdt`` attach format is ``usdt/<path>:<provider>:<name>``. 223 .. [#kpmulti] The ``kprobe.multi`` attach format is ``kprobe.multi/<pattern>`` where ``pattern`` 227 .. [#rawtp] The ``raw_tp`` attach format is ``raw_tracepoint[.w]/<tracepoint>``. 228 .. [#tc_legacy] The ``tc``, ``classifier`` and ``action`` attach types are deprecated, use [all …]
|
/linux-6.12.1/drivers/gpu/drm/vmwgfx/ |
D | vmwgfx_prime.c | 45 struct dma_buf_attachment *attach) in vmw_prime_map_attach() argument 51 struct dma_buf_attachment *attach) in vmw_prime_map_detach() argument 55 static struct sg_table *vmw_prime_map_dma_buf(struct dma_buf_attachment *attach, in vmw_prime_map_dma_buf() argument 61 static void vmw_prime_unmap_dma_buf(struct dma_buf_attachment *attach, in vmw_prime_unmap_dma_buf() argument 68 .attach = vmw_prime_map_attach,
|
/linux-6.12.1/tools/bpf/bpftool/Documentation/ |
D | bpftool-cgroup.rst | 22 { **show** | **list** | **tree** | **attach** | **detach** | **help** } 29 | **bpftool** **cgroup attach** *CGROUP* *ATTACH_TYPE* *PROG* [*ATTACH_FLAGS*] 55 Output will start with program ID followed by attach type, attach flags and 67 with absolute cgroup path, followed by program ID, attach type, attach 74 bpftool cgroup attach *CGROUP* *ATTACH_TYPE* *PROG* [*ATTACH_FLAGS*] 75 Attach program *PROG* to the cgroup *CGROUP* with attach type *ATTACH_TYPE* 83 Only one program is allowed to be attached to a cgroup with no attach flags 85 program and attach the new one. 125 Detach *PROG* from the cgroup *CGROUP* and attach type *ATTACH_TYPE*. 143 | **# bpftool cgroup attach /sys/fs/cgroup/test.slice/ device id 1 allow_multi**
|
D | bpftool-net.rst | 21 *COMMANDS* := { **show** | **list** | **attach** | **detach** | **help** } 27 | **bpftool** **net attach** *ATTACH_TYPE* *PROG* **dev** *NAME* [ **overwrite** ] 61 bpftool net attach *ATTACH_TYPE* *PROG* dev *NAME* [ overwrite ] 78 for attach must be specified. Currently, only XDP-related modes are 157 | **# bpftool net attach xdpdrv id 16 dev enp6s0np0** 166 | **# bpftool net attach xdpdrv id 16 dev enp6s0np0** 167 | **# bpftool net attach xdpdrv id 20 dev enp6s0np0 overwrite** 176 | **# bpftool net attach xdpdrv id 16 dev enp6s0np0** 185 | **# bpftool net attach tcx_ingress name tc_prog dev lo** 195 | **# bpftool net attach tcx_ingress name tc_prog dev lo**
|
/linux-6.12.1/drivers/nvdimm/ |
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-6.12.1/drivers/virtio/ |
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-6.12.1/drivers/vfio/ |
D | device_cdev.c | 166 struct vfio_device_attach_iommufd_pt attach; in vfio_df_ioctl_attach_pt() local 172 if (copy_from_user(&attach, arg, minsz)) in vfio_df_ioctl_attach_pt() 175 if (attach.argsz < minsz || attach.flags) in vfio_df_ioctl_attach_pt() 179 ret = device->ops->attach_ioas(device, &attach.pt_id); in vfio_df_ioctl_attach_pt() 183 if (copy_to_user(&arg->pt_id, &attach.pt_id, sizeof(attach.pt_id))) { in vfio_df_ioctl_attach_pt()
|
/linux-6.12.1/drivers/iio/ |
D | industrialio-buffer.c | 53 struct dma_buf_attachment *attach; member 1562 struct dma_buf_attachment *attach = priv->attach; in iio_buffer_dmabuf_release() local 1564 struct dma_buf *dmabuf = attach->dmabuf; in iio_buffer_dmabuf_release() 1567 dma_buf_unmap_attachment(attach, priv->sgt, priv->dir); in iio_buffer_dmabuf_release() 1572 dma_buf_detach(attach->dmabuf, attach); in iio_buffer_dmabuf_release() 1577 static void iio_buffer_dmabuf_get(struct dma_buf_attachment *attach) in iio_buffer_dmabuf_get() argument 1579 struct iio_dmabuf_priv *priv = attach->importer_priv; in iio_buffer_dmabuf_get() 1584 static void iio_buffer_dmabuf_put(struct dma_buf_attachment *attach) in iio_buffer_dmabuf_put() argument 1586 struct iio_dmabuf_priv *priv = attach->importer_priv; in iio_buffer_dmabuf_put() 1605 iio_buffer_dmabuf_put(priv->attach); in iio_buffer_chrdev_release() [all …]
|
/linux-6.12.1/drivers/gpu/drm/armada/ |
D | armada_gem.c | 386 armada_gem_prime_map_dma_buf(struct dma_buf_attachment *attach, in armada_gem_prime_map_dma_buf() argument 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() 452 static void armada_gem_prime_unmap_dma_buf(struct dma_buf_attachment *attach, in armada_gem_prime_unmap_dma_buf() argument 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() [all …]
|
/linux-6.12.1/Documentation/bpf/ |
D | map_cgroup_storage.rst | 10 attach to cgroups; the programs are made available by the same Kconfig. The 34 ``attach_type`` is 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 attach parameters of cgroup and 159 attach type pair in ``struct bpf_cgroup_storage_key`` as the key to the BPF map [all …]
|
/linux-6.12.1/include/drm/ |
D | drm_prime.h | 81 struct dma_buf_attachment *attach); 83 struct dma_buf_attachment *attach); 84 struct sg_table *drm_gem_map_dma_buf(struct dma_buf_attachment *attach, 86 void drm_gem_unmap_dma_buf(struct dma_buf_attachment *attach,
|