| /linux/drivers/gpu/drm/virtio/ |
| H A D | virtgpu_prime.c | 49 virtgpu_gem_map_dma_buf(struct dma_buf_attachment *attach, in virtgpu_gem_map_dma_buf() argument 52 struct drm_gem_object *obj = attach->dmabuf->priv; in virtgpu_gem_map_dma_buf() 56 return virtio_gpu_vram_map_dma_buf(bo, attach->dev, dir); in virtgpu_gem_map_dma_buf() 58 return drm_gem_map_dma_buf(attach, dir); in virtgpu_gem_map_dma_buf() 61 static void virtgpu_gem_unmap_dma_buf(struct dma_buf_attachment *attach, in virtgpu_gem_unmap_dma_buf() argument 65 struct drm_gem_object *obj = attach->dmabuf->priv; in virtgpu_gem_unmap_dma_buf() 69 virtio_gpu_vram_unmap_dma_buf(attach->dev, sgt, dir); in virtgpu_gem_unmap_dma_buf() 73 drm_gem_unmap_dma_buf(attach, sgt, dir); in virtgpu_gem_unmap_dma_buf() 78 .attach = virtio_dma_buf_attach, 149 struct dma_buf_attachment *attach) in virtgpu_dma_buf_import_sgt() argument [all …]
|
| /linux/drivers/gpu/drm/xe/ |
| H A 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 dma_buf *dmabuf = attach->dmabuf; in xe_dma_buf_pin() [all …]
|
| /linux/drivers/gpu/drm/amd/amdgpu/ |
| H A D | amdgpu_dma_buf.c | 52 * @attach: attachment 58 static struct amdgpu_device *dma_buf_attach_adev(struct dma_buf_attachment *attach) in dma_buf_attach_adev() argument 60 if (attach->importer_ops == &amdgpu_dma_buf_attach_ops) { in dma_buf_attach_adev() 61 struct drm_gem_object *obj = attach->importer_priv; in dma_buf_attach_adev() 71 * amdgpu_dma_buf_attach - &dma_buf_ops.attach implementation 73 * @dmabuf: DMA-buf where we attach to 74 * @attach: attachment to add 79 struct dma_buf_attachment *attach) in amdgpu_dma_buf_attach() argument 81 struct amdgpu_device *attach_adev = dma_buf_attach_adev(attach); in amdgpu_dma_buf_attach() 97 attach->peer2peer = false; in amdgpu_dma_buf_attach() [all …]
|
| /linux/drivers/dma-buf/ |
| H A D | dma-buf.c | 910 dma_buf_attachment_is_dynamic(struct dma_buf_attachment *attach) in dma_buf_attachment_is_dynamic() argument 912 return !!attach->importer_ops; in dma_buf_attachment_is_dynamic() 916 dma_buf_pin_on_map(struct dma_buf_attachment *attach) in dma_buf_pin_on_map() argument 918 return attach->dmabuf->ops->pin && in dma_buf_pin_on_map() 919 (!dma_buf_attachment_is_dynamic(attach) || in dma_buf_pin_on_map() 964 * - &dma_buf_ops.attach() 989 * @dmabuf: [in] buffer to attach device to. 997 * Optionally this calls &dma_buf_ops.attach to allow device-specific attach 1014 struct dma_buf_attachment *attach; in dma_buf_dynamic_attach() local 1023 attach = kzalloc_obj(*attach); in dma_buf_dynamic_attach() [all …]
|
| H A D | dma-buf-mapping.c | 73 * @attach: [in] attachment whose scatterlist is to be returned 92 struct sg_table *dma_buf_phys_vec_to_sgt(struct dma_buf_attachment *attach, in dma_buf_phys_vec_to_sgt() argument 105 dma_resv_assert_held(attach->dmabuf->resv); in dma_buf_phys_vec_to_sgt() 107 if (WARN_ON(!attach || !attach->dmabuf || !provider)) in dma_buf_phys_vec_to_sgt() 115 switch (pci_p2pdma_map_type(provider, attach->dev)) { in dma_buf_phys_vec_to_sgt() 128 dma_iova_try_alloc(attach->dev, dma->state, 0, size); in dma_buf_phys_vec_to_sgt() 147 ret = dma_iova_link(attach->dev, dma->state, in dma_buf_phys_vec_to_sgt() 156 addr = dma_map_phys(attach->dev, phys_vec[i].paddr, in dma_buf_phys_vec_to_sgt() 159 ret = dma_mapping_error(attach->dev, addr); in dma_buf_phys_vec_to_sgt() 170 ret = dma_iova_sync(attach->dev, dma->state, 0, mapped_len); in dma_buf_phys_vec_to_sgt() [all …]
|
| /linux/drivers/infiniband/core/ |
| H A 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() 155 umem_dmabuf->attach = dma_buf_dynamic_attach( in ib_umem_dmabuf_get_with_dma_device() 160 if (IS_ERR(umem_dmabuf->attach)) { in ib_umem_dmabuf_get_with_dma_device() 161 ret = ERR_CAST(umem_dmabuf->attach); in ib_umem_dmabuf_get_with_dma_device() 185 ib_umem_dmabuf_unsupported_move_notify(struct dma_buf_attachment *attach) in ib_umem_dmabuf_unsupported_move_notify() argument 187 struct ib_umem_dmabuf *umem_dmabuf = attach->importer_priv; in ib_umem_dmabuf_unsupported_move_notify() [all …]
|
| /linux/tools/testing/selftests/bpf/prog_tests/ |
| H A D | cgroup_getset_retval.c | 30 /* Attach setsockopt that sets EUNATCH, assert that in test_setsockopt_set() 35 if (!ASSERT_OK_PTR(link_set_eunatch, "cg-attach-set_eunatch")) in test_setsockopt_set() 66 /* Attach setsockopt that sets EUNATCH, and one that gets the in test_setsockopt_set_and_get() 71 if (!ASSERT_OK_PTR(link_set_eunatch, "cg-attach-set_eunatch")) in test_setsockopt_set_and_get() 75 if (!ASSERT_OK_PTR(link_get_retval, "cg-attach-get_retval")) in test_setsockopt_set_and_get() 109 /* Attach setsockopt that gets the previously set errno. in test_setsockopt_default_zero() 114 if (!ASSERT_OK_PTR(link_get_retval, "cg-attach-get_retval")) in test_setsockopt_default_zero() 145 /* Attach setsockopt that gets the previously set errno, and then in test_setsockopt_default_zero_and_set() 151 if (!ASSERT_OK_PTR(link_get_retval, "cg-attach-get_retval")) in test_setsockopt_default_zero_and_set() 155 if (!ASSERT_OK_PTR(link_set_eunatch, "cg-attach-set_eunatch")) in test_setsockopt_default_zero_and_set() [all …]
|
| H A D | cg_storage_multi.c | 102 /* Attach to parent cgroup, trigger packet from child. in test_egress_only() 109 if (!ASSERT_OK_PTR(parent_link, "parent-cg-attach")) in test_egress_only() 126 /* Attach to parent and child cgroup, trigger packet from child. in test_egress_only() 132 if (!ASSERT_OK_PTR(child_link, "child-cg-attach")) in test_egress_only() 172 /* Attach to parent cgroup, trigger packet from child. in test_isolated() 179 if (!ASSERT_OK_PTR(parent_egress1_link, "parent-egress1-cg-attach")) in test_isolated() 183 if (!ASSERT_OK_PTR(parent_egress2_link, "parent-egress2-cg-attach")) in test_isolated() 187 if (!ASSERT_OK_PTR(parent_ingress_link, "parent-ingress-cg-attach")) in test_isolated() 214 /* Attach to parent and child cgroup, trigger packet from child. in test_isolated() 221 if (!ASSERT_OK_PTR(child_egress1_link, "child-egress1-cg-attach")) in test_isolated() [all …]
|
| H A D | cgroup_attach_override.c | 48 "attach prog to %s failed, errno=%d\n", FOO, errno)) in serial_test_cgroup_attach_override() 66 "attach prog to %s failed, errno=%d\n", BAR, errno)) in serial_test_cgroup_attach_override() 84 "attach prog to %s failed, errno=%d\n", BAR, errno)) in serial_test_cgroup_attach_override() 98 "attach prog to %s failed, errno=%d\n", BAR, errno)) in serial_test_cgroup_attach_override() 103 "attach prog to %s unexpectedly succeeded\n", BAR)) in serial_test_cgroup_attach_override() 118 "attach prog to %s failed, errno=%d\n", FOO, errno)) in serial_test_cgroup_attach_override() 123 "attach prog to %s unexpectedly succeeded\n", BAR)) in serial_test_cgroup_attach_override() 129 "attach prog to %s unexpectedly succeeded\n", BAR)) in serial_test_cgroup_attach_override() 135 "attach prog to %s unexpectedly succeeded\n", FOO)) in serial_test_cgroup_attach_override() 140 "attach prog to %s failed, errno=%d\n", FOO, errno)) in serial_test_cgroup_attach_override()
|
| H A D | trace_ext.c | 33 /* open/load/attach test_pkt_md_access */ in test_trace_ext() 39 if (CHECK(err, "setup", "classifier/test_pkt_md_access attach failed: %d\n", err)) in test_trace_ext() 50 /* set extension's attach target - test_pkt_md_access */ in test_trace_ext() 54 /* load/attach extension */ in test_trace_ext() 63 if (CHECK(err, "setup", "freplace/test_pkt_md_access attach failed: %d\n", err)) in test_trace_ext() 74 /* set tracing's attach target - fentry */ in test_trace_ext() 78 /* set tracing's attach target - fexit */ in test_trace_ext() 82 /* load/attach tracing */ in test_trace_ext() 91 if (!ASSERT_OK(err, "tracing/test_pkt_md_access_new attach")) in test_trace_ext()
|
| H A D | recursive_attach.c | 13 * - Recursive loading of tracing progs, without attaching (attach = false, 19 * - Recursive attach of tracing progs (attach = true, detach = false). The 23 * attach fentry1 -> target 26 * - Recursive attach and detach of tracing progs (attach = true, detach = 32 * attach fentry1 -> target 36 static void test_recursive_fentry_chain(bool attach, bool detach) in test_recursive_fentry_chain() argument 69 /* The first attach should succeed, the second fail */ in test_recursive_fentry_chain() 74 if (attach) { in test_recursive_fentry_chain() 101 if (test__start_subtest("attach")) in test_recursive_fentry()
|
| /linux/drivers/media/common/videobuf2/ |
| H A D | videobuf2-vmalloc.c | 215 struct vb2_vmalloc_attachment *attach; in vb2_vmalloc_dmabuf_ops_attach() local 224 attach = kzalloc_obj(*attach); 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 …]
|
| H A D | videobuf2-dma-sg.c | 371 struct vb2_dma_sg_attachment *attach; in vb2_dma_sg_dmabuf_ops_attach() local 378 attach = kzalloc_obj(*attach); 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 …]
|
| /linux/drivers/xen/ |
| H A D | gntdev-dmabuf.c | 48 struct dma_buf_attachment *attach; member 221 struct dma_buf_attachment *attach) in dmabuf_exp_ops_attach() argument 230 attach->priv = gntdev_dmabuf_attach; in dmabuf_exp_ops_attach() 235 struct dma_buf_attachment *attach) in dmabuf_exp_ops_detach() argument 237 struct gntdev_dmabuf_attachment *gntdev_dmabuf_attach = attach->priv; in dmabuf_exp_ops_detach() 244 dma_unmap_sgtable(attach->dev, sgt, in dmabuf_exp_ops_detach() 252 attach->priv = NULL; in dmabuf_exp_ops_detach() 257 dmabuf_exp_ops_map_dma_buf(struct dma_buf_attachment *attach, in dmabuf_exp_ops_map_dma_buf() argument 260 struct gntdev_dmabuf_attachment *gntdev_dmabuf_attach = attach->priv; in dmabuf_exp_ops_map_dma_buf() 261 struct gntdev_dmabuf *gntdev_dmabuf = attach->dmabuf->priv; in dmabuf_exp_ops_map_dma_buf() [all …]
|
| /linux/Documentation/bpf/ |
| H 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 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/drivers/iommu/iommufd/ |
| H A D | device.c | 355 struct iommufd_attach *attach; in iommufd_group_device_num() local 362 attach = xa_load(&igroup->pasid_attach, pasid); in iommufd_group_device_num() 363 if (attach) in iommufd_group_device_num() 364 xa_for_each(&attach->device_array, index, idev) in iommufd_group_device_num() 438 /* The device attach/detach/replace helpers for attach_handle */ 443 struct iommufd_attach *attach; in iommufd_device_is_attached() local 445 attach = xa_load(&idev->igroup->pasid_attach, pasid); in iommufd_device_is_attached() 446 return xa_load(&attach->device_array, idev->obj.id); in iommufd_device_is_attached() 465 struct iommufd_attach *attach; in iommufd_hwpt_pasid_compat() local 470 attach = xa_load(&igroup->pasid_attach, IOMMU_NO_PASID); in iommufd_hwpt_pasid_compat() [all …]
|
| /linux/drivers/vfio/ |
| H A D | device_cdev.c | 197 struct vfio_device_attach_iommufd_pt attach; in vfio_df_ioctl_attach_pt() local 204 if (copy_from_user(&attach, arg, minsz)) in vfio_df_ioctl_attach_pt() 207 if (attach.argsz < minsz) in vfio_df_ioctl_attach_pt() 210 if (attach.flags & ~VFIO_DEVICE_ATTACH_PASID) in vfio_df_ioctl_attach_pt() 213 if (attach.flags & VFIO_DEVICE_ATTACH_PASID) { in vfio_df_ioctl_attach_pt() 220 if (attach.argsz < xend) in vfio_df_ioctl_attach_pt() 223 if (copy_from_user((void *)&attach + minsz, in vfio_df_ioctl_attach_pt() 229 if (attach.flags & VFIO_DEVICE_ATTACH_PASID) in vfio_df_ioctl_attach_pt() 231 attach.pasid, in vfio_df_ioctl_attach_pt() 232 &attach.pt_id); in vfio_df_ioctl_attach_pt() [all …]
|
| /linux/drivers/gpu/drm/tegra/ |
| H A 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 473 attach = dma_buf_attach(buf, drm->dev); in tegra_bo_import() [all …]
|
| /linux/tools/usb/usbip/doc/ |
| H A D | usbip.8 | 29 Connect to PORT on remote host (used for attach and list --remote). 47 \fBattach\fR \-\-remote=<\fIhost\fR> \-\-busid=<\fIbus_id\fR> 49 Attach a remote USB device. 53 \fBattach\fR \-\-remote=<\fIhost\fR> \-\-device=<\fIdev_id\fR> 55 Attach a remote USB gadget. 111 client:# usbip attach --remote=server --busid=1-2 127 client:# usbip attach --remote=server --device=usbip-vudc.0
|
| /linux/tools/bpf/bpftool/Documentation/ |
| H A 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**
|
| /linux/drivers/gpu/drm/i915/gem/ |
| H A D | i915_gem_dmabuf.c | 27 static struct sg_table *i915_gem_map_dma_buf(struct dma_buf_attachment *attach, in i915_gem_map_dma_buf() argument 30 struct drm_i915_gem_object *obj = dma_buf_to_obj(attach->dmabuf); in i915_gem_map_dma_buf() 55 ret = dma_map_sgtable(attach->dev, sgt, dir, DMA_ATTR_SKIP_CPU_SYNC); in i915_gem_map_dma_buf() 167 struct dma_buf_attachment *attach) in i915_gem_dmabuf_attach() argument 196 struct dma_buf_attachment *attach) in i915_gem_dmabuf_detach() argument 204 .attach = i915_gem_dmabuf_attach, 285 struct dma_buf_attachment *attach; in i915_gem_prime_import() local 306 /* need to attach */ in i915_gem_prime_import() 307 attach = dma_buf_attach(dma_buf, dev->dev); in i915_gem_prime_import() 308 if (IS_ERR(attach)) in i915_gem_prime_import() [all …]
|
| /linux/drivers/media/usb/cx231xx/ |
| H A D | cx231xx-dvb.c | 381 dev_err(dev->dev, "%s/2: dvb frontend not attached. Can't attach xc5000\n", 388 dev_err(dev->dev, "%s/2: xc5000 attach failed\n", dev->name); 657 "Failed to attach s5h1432 front end\n"); in dvb_init() 682 "Failed to attach s5h1411 front end\n"); in dvb_init() 705 "Failed to attach s5h1432 front end\n"); in dvb_init() 729 "Failed to attach s5h1411 front end\n"); in dvb_init() 756 "Failed to attach LG3305 front end\n"); in dvb_init() 773 /* attach demod */ in dvb_init() 778 /* perform probe/init/attach */ in dvb_init() 805 /* attach demod */ in dvb_init() [all …]
|
| /linux/tools/perf/tests/ |
| H A D | event-times.c | 161 static int test_times(int (attach)(struct evlist *), in test_times() 186 err = attach(evlist); in test_times() 193 TEST_ASSERT_VAL("failed to attach", !err); in test_times() 222 #define _T(attach, detach) \ in test__event_times() argument 223 err = test_times(attach, detach); \ in test__event_times() 227 /* attach on newly spawned process after exec */ in test__event_times() 229 /* attach on current process as enabled */ in test__event_times() 231 /* attach on current process as disabled */ in test__event_times() 233 /* attach on cpu as disabled */ in test__event_times() 235 /* attach on cpu as enabled */ in test__event_times()
|
| /linux/drivers/virtio/ |
| H A D | virtio_dma_buf.c | 28 exp_info->ops->attach != &virtio_dma_buf_attach || in virtio_dma_buf_export() 38 * virtio_dma_buf_attach - mandatory attach callback for virtio dma-bufs 39 * @dma_buf: [in] buffer to attach 40 * @attach: [in] attachment structure 43 struct dma_buf_attachment *attach) in virtio_dma_buf_attach() argument 51 ret = ops->device_attach(dma_buf, attach); in virtio_dma_buf_attach() 65 return dma_buf->ops->attach == &virtio_dma_buf_attach; in is_virtio_dma_buf()
|
| /linux/drivers/gpu/drm/ |
| H A D | drm_prime.c | 563 * Optional pinning of buffers is handled at dma-buf attach and detach time in 591 * drm_gem_map_attach - dma_buf attach implementation for GEM 592 * @dma_buf: buffer to attach device to 593 * @attach: buffer attachment data 596 * used as the &dma_buf_ops.attach callback. Must be used together with 602 struct dma_buf_attachment *attach) in drm_gem_map_attach() argument 631 * @attach: attachment to be detached 638 struct dma_buf_attachment *attach) in drm_gem_map_detach() argument 656 * @attach: attachment whose scatterlist is to be returned 666 struct sg_table *drm_gem_map_dma_buf(struct dma_buf_attachment *attach, in drm_gem_map_dma_buf() argument [all …]
|