From: Greg Kroah-Hartman Date: Wed, 19 Jun 2024 11:19:38 +0000 (+0200) Subject: 6.1-stable patches X-Git-Tag: v6.1.95~27 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=755c396c97cdd71d75825c2d9faea85ba97248bc;p=thirdparty%2Fkernel%2Fstable-queue.git 6.1-stable patches added patches: remoteproc-k3-r5-jump-to-error-handling-labels-in-start-stop-errors.patch --- diff --git a/queue-6.1/remoteproc-k3-r5-jump-to-error-handling-labels-in-start-stop-errors.patch b/queue-6.1/remoteproc-k3-r5-jump-to-error-handling-labels-in-start-stop-errors.patch new file mode 100644 index 00000000000..579b24500de --- /dev/null +++ b/queue-6.1/remoteproc-k3-r5-jump-to-error-handling-labels-in-start-stop-errors.patch @@ -0,0 +1,47 @@ +From 1dc7242f6ee0c99852cb90676d7fe201cf5de422 Mon Sep 17 00:00:00 2001 +From: Beleswar Padhi +Date: Mon, 6 May 2024 19:48:49 +0530 +Subject: remoteproc: k3-r5: Jump to error handling labels in start/stop errors + +From: Beleswar Padhi + +commit 1dc7242f6ee0c99852cb90676d7fe201cf5de422 upstream. + +In case of errors during core start operation from sysfs, the driver +directly returns with the -EPERM error code. Fix this to ensure that +mailbox channels are freed on error before returning by jumping to the +'put_mbox' error handling label. Similarly, jump to the 'out' error +handling label to return with required -EPERM error code during the +core stop operation from sysfs. + +Fixes: 3c8a9066d584 ("remoteproc: k3-r5: Do not allow core1 to power up before core0 via sysfs") +Signed-off-by: Beleswar Padhi +Link: https://lore.kernel.org/r/20240506141849.1735679-1-b-padhi@ti.com +Signed-off-by: Mathieu Poirier +Signed-off-by: Greg Kroah-Hartman +--- + drivers/remoteproc/ti_k3_r5_remoteproc.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +--- a/drivers/remoteproc/ti_k3_r5_remoteproc.c ++++ b/drivers/remoteproc/ti_k3_r5_remoteproc.c +@@ -575,7 +575,8 @@ static int k3_r5_rproc_start(struct rpro + if (core != core0 && core0->rproc->state == RPROC_OFFLINE) { + dev_err(dev, "%s: can not start core 1 before core 0\n", + __func__); +- return -EPERM; ++ ret = -EPERM; ++ goto put_mbox; + } + + ret = k3_r5_core_run(core); +@@ -643,7 +644,8 @@ static int k3_r5_rproc_stop(struct rproc + if (core != core1 && core1->rproc->state != RPROC_OFFLINE) { + dev_err(dev, "%s: can not stop core 0 before core 1\n", + __func__); +- return -EPERM; ++ ret = -EPERM; ++ goto out; + } + + ret = k3_r5_core_halt(core); diff --git a/queue-6.1/series b/queue-6.1/series index 2697f82bcac..6c359cfe316 100644 --- a/queue-6.1/series +++ b/queue-6.1/series @@ -205,3 +205,4 @@ mm-memory-failure-fix-handling-of-dissolved-but-not-taken-off-from-buddy-pages.p serial-8250_pxa-configure-tx_loadsz-to-match-fifo-irq-level.patch mptcp-pm-update-add_addr-counters-after-connect.patch revert-fork-defer-linking-file-vma-until-vma-is-fully-initialized.patch +remoteproc-k3-r5-jump-to-error-handling-labels-in-start-stop-errors.patch