drm/xe/display: Fix memleak in display initialization
intel_power_domains_init is called twice in xe_device_probe:
1) intel_power_domains_init()
xe_display_init_nommio()
xe_device_probe()
2) intel_power_domains_init()
intel_display_driver_probe_noirq()
xe_display_init_noirq()
xe_device_probe()
It needs remove one to avoid power_domains->power_wells double malloc.
unreferenced object 0xffff88811150ee00 (size 512):
comm "systemd-udevd", pid 506, jiffies
4294674198 (age 3605.560s)
hex dump (first 32 bytes):
10 b4 9d a0 ff ff ff ff ff ff ff ff ff ff ff ff ................
ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 ................
backtrace:
[<
ffffffff8134b901>] __kmem_cache_alloc_node+0x1c1/0x2b0
[<
ffffffff812c98b2>] __kmalloc+0x52/0x150
[<
ffffffffa08b0033>] __set_power_wells+0xc3/0x360 [xe]
[<
ffffffffa08562fc>] xe_display_init_nommio+0x4c/0x70 [xe]
[<
ffffffffa07f0d1c>] xe_device_probe+0x3c/0x5a0 [xe]
[<
ffffffffa082e48f>] xe_pci_probe+0x33f/0x5a0 [xe]
[<
ffffffff817f2187>] local_pci_probe+0x47/0xa0
[<
ffffffff817f3db3>] pci_device_probe+0xc3/0x1f0
[<
ffffffff8192f2a2>] really_probe+0x1a2/0x410
[<
ffffffff8192f598>] __driver_probe_device+0x78/0x160
[<
ffffffff8192f6ae>] driver_probe_device+0x1e/0x90
[<
ffffffff8192f92a>] __driver_attach+0xda/0x1d0
[<
ffffffff8192c95c>] bus_for_each_dev+0x7c/0xd0
[<
ffffffff8192e159>] bus_add_driver+0x119/0x220
[<
ffffffff81930d00>] driver_register+0x60/0x120
[<
ffffffffa05e50a0>] 0xffffffffa05e50a0
The call to intel_power_domains_cleanup() needs to stay where it is for
now. The main issue is that while the init is called by the display
side, shared by i915 and xe, the cleanup is called by a non-shared code
path. Fixing that will be done as a separate commit.
Fixes:
44e694958b95 ("drm/xe/display: Implement display support")
Signed-off-by: Xiaoming Wang <xiaoming.wang@intel.com>
[ reword commit message and explain why the fini needs to stay
where it is ]
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240202215658.561298-1-lucas.demarchi@intel.com
(cherry picked from commit
86c99abb5f1b6fcd69fb268eeb2e34cb7c4f355c)
Signed-off-by: Thomas Hellström <thomas.hellstrom@linux.intel.com>