From: "Christian König" <christian.koenig@amd.com>
To: Leon Romanovsky <leon@kernel.org>
Cc: "Sumit Semwal" <sumit.semwal@linaro.org>,
"Alex Deucher" <alexander.deucher@amd.com>,
"David Airlie" <airlied@gmail.com>,
"Simona Vetter" <simona@ffwll.ch>,
"Gerd Hoffmann" <kraxel@redhat.com>,
"Dmitry Osipenko" <dmitry.osipenko@collabora.com>,
"Gurchetan Singh" <gurchetansingh@chromium.org>,
"Chia-I Wu" <olvaffe@gmail.com>,
"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
"Maxime Ripard" <mripard@kernel.org>,
"Thomas Zimmermann" <tzimmermann@suse.de>,
"Lucas De Marchi" <lucas.demarchi@intel.com>,
"Thomas Hellström" <thomas.hellstrom@linux.intel.com>,
"Rodrigo Vivi" <rodrigo.vivi@intel.com>,
"Jason Gunthorpe" <jgg@ziepe.ca>,
"Kevin Tian" <kevin.tian@intel.com>,
"Joerg Roedel" <joro@8bytes.org>, "Will Deacon" <will@kernel.org>,
"Robin Murphy" <robin.murphy@arm.com>,
"Alex Williamson" <alex@shazbot.org>,
linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org,
linaro-mm-sig@lists.linaro.org, linux-kernel@vger.kernel.org,
amd-gfx@lists.freedesktop.org, virtualization@lists.linux.dev,
intel-xe@lists.freedesktop.org, linux-rdma@vger.kernel.org,
iommu@lists.linux.dev, kvm@vger.kernel.org
Subject: Re: [PATCH v2 1/4] dma-buf: Rename .move_notify() callback to a clearer identifier
Date: Mon, 19 Jan 2026 13:00:18 +0100 [thread overview]
Message-ID: <871628d8-14b6-4d38-b05e-a33822f8d71b@amd.com> (raw)
In-Reply-To: <20260119113809.GK13201@unreal>
On 1/19/26 12:38, Leon Romanovsky wrote:
> On Mon, Jan 19, 2026 at 11:22:27AM +0100, Christian König wrote:
>> On 1/18/26 13:08, Leon Romanovsky wrote:
>>> From: Leon Romanovsky <leonro@nvidia.com>
>>>
>>> Rename the .move_notify() callback to .invalidate_mappings() to make its
>>> purpose explicit and highlight that it is responsible for invalidating
>>> existing mappings.
>>>
>>> Suggested-by: Christian König <christian.koenig@amd.com>
>>> Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
>>
>> Reviewed-by: Christian König <christian.koenig@amd.com>
>
> Thanks,
>
> BTW, I didn't update the various xxx_move_notify() functions to use
> xxx_invalidate_mappings() names. Should those be converted as well?
No, those importer specific functions can keep their name.
More important is the config option. Haven't thought about that one.
Probably best if we either rename or completely remove that one, it was to keep the MOVE_NOTIFY functionality separate for initial testing but we have clearly supassed this long time ago.
Regards,
Christian.
>
>>
>>> ---
>>> drivers/dma-buf/dma-buf.c | 6 +++---
>>> drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c | 4 ++--
>>> drivers/gpu/drm/virtio/virtgpu_prime.c | 2 +-
>>> drivers/gpu/drm/xe/tests/xe_dma_buf.c | 6 +++---
>>> drivers/gpu/drm/xe/xe_dma_buf.c | 2 +-
>>> drivers/infiniband/core/umem_dmabuf.c | 4 ++--
>>> drivers/infiniband/hw/mlx5/mr.c | 2 +-
>>> drivers/iommu/iommufd/pages.c | 2 +-
>>> include/linux/dma-buf.h | 6 +++---
>>> 9 files changed, 17 insertions(+), 17 deletions(-)
>>>
>>> diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c
>>> index edaa9e4ee4ae..59cc647bf40e 100644
>>> --- a/drivers/dma-buf/dma-buf.c
>>> +++ b/drivers/dma-buf/dma-buf.c
>>> @@ -948,7 +948,7 @@ dma_buf_dynamic_attach(struct dma_buf *dmabuf, struct device *dev,
>>> if (WARN_ON(!dmabuf || !dev))
>>> return ERR_PTR(-EINVAL);
>>>
>>> - if (WARN_ON(importer_ops && !importer_ops->move_notify))
>>> + if (WARN_ON(importer_ops && !importer_ops->invalidate_mappings))
>>> return ERR_PTR(-EINVAL);
>>>
>>> attach = kzalloc(sizeof(*attach), GFP_KERNEL);
>>> @@ -1055,7 +1055,7 @@ EXPORT_SYMBOL_NS_GPL(dma_buf_pin, "DMA_BUF");
>>> *
>>> * This unpins a buffer pinned by dma_buf_pin() and allows the exporter to move
>>> * any mapping of @attach again and inform the importer through
>>> - * &dma_buf_attach_ops.move_notify.
>>> + * &dma_buf_attach_ops.invalidate_mappings.
>>> */
>>> void dma_buf_unpin(struct dma_buf_attachment *attach)
>>> {
>>> @@ -1262,7 +1262,7 @@ void dma_buf_move_notify(struct dma_buf *dmabuf)
>>>
>>> list_for_each_entry(attach, &dmabuf->attachments, node)
>>> if (attach->importer_ops)
>>> - attach->importer_ops->move_notify(attach);
>>> + attach->importer_ops->invalidate_mappings(attach);
>>> }
>>> EXPORT_SYMBOL_NS_GPL(dma_buf_move_notify, "DMA_BUF");
>>>
>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c
>>> index e22cfa7c6d32..863454148b28 100644
>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c
>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c
>>> @@ -450,7 +450,7 @@ amdgpu_dma_buf_create_obj(struct drm_device *dev, struct dma_buf *dma_buf)
>>> }
>>>
>>> /**
>>> - * amdgpu_dma_buf_move_notify - &attach.move_notify implementation
>>> + * amdgpu_dma_buf_move_notify - &attach.invalidate_mappings implementation
>>> *
>>> * @attach: the DMA-buf attachment
>>> *
>>> @@ -521,7 +521,7 @@ amdgpu_dma_buf_move_notify(struct dma_buf_attachment *attach)
>>>
>>> static const struct dma_buf_attach_ops amdgpu_dma_buf_attach_ops = {
>>> .allow_peer2peer = true,
>>> - .move_notify = amdgpu_dma_buf_move_notify
>>> + .invalidate_mappings = amdgpu_dma_buf_move_notify
>>> };
>>>
>>> /**
>>> diff --git a/drivers/gpu/drm/virtio/virtgpu_prime.c b/drivers/gpu/drm/virtio/virtgpu_prime.c
>>> index ce49282198cb..19c78dd2ca77 100644
>>> --- a/drivers/gpu/drm/virtio/virtgpu_prime.c
>>> +++ b/drivers/gpu/drm/virtio/virtgpu_prime.c
>>> @@ -288,7 +288,7 @@ static void virtgpu_dma_buf_move_notify(struct dma_buf_attachment *attach)
>>>
>>> static const struct dma_buf_attach_ops virtgpu_dma_buf_attach_ops = {
>>> .allow_peer2peer = true,
>>> - .move_notify = virtgpu_dma_buf_move_notify
>>> + .invalidate_mappings = virtgpu_dma_buf_move_notify
>>> };
>>>
>>> struct drm_gem_object *virtgpu_gem_prime_import(struct drm_device *dev,
>>> diff --git a/drivers/gpu/drm/xe/tests/xe_dma_buf.c b/drivers/gpu/drm/xe/tests/xe_dma_buf.c
>>> index 5df98de5ba3c..1f2cca5c2f81 100644
>>> --- a/drivers/gpu/drm/xe/tests/xe_dma_buf.c
>>> +++ b/drivers/gpu/drm/xe/tests/xe_dma_buf.c
>>> @@ -23,7 +23,7 @@ static bool p2p_enabled(struct dma_buf_test_params *params)
>>> static bool is_dynamic(struct dma_buf_test_params *params)
>>> {
>>> return IS_ENABLED(CONFIG_DMABUF_MOVE_NOTIFY) && params->attach_ops &&
>>> - params->attach_ops->move_notify;
>>> + params->attach_ops->invalidate_mappings;
>>> }
>>>
>>> static void check_residency(struct kunit *test, struct xe_bo *exported,
>>> @@ -60,7 +60,7 @@ static void check_residency(struct kunit *test, struct xe_bo *exported,
>>>
>>> /*
>>> * Evict exporter. Evicting the exported bo will
>>> - * evict also the imported bo through the move_notify() functionality if
>>> + * evict also the imported bo through the invalidate_mappings() functionality if
>>> * importer is on a different device. If they're on the same device,
>>> * the exporter and the importer should be the same bo.
>>> */
>>> @@ -198,7 +198,7 @@ static void xe_test_dmabuf_import_same_driver(struct xe_device *xe)
>>>
>>> static const struct dma_buf_attach_ops nop2p_attach_ops = {
>>> .allow_peer2peer = false,
>>> - .move_notify = xe_dma_buf_move_notify
>>> + .invalidate_mappings = xe_dma_buf_move_notify
>>> };
>>>
>>> /*
>>> diff --git a/drivers/gpu/drm/xe/xe_dma_buf.c b/drivers/gpu/drm/xe/xe_dma_buf.c
>>> index 7c74a31d4486..1b9cd043e517 100644
>>> --- a/drivers/gpu/drm/xe/xe_dma_buf.c
>>> +++ b/drivers/gpu/drm/xe/xe_dma_buf.c
>>> @@ -287,7 +287,7 @@ static void xe_dma_buf_move_notify(struct dma_buf_attachment *attach)
>>>
>>> static const struct dma_buf_attach_ops xe_dma_buf_attach_ops = {
>>> .allow_peer2peer = true,
>>> - .move_notify = xe_dma_buf_move_notify
>>> + .invalidate_mappings = xe_dma_buf_move_notify
>>> };
>>>
>>> #if IS_ENABLED(CONFIG_DRM_XE_KUNIT_TEST)
>>> diff --git a/drivers/infiniband/core/umem_dmabuf.c b/drivers/infiniband/core/umem_dmabuf.c
>>> index 0ec2e4120cc9..d77a739cfe7a 100644
>>> --- a/drivers/infiniband/core/umem_dmabuf.c
>>> +++ b/drivers/infiniband/core/umem_dmabuf.c
>>> @@ -129,7 +129,7 @@ ib_umem_dmabuf_get_with_dma_device(struct ib_device *device,
>>> if (check_add_overflow(offset, (unsigned long)size, &end))
>>> return ret;
>>>
>>> - if (unlikely(!ops || !ops->move_notify))
>>> + if (unlikely(!ops || !ops->invalidate_mappings))
>>> return ret;
>>>
>>> dmabuf = dma_buf_get(fd);
>>> @@ -195,7 +195,7 @@ ib_umem_dmabuf_unsupported_move_notify(struct dma_buf_attachment *attach)
>>>
>>> static struct dma_buf_attach_ops ib_umem_dmabuf_attach_pinned_ops = {
>>> .allow_peer2peer = true,
>>> - .move_notify = ib_umem_dmabuf_unsupported_move_notify,
>>> + .invalidate_mappings = ib_umem_dmabuf_unsupported_move_notify,
>>> };
>>>
>>> struct ib_umem_dmabuf *
>>> diff --git a/drivers/infiniband/hw/mlx5/mr.c b/drivers/infiniband/hw/mlx5/mr.c
>>> index 325fa04cbe8a..97099d3b1688 100644
>>> --- a/drivers/infiniband/hw/mlx5/mr.c
>>> +++ b/drivers/infiniband/hw/mlx5/mr.c
>>> @@ -1620,7 +1620,7 @@ static void mlx5_ib_dmabuf_invalidate_cb(struct dma_buf_attachment *attach)
>>>
>>> static struct dma_buf_attach_ops mlx5_ib_dmabuf_attach_ops = {
>>> .allow_peer2peer = 1,
>>> - .move_notify = mlx5_ib_dmabuf_invalidate_cb,
>>> + .invalidate_mappings = mlx5_ib_dmabuf_invalidate_cb,
>>> };
>>>
>>> static struct ib_mr *
>>> diff --git a/drivers/iommu/iommufd/pages.c b/drivers/iommu/iommufd/pages.c
>>> index dbe51ecb9a20..76f900fa1687 100644
>>> --- a/drivers/iommu/iommufd/pages.c
>>> +++ b/drivers/iommu/iommufd/pages.c
>>> @@ -1451,7 +1451,7 @@ static void iopt_revoke_notify(struct dma_buf_attachment *attach)
>>>
>>> static struct dma_buf_attach_ops iopt_dmabuf_attach_revoke_ops = {
>>> .allow_peer2peer = true,
>>> - .move_notify = iopt_revoke_notify,
>>> + .invalidate_mappings = iopt_revoke_notify,
>>> };
>>>
>>> /*
>>> diff --git a/include/linux/dma-buf.h b/include/linux/dma-buf.h
>>> index 0bc492090237..1b397635c793 100644
>>> --- a/include/linux/dma-buf.h
>>> +++ b/include/linux/dma-buf.h
>>> @@ -407,7 +407,7 @@ struct dma_buf {
>>> * through the device.
>>> *
>>> * - Dynamic importers should set fences for any access that they can't
>>> - * disable immediately from their &dma_buf_attach_ops.move_notify
>>> + * disable immediately from their &dma_buf_attach_ops.invalidate_mappings
>>> * callback.
>>> *
>>> * IMPORTANT:
>>> @@ -458,7 +458,7 @@ struct dma_buf_attach_ops {
>>> bool allow_peer2peer;
>>>
>>> /**
>>> - * @move_notify: [optional] notification that the DMA-buf is moving
>>> + * @invalidate_mappings: [optional] notification that the DMA-buf is moving
>>> *
>>> * If this callback is provided the framework can avoid pinning the
>>> * backing store while mappings exists.
>>> @@ -475,7 +475,7 @@ struct dma_buf_attach_ops {
>>> * New mappings can be created after this callback returns, and will
>>> * point to the new location of the DMA-buf.
>>> */
>>> - void (*move_notify)(struct dma_buf_attachment *attach);
>>> + void (*invalidate_mappings)(struct dma_buf_attachment *attach);
>>> };
>>>
>>> /**
>>>
>>
next prev parent reply other threads:[~2026-01-19 12:00 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-18 12:08 [PATCH v2 0/4] dma-buf: document revoke mechanism to invalidate shared buffers Leon Romanovsky
2026-01-18 12:08 ` [PATCH v2 1/4] dma-buf: Rename .move_notify() callback to a clearer identifier Leon Romanovsky
2026-01-19 10:22 ` Christian König
2026-01-19 11:38 ` Leon Romanovsky
2026-01-19 12:00 ` Christian König [this message]
2026-01-19 12:39 ` Leon Romanovsky
2026-01-18 12:08 ` [PATCH v2 2/4] dma-buf: Document revoke semantics Leon Romanovsky
2026-01-18 14:29 ` Thomas Hellström
2026-01-19 9:04 ` Leon Romanovsky
2026-01-18 21:40 ` John Hubbard
2026-01-19 7:25 ` Leon Romanovsky
2026-01-19 7:32 ` John Hubbard
2026-01-19 8:04 ` Leon Romanovsky
2026-01-19 10:56 ` Christian König
2026-01-19 11:39 ` Leon Romanovsky
[not found] ` <20260119164421.GF961572@ziepe.ca>
2026-01-20 9:45 ` Leon Romanovsky
2026-01-18 12:08 ` [PATCH v2 3/4] iommufd: Require DMABUF " Leon Romanovsky
[not found] ` <20260119165951.GI961572@ziepe.ca>
2026-01-19 18:23 ` Leon Romanovsky
[not found] ` <20260119195444.GL961572@ziepe.ca>
2026-01-20 13:10 ` Leon Romanovsky
[not found] ` <20260120131530.GN961572@ziepe.ca>
2026-01-20 13:33 ` Leon Romanovsky
2026-01-18 12:08 ` [PATCH v2 4/4] vfio: Add pinned interface to perform " Leon Romanovsky
2026-01-19 12:12 ` Christian König
2026-01-19 13:02 ` Leon Romanovsky
2026-01-19 14:21 ` Christian König
2026-01-18 12:21 ` ✗ CI.checkpatch: warning for dma-buf: document revoke mechanism to invalidate shared buffers Patchwork
2026-01-18 12:23 ` ✓ CI.KUnit: success " Patchwork
2026-01-18 12:38 ` ✗ CI.checksparse: warning " Patchwork
2026-01-18 12:57 ` ✓ Xe.CI.BAT: success " Patchwork
2026-01-18 14:06 ` ✗ Xe.CI.Full: failure " Patchwork
2026-01-18 14:16 ` [PATCH v2 0/4] " Thomas Hellström
2026-01-19 7:52 ` Leon Romanovsky
2026-01-19 9:27 ` Thomas Hellström
2026-01-19 10:20 ` Leon Romanovsky
2026-01-19 10:20 ` Christian König
2026-01-19 10:53 ` Leon Romanovsky
2026-01-19 12:05 ` Christian König
[not found] ` <20260119162424.GE961572@ziepe.ca>
2026-01-19 17:24 ` Thomas Hellström
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=871628d8-14b6-4d38-b05e-a33822f8d71b@amd.com \
--to=christian.koenig@amd.com \
--cc=airlied@gmail.com \
--cc=alex@shazbot.org \
--cc=alexander.deucher@amd.com \
--cc=amd-gfx@lists.freedesktop.org \
--cc=dmitry.osipenko@collabora.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=gurchetansingh@chromium.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=iommu@lists.linux.dev \
--cc=jgg@ziepe.ca \
--cc=joro@8bytes.org \
--cc=kevin.tian@intel.com \
--cc=kraxel@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=leon@kernel.org \
--cc=linaro-mm-sig@lists.linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=lucas.demarchi@intel.com \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mripard@kernel.org \
--cc=olvaffe@gmail.com \
--cc=robin.murphy@arm.com \
--cc=rodrigo.vivi@intel.com \
--cc=simona@ffwll.ch \
--cc=sumit.semwal@linaro.org \
--cc=thomas.hellstrom@linux.intel.com \
--cc=tzimmermann@suse.de \
--cc=virtualization@lists.linux.dev \
--cc=will@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox