mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-16 03:11:11 -04:00
dma-buf: Always build with DMABUF_MOVE_NOTIFY
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>
This commit is contained in:
committed by
Christian König
parent
95308225e5
commit
609fc8766d
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user