]> git.ipfire.org Git - thirdparty/u-boot.git/commit
dm: core: Default to using DEVRES outside of xPL
authorTom Rini <trini@konsulko.com>
Sat, 27 Dec 2025 22:37:11 +0000 (16:37 -0600)
committerTom Rini <trini@konsulko.com>
Fri, 9 Jan 2026 15:08:14 +0000 (09:08 -0600)
commit217cf656e249f698d390a7d8eaf255eb1a6c0230
tree517b0cbaabb08056ff41b7e2d9699ce58ae7880f
parent284e1a00f4f28dcd6ddc8c860d22f1c8c427c5d5
dm: core: Default to using DEVRES outside of xPL

The devm alloc functions that we have may follow the Linux kernel model
where allocations are (almost always) automatically free()'d. However,
quite often we don't enable, in full U-Boot, the tracking and free()'ing
functionality. This in turn leads to memory leaks because the driver
author expects that since the functions have the same name as in the
Linux Kernel they have the same behavior. In turn we then get
functionally correct commits such as commit 00e1fed93c8c ("firmware:
ti_sci: Fix memory leaks in devm_ti_sci_get_of_resource") that manually
add these calls. Rather than manually tracking allocations and
implementing free()s, rework things so that we follow expectations by
enabling the DEVRES functionality (outside of xPL phases).

This turns DEVRES from a prompted symbol to a symbol that must be
select'd, and we now remove our non-managed alloc/free functions from
outside of xPL builds.

Reviewed-by: Michael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: Tom Rini <trini@konsulko.com>
34 files changed:
arch/arm/mach-stm32mp/Kconfig
drivers/block/Kconfig
drivers/clk/Kconfig
drivers/core/Kconfig
drivers/dma/ti/Kconfig
drivers/firmware/Kconfig
drivers/firmware/arm-ffa/Kconfig
drivers/gpio/Kconfig
drivers/i2c/muxes/Kconfig
drivers/i3c/Kconfig
drivers/mailbox/Kconfig
drivers/mtd/nand/raw/Kconfig
drivers/mtd/nand/spi/Kconfig
drivers/mtd/spi/Kconfig
drivers/mux/Kconfig
drivers/net/Kconfig
drivers/net/phy/Kconfig
drivers/pci/Kconfig
drivers/phy/Kconfig
drivers/pinctrl/Kconfig
drivers/pinctrl/mscc/Kconfig
drivers/pinctrl/mvebu/Kconfig
drivers/pinctrl/renesas/Kconfig
drivers/power/regulator/Kconfig
drivers/reboot-mode/Kconfig
drivers/reset/Kconfig
drivers/smem/Kconfig
drivers/soc/ti/Kconfig
drivers/spi/Kconfig
drivers/usb/cdns3/Kconfig
drivers/usb/dwc3/Kconfig
drivers/usb/host/Kconfig
drivers/video/Kconfig
include/dm/devres.h