]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
dma-buf: Always build with DMABUF_MOVE_NOTIFY
authorLeon Romanovsky <leonro@nvidia.com>
Sat, 24 Jan 2026 19:14:15 +0000 (21:14 +0200)
committerChristian König <christian.koenig@amd.com>
Tue, 27 Jan 2026 09:45:11 +0000 (10:45 +0100)
DMABUF_MOVE_NOTIFY was introduced in 2018 and has been marked as
experimental and disabled by default ever since. Six years later,
all new importers implement this callback.

It is therefore reasonable to drop CONFIG_DMABUF_MOVE_NOTIFY and
always build DMABUF with support for it enabled.

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>
Link: https://lore.kernel.org/r/20260124-dmabuf-revoke-v5-3-f98fca917e96@nvidia.com
Signed-off-by: Christian König <christian.koenig@amd.com>
drivers/dma-buf/Kconfig
drivers/dma-buf/dma-buf.c
drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c
drivers/gpu/drm/amd/amdkfd/Kconfig
drivers/gpu/drm/xe/tests/xe_dma_buf.c
drivers/gpu/drm/xe/xe_dma_buf.c

index 012d22e941d6f1d4007b995043816f18b287b7ed..8d4f2f89f24e3cc6abe515768906c58a5b25bfa7 100644 (file)
@@ -40,18 +40,6 @@ config UDMABUF
          A driver to let userspace turn memfd regions into dma-bufs.
          Qemu can use this to create host dmabufs for guest framebuffers.
 
-config DMABUF_MOVE_NOTIFY
-       bool "Move notify between drivers (EXPERIMENTAL)"
-       default n
-       depends on DMA_SHARED_BUFFER
-       help
-         Don't pin buffers if the dynamic DMA-buf interface is available on
-         both the exporter as well as the importer. This fixes a security
-         problem where userspace is able to pin unrestricted amounts of memory
-         through DMA-buf.
-         This is marked experimental because we don't yet have a consistent
-         execution context and memory management between drivers.
-
 config DMABUF_DEBUG
        bool "DMA-BUF debug checks"
        depends on DMA_SHARED_BUFFER
index 1c257607a6236045eb898c35cc8c01f8e7a52711..1b301d96f968cfdd2c552a76707ecb4910347440 100644 (file)
@@ -916,8 +916,7 @@ static bool
 dma_buf_pin_on_map(struct dma_buf_attachment *attach)
 {
        return attach->dmabuf->ops->pin &&
-               (!dma_buf_attachment_is_dynamic(attach) ||
-                !IS_ENABLED(CONFIG_DMABUF_MOVE_NOTIFY));
+              !dma_buf_attachment_is_dynamic(attach);
 }
 
 /**
index 863454148b281bb3196a61b7097148a9111509e4..349215549e8f482262e0c26b9d1976a43eda6083 100644 (file)
@@ -145,13 +145,9 @@ static int amdgpu_dma_buf_pin(struct dma_buf_attachment *attach)
         * notifiers are disabled, only allow pinning in VRAM when move
         * notiers are enabled.
         */
-       if (!IS_ENABLED(CONFIG_DMABUF_MOVE_NOTIFY)) {
-               domains &= ~AMDGPU_GEM_DOMAIN_VRAM;
-       } else {
-               list_for_each_entry(attach, &dmabuf->attachments, node)
-                       if (!attach->peer2peer)
-                               domains &= ~AMDGPU_GEM_DOMAIN_VRAM;
-       }
+       list_for_each_entry(attach, &dmabuf->attachments, node)
+               if (!attach->peer2peer)
+                       domains &= ~AMDGPU_GEM_DOMAIN_VRAM;
 
        if (domains & AMDGPU_GEM_DOMAIN_VRAM)
                bo->flags |= AMDGPU_GEM_CREATE_CPU_ACCESS_REQUIRED;
index 16e12c9913f943ed7d3fac39cb13e6fd2136a357..a5d7467c2f3493f75f106a65939eaa04c3387268 100644 (file)
@@ -27,7 +27,7 @@ config HSA_AMD_SVM
 
 config HSA_AMD_P2P
        bool "HSA kernel driver support for peer-to-peer for AMD GPU devices"
-       depends on HSA_AMD && PCI_P2PDMA && DMABUF_MOVE_NOTIFY
+       depends on HSA_AMD && PCI_P2PDMA
        help
          Enable peer-to-peer (P2P) communication between AMD GPUs over
          the PCIe bus. This can improve performance of multi-GPU compute
index 1f2cca5c2f8101076c40cf7eb7814437600efb06..c107687ef3c0f221d222ae8849fc2e5ae89b47c8 100644 (file)
@@ -22,8 +22,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->invalidate_mappings;
+       return params->attach_ops && params->attach_ops->invalidate_mappings;
 }
 
 static void check_residency(struct kunit *test, struct xe_bo *exported,
index 2e167b29d0c95a3cfa9cb7d976e2a0fd022a29c9..4e3a968bc6a077739746f787fbca1f4e741d7e06 100644 (file)
@@ -56,14 +56,10 @@ static int xe_dma_buf_pin(struct dma_buf_attachment *attach)
        bool allow_vram = true;
        int ret;
 
-       if (!IS_ENABLED(CONFIG_DMABUF_MOVE_NOTIFY)) {
-               allow_vram = false;
-       } else {
-               list_for_each_entry(attach, &dmabuf->attachments, node) {
-                       if (!attach->peer2peer) {
-                               allow_vram = false;
-                               break;
-                       }
+       list_for_each_entry(attach, &dmabuf->attachments, node) {
+               if (!attach->peer2peer) {
+                       allow_vram = false;
+                       break;
                }
        }