[RFC PATCH] mfd: ls2kbmc: Fix stop_machine() function's retvals

From: Borislav Petkov (AMD)

Date: Wed Oct 07 2026 - 19:57:03 EST


Hi,

see below.

It is totally untested because I don't have the hardware but the issue should
be clear.

Maybe the retvals should be tweaked, to denote even better what fails in
the function when it happens.

Thx.

---
stop_machine() takes a function to run @fn of type cpu_stop_fn_t as its
first parameter, which returns an int. That int is either 0 on a success
or non-zero on failure.

The ls2k_bmc_recover_pci_data() function returns "false" instead to
denote a failure, presumably, which gets promoted to a 0.

Add proper negative return values to denote the different failures
encountered.

Signed-off-by: Borislav Petkov (AMD) <bp@xxxxxxxxx>
---
drivers/mfd/ls2k-bmc-core.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/mfd/ls2k-bmc-core.c b/drivers/mfd/ls2k-bmc-core.c
index 408056bfb2fe..306e444a592a 100644
--- a/drivers/mfd/ls2k-bmc-core.c
+++ b/drivers/mfd/ls2k-bmc-core.c
@@ -268,18 +268,18 @@ static int ls2k_bmc_recover_pci_data(void *data)
}

if (i == 0)
- return false;
+ return -ETIMEDOUT;

ls2k_bmc_restore_bridge_pci_data(parent, ddata);

/* Check if PCI-E is connected */
if (!ls2k_bmc_pcie_is_connected(parent, ddata))
- return false;
+ return -EINVAL;

/* Waiting for U-Boot and DDR ready */
mdelay(LS2K_BMC_RESET_WAIT_TIME);
if (!ls2k_bmc_bar0_addr_is_set(parent))
- return false;
+ return -EINVAL;

/* Restore LS2K BMC PCI-E config data */
pci_write_config_dword(pdev, PCI_COMMAND, ddata->bmc_pci_data.pci_command);
--
2.53.0

--
Regards/Gruss,
Boris.

https://people.kernel.org/tglx/notes-about-netiquette