Commit cc27314c authored by Koen Koning's avatar Koen Koning Committed by Dave Airlie
Browse files

gpu: Fix uninitialized buddy for built-in drivers



Move buddy to the start of the link order, so its __init runs before any
other built-in drivers that may depend on it. Otherwise, a built-in
driver that tries to use the buddy allocator will run into a kernel NULL
pointer dereference because slab_blocks is uninitialized.

Specifically, this fixes drm/xe (as built-in) running into a kernel
panic during boot, because it uses buddy during device probe.

Fixes: ba110db8 ("gpu: Move DRM buddy allocator one level up (part two)")
Cc: Joel Fernandes <joelagnelf@nvidia.com>
Cc: Dave Airlie <airlied@redhat.com>
Cc: intel-xe@lists.freedesktop.org
Reviewed-by: default avatarDave Airlie <airlied@redhat.com>
Tested-by: default avatarPeter Senna Tschudin <peter.senna@linux.intel.com>
Signed-off-by: default avatarKoen Koning <koen.koning@linux.intel.com>
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
Link: https://patch.msgid.link/20260213152047.179628-1-koen.koning@linux.intel.com
parent 8c5f9645
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -2,8 +2,9 @@
# drm/tegra depends on host1x, so if both drivers are built-in care must be
# taken to initialize them in the correct order. Link order is the only way
# to ensure this currently.
# Similarly, buddy must come first since it is used by other drivers.
obj-$(CONFIG_GPU_BUDDY)	+= buddy.o
obj-y			+= host1x/ drm/ vga/ tests/
obj-$(CONFIG_IMX_IPUV3_CORE)	+= ipu-v3/
obj-$(CONFIG_TRACE_GPU_MEM)		+= trace/
obj-$(CONFIG_NOVA_CORE)		+= nova-core/
obj-$(CONFIG_GPU_BUDDY)		+= buddy.o