# SPDX-License-Identifier: GPL-2.0-only menu "DMABUF options" config SYNC_FILE bool "Explicit Synchronization Framework" default n select DMA_SHARED_BUFFER help The Sync File Framework adds explicit synchronization via userspace. It enables send/receive 'struct dma_fence' objects to/from userspace via Sync File fds for synchronization between drivers via userspace components. It has been ported from Android. The first and main user for this is graphics in which a fence is associated with a buffer. When a job is submitted to the GPU a fence is attached to the buffer and is transferred via userspace, using Sync Files fds, to the DRM driver for example. More details at Documentation/driver-api/sync_file.rst. config SW_SYNC bool "Sync File Validation Framework" default n depends on SYNC_FILE depends on DEBUG_FS help A sync object driver that uses a 32bit counter to coordinate synchronization. Useful when there is no hardware primitive backing the synchronization. WARNING: improper use of this can result in deadlocking kernel drivers from userspace. Intended for test and debug only. config UDMABUF bool "userspace dmabuf misc driver" default n depends on DMA_SHARED_BUFFER depends on MEMFD_CREATE || COMPILE_TEST help 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 default y if DMA_API_DEBUG help This option enables additional checks for DMA-BUF importers and exporters. Specifically it validates that importers do not peek at the underlying struct page when they import a buffer. config DMABUF_SELFTESTS tristate "Selftests for the dma-buf interfaces" default n depends on DMA_SHARED_BUFFER menuconfig DMABUF_HEAPS bool "DMA-BUF Userland Memory Heaps" select DMA_SHARED_BUFFER help Choose this option to enable the DMA-BUF userland memory heaps. This options creates per heap chardevs in /dev/dma_heap/ which allows userspace to allocate dma-bufs that can be shared between drivers. menuconfig DMABUF_SYSFS_STATS bool "DMA-BUF sysfs statistics" depends on DMA_SHARED_BUFFER help Choose this option to enable DMA-BUF sysfs statistics in location /sys/kernel/dmabuf/buffers. /sys/kernel/dmabuf/buffers/ will contain statistics for the DMA-BUF with the unique inode number . source "drivers/dma-buf/heaps/Kconfig" endmenu