linux-kernelorg-stable/drivers
Maxime Ripard 4f5f8baf73 dma-buf: heaps: cma: Create CMA heap for each CMA reserved region
Aside from the main CMA region, it can be useful to allow userspace to
allocate from the other CMA reserved regions.

Indeed, those regions can have specific properties that can be useful to
a specific us-case.

For example, one of them platform I've been with has ECC enabled on the
entire memory but for a specific region. Using that region to allocate
framebuffers can be particular beneficial because enabling the ECC has a
performance and memory footprint cost.

Thus, exposing these regions as heaps user-space can allocate from and
import wherever needed allows to cover that use-case.

For now, only shared-dma-pools regions with the reusable property (ie,
backed by CMA) are supported, but eventually we'll want to support other
DMA pools types.

Since we collected all the CMA regions created during boot, we can
simply iterate over all of them to create the heaps.

This has a weird interaction with the recent work on the CMA name, in
particular the backward compatibility code created by commit
854acbe75f ("dma-buf: heaps: Give default CMA heap a fixed name").

Indeed, the old name was either 'reserved', or the name of the
reserved-memory region device tree node if the linux,cma-default
property was set.

In both these cases, we have now collected this region during boot, and
we're using the same name. So we're now largely redundant with the
code to handle backward compatibility code, and we can thus remove it
and the associated Kconfig option.

Reviewed-by: T.J. Mercier <tjmercier@google.com>
Signed-off-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>
   [sumits: rebased the doc to latest]
Link: https://lore.kernel.org/r/20251013-dma-buf-ecc-heap-v8-5-04ce150ea3d9@kernel.org
2025-10-18 21:31:22 +05:30
..
accel accel/amdxdna: Support getting last hardware error 2025-10-16 09:32:48 -07:00
accessibility
acpi More ACPI support updates for 6.18-rc1 2025-10-07 09:45:07 -07:00
amba
android
ata Summary of significant series in this pull request: 2025-10-02 18:18:33 -07:00
atm
auxdisplay
base More power management updates for 6.18-rc1 2025-10-07 09:39:51 -07:00
bcma
block block-6.18-20251009 2025-10-10 10:37:13 -07:00
bluetooth
bus Char/Misc/IIO/Binder changes for 6.18-rc1 2025-10-04 16:26:32 -07:00
cache
cdrom
cdx Char/Misc/IIO/Binder changes for 6.18-rc1 2025-10-04 16:26:32 -07:00
char tpm: Prevent local DOS via tpm/tpm0/ppi/*operations 2025-10-10 08:21:45 +03:00
clk There's a bunch of patches here across drivers/clk/ to migrate drivers to use 2025-10-07 09:28:37 -07:00
clocksource hyperv-next for v6.18 2025-10-07 08:40:15 -07:00
comedi
connector
counter
cpufreq CPUFreq fixes for 6.18 2025-10-01 13:59:28 +02:00
cpuidle
crypto This push contains the following changes: 2025-10-08 09:38:31 -07:00
cxl
dax
dca
devfreq
dibs
dio
dma dmaengine updates for v6.18 2025-10-06 10:37:06 -07:00
dma-buf dma-buf: heaps: cma: Create CMA heap for each CMA reserved region 2025-10-18 21:31:22 +05:30
dpll
edac
eisa
extcon
firewire firewire updates for v6.18 2025-10-01 12:52:43 -07:00
firmware EFI updates for v6.18 2025-10-05 12:08:14 -07:00
fpga
fsi
fwctl
gnss
gpio gpio: wcd934x: mark the GPIO controller as sleeping 2025-10-10 09:37:19 +02:00
gpu drm/client: Remove holds_console_lock parameter from suspend/resume 2025-10-18 17:35:09 +02:00
greybus
hid hyperv-next for v6.18 2025-10-07 08:40:15 -07:00
hsi
hte
hv Drivers: hv: Make CONFIG_HYPERV bool 2025-10-01 00:00:45 +00:00
hwmon gpio updates for v6.18-rc1 2025-10-01 11:34:12 -07:00
hwspinlock
hwtracing Char/Misc/IIO/Binder changes for 6.18-rc1 2025-10-04 16:26:32 -07:00
i2c Revert "i2c: boardinfo: Annotate code used in init phase only" 2025-10-11 23:57:33 +02:00
i3c
idle
iio
infiniband RDMA v6.18 merge window pull request 2025-10-03 18:35:22 -07:00
input Input updates for v6.18-rc0 2025-10-08 09:44:38 -07:00
interconnect
iommu iommufd 6.18 merge window pull 2025-10-03 18:18:48 -07:00
ipack
irqchip irqchip/sifive-plic: Avoid interrupt ID 0 handling during suspend/resume 2025-10-07 10:23:22 +02:00
isdn
leds
macintosh
mailbox qcom: add Glymur CPUCP mailbox binding 2025-10-08 11:44:21 -07:00
mcb
md dm docs: fix typos 2025-10-03 18:48:02 -07:00
media USB/Thunderbolt changes for 6.18-rc1 2025-10-04 16:07:08 -07:00
memory
memstick Summary of significant series in this pull request: 2025-10-02 18:18:33 -07:00
message
mfd soc: driver updates for 6.18 2025-10-01 17:32:51 -07:00
misc - Remove a bunch of asm implementing condition flags testing in KVM's 2025-10-11 11:19:16 -07:00
mmc Summary of significant series in this pull request: 2025-10-02 18:18:33 -07:00
most
mtd MTD core: 2025-10-04 15:50:37 -07:00
mux
net Including fixes from netfilter. 2025-10-09 11:13:08 -07:00
nfc
ntb
nubus
nvdimm libnvdimm for 6.18 2025-10-06 11:17:18 -07:00
nvme for-6.18/block-20250929 2025-10-02 10:16:56 -07:00
nvmem Char/Misc fixes for 6.18-rc1 2025-10-07 12:13:26 -07:00
of Devicetree fixes for v6.18: 2025-10-10 13:05:40 -07:00
opp
parisc
parport
pci pci-v6.18-fixes-1 2025-10-08 18:51:00 -07:00
pcmcia
peci
perf arm64 fixes for -rc1 2025-10-07 08:59:25 -07:00
phy phy-for-6.18 2025-10-06 10:34:22 -07:00
pinctrl pci-v6.18-changes 2025-10-06 10:41:03 -07:00
platform platform-drivers-x86 for v6.18-1 2025-10-04 15:28:18 -07:00
pmdomain soc: driver updates for 6.18 2025-10-01 17:32:51 -07:00
pnp
power power supply and reset changes for the 6.18 series 2025-10-01 13:02:59 -07:00
powercap
pps
ps3
ptp Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2025-10-01 10:14:49 +02:00
pwm gpio updates for v6.18-rc1 2025-10-01 11:34:12 -07:00
rapidio
ras
regulator MFD for v6.18 2025-10-01 12:04:12 -07:00
remoteproc remoteproc updates for v6.18 2025-10-04 15:45:17 -07:00
reset soc: driver updates for 6.18 2025-10-01 17:32:51 -07:00
rpmsg
rtc RTC for 6.18 2025-10-11 11:56:47 -07:00
s390 more s390 updates for 6.18 merge window 2025-10-09 10:51:43 -07:00
sbus
scsi SCSI misc on 20251011 2025-10-11 11:49:00 -07:00
sh
siox
slimbus
soc - switch longson32 platform to DT and use MIPS_GENERIC framework 2025-10-05 10:09:55 -07:00
soundwire soundwire updates for 6.18 2025-10-06 10:32:22 -07:00
spi soc: driver updates for 6.18 2025-10-01 17:32:51 -07:00
spmi
ssb
staging Staging driver fixes for 6.18-rc1 2025-10-07 11:41:06 -07:00
target SCSI misc on 20251011 2025-10-11 11:49:00 -07:00
tc
tee soc: driver updates for 6.18 2025-10-01 17:32:51 -07:00
thermal thermal: renesas: Fix RZ/G3E fall-out 2025-10-02 10:41:58 +02:00
thunderbolt
tty TTY driver fix for 6.18-rc1 2025-10-07 11:36:01 -07:00
ufs SCSI misc on 20251011 2025-10-11 11:49:00 -07:00
uio hyperv-next for v6.18 2025-10-07 08:40:15 -07:00
usb USB/Thunderbolt changes for 6.18-rc1 2025-10-04 16:07:08 -07:00
vdpa vduse: Use fixed 4KB bounce pages for non-4KB page size 2025-10-01 07:24:55 -04:00
vfio vfio: Dump migration features under debugfs 2025-10-06 11:22:48 -06:00
vhost vdpa: support virtio_map 2025-10-01 07:24:43 -04:00
video Merge drm/drm-next into drm-misc-next 2025-10-13 09:19:19 +02:00
virt
virtio virtio,vhost: fixes, cleanups 2025-10-04 08:48:16 -07:00
w1
watchdog linux-watchdog 6.18-rc1 tag 2025-10-06 11:00:30 -07:00
xen dma-mapping updates for Linux 6.18: 2025-10-03 17:41:12 -07:00
zorro
Kconfig
Makefile hyperv-next for v6.18 2025-10-07 08:40:15 -07:00