]> git.hungrycats.org Git - linux/commitdiff
remoteproc: k3-r5: Fix error handling when power-up failed
authorJan Kiszka <jan.kiszka@siemens.com>
Mon, 19 Aug 2024 15:24:51 +0000 (17:24 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 10 Oct 2024 10:00:59 +0000 (12:00 +0200)
commit 9ab27eb5866ccbf57715cfdba4b03d57776092fb upstream.

By simply bailing out, the driver was violating its rule and internal
assumptions that either both or no rproc should be initialized. E.g.,
this could cause the first core to be available but not the second one,
leading to crashes on its shutdown later on while trying to dereference
that second instance.

Fixes: 61f6f68447ab ("remoteproc: k3-r5: Wait for core0 power-up before powering up core1")
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Acked-by: Beleswar Padhi <b-padhi@ti.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/9f481156-f220-4adf-b3d9-670871351e26@siemens.com
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/remoteproc/ti_k3_r5_remoteproc.c

index 39a47540c59006e2d8312132ad5bcda9d0d368c7..eb09d2e9b32a473a12e42e9ed7c938583ab76754 100644 (file)
@@ -1332,7 +1332,7 @@ init_rmem:
                        dev_err(dev,
                                "Timed out waiting for %s core to power up!\n",
                                rproc->name);
-                       return ret;
+                       goto err_powerup;
                }
        }
 
@@ -1348,6 +1348,7 @@ err_split:
                }
        }
 
+err_powerup:
        rproc_del(rproc);
 err_add:
        k3_r5_reserved_mem_exit(kproc);