Hi Martin, On Thu, 10 Apr 2025 at 03:30, Martin Blumenstingl <martin.blumensti...@googlemail.com> wrote: > > meson_drv_bind_master() does not free resources in the order they are > allocated. This can lead to crashes such as: > Unable to handle kernel NULL pointer dereference at virtual address > 00000000000000c8 > [...] > Hardware name: Beelink GT-King Pro (DT) > pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) > pc : meson_dw_hdmi_unbind+0x10/0x24 [meson_dw_hdmi] > lr : component_unbind+0x38/0x60 > [...] > Call trace: > meson_dw_hdmi_unbind+0x10/0x24 [meson_dw_hdmi] > component_unbind+0x38/0x60 > component_unbind_all+0xb8/0xc4 > meson_drv_bind_master+0x1ec/0x514 [meson_drm] > meson_drv_bind+0x14/0x20 [meson_drm] > try_to_bring_up_aggregate_device+0xa8/0x160 > __component_add+0xb8/0x1a8 > component_add+0x14/0x20 > meson_dw_hdmi_probe+0x1c/0x28 [meson_dw_hdmi] > platform_probe+0x68/0xdc > really_probe+0xc0/0x39c > __driver_probe_device+0x7c/0x14c > driver_probe_device+0x3c/0x120 > __driver_attach+0xc4/0x200 > bus_for_each_dev+0x78/0xd8 > driver_attach+0x24/0x30 > bus_add_driver+0x110/0x240 > driver_register+0x68/0x124 > __platform_driver_register+0x24/0x30 > meson_dw_hdmi_platform_driver_init+0x20/0x1000 [meson_dw_hdmi] > do_one_initcall+0x50/0x1bc > do_init_module+0x54/0x1fc > load_module+0x788/0x884 > init_module_from_file+0x88/0xd4 > __arm64_sys_finit_module+0x248/0x340 > invoke_syscall+0x48/0x104 > el0_svc_common.constprop.0+0x40/0xe0 > do_el0_svc+0x1c/0x28 > el0_svc+0x30/0xcc > el0t_64_sync_handler+0x120/0x12c > el0t_64_sync+0x190/0x194 > > Clean up resources in the error path in the same order and under the > same conditions as they were allocated to fix this. > > Reported-by: Furkan Kardame <f.kard...@manjaro.org> > Signed-off-by: Martin Blumenstingl <martin.blumensti...@googlemail.com> > --- > This issue was reported off-list so I'm unable to provide a link to the > report. > > I'm not sure which Fixes tag fits best. My preference so far is > Fixes: 6a044642988b ("drm/meson: fix unbind path if HDMI fails to bind") > but I'll happily take other suggestions as well. > Thanks for this Fix.
Reviewed-by: Anand Moon <linux.am...@gmail.com> Tested-by: Anand Moon <linux.am...@gmail.com> I have tested with the following script on AML-S905X-CC --------- #! /bin/bash set +x cd /sys/bus/platform/drivers/meson-drm/ for i in $(seq 1 10); do echo "========================" $i echo d0100000.vpu > unbind /usr/bin/sleep 1 echo d0100000.vpu > bind /usr/bin/sleep 1 done Thanks -Anand