lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <871628d8-14b6-4d38-b05e-a33822f8d71b@amd.com>
Date: Mon, 19 Jan 2026 13:00:18 +0100
From: Christian König <christian.koenig@....com>
To: Leon Romanovsky <leon@...nel.org>
Cc: Sumit Semwal <sumit.semwal@...aro.org>,
 Alex Deucher <alexander.deucher@....com>, David Airlie <airlied@...il.com>,
 Simona Vetter <simona@...ll.ch>, Gerd Hoffmann <kraxel@...hat.com>,
 Dmitry Osipenko <dmitry.osipenko@...labora.com>,
 Gurchetan Singh <gurchetansingh@...omium.org>, Chia-I Wu
 <olvaffe@...il.com>, Maarten Lankhorst <maarten.lankhorst@...ux.intel.com>,
 Maxime Ripard <mripard@...nel.org>, Thomas Zimmermann <tzimmermann@...e.de>,
 Lucas De Marchi <lucas.demarchi@...el.com>,
 Thomas Hellström <thomas.hellstrom@...ux.intel.com>,
 Rodrigo Vivi <rodrigo.vivi@...el.com>, Jason Gunthorpe <jgg@...pe.ca>,
 Kevin Tian <kevin.tian@...el.com>, Joerg Roedel <joro@...tes.org>,
 Will Deacon <will@...nel.org>, Robin Murphy <robin.murphy@....com>,
 Alex Williamson <alex@...zbot.org>, linux-media@...r.kernel.org,
 dri-devel@...ts.freedesktop.org, linaro-mm-sig@...ts.linaro.org,
 linux-kernel@...r.kernel.org, amd-gfx@...ts.freedesktop.org,
 virtualization@...ts.linux.dev, intel-xe@...ts.freedesktop.org,
 linux-rdma@...r.kernel.org, iommu@...ts.linux.dev, kvm@...r.kernel.org
Subject: Re: [PATCH v2 1/4] dma-buf: Rename .move_notify() callback to a
 clearer identifier

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@...dia.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@....com>
>>> Signed-off-by: Leon Romanovsky <leonro@...dia.com>
>>
>> Reviewed-by: Christian König <christian.koenig@....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);
>>>  };
>>>  
>>>  /**
>>>
>>


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ