diff mbox series

firmware: qcom: scm: fix non-SMP build

Message ID 20211027072427.2730827-1-arnd@kernel.org (mailing list archive)
State Changes Requested
Headers show
Series firmware: qcom: scm: fix non-SMP build | expand

Commit Message

Arnd Bergmann Oct. 27, 2021, 7:24 a.m. UTC
From: Arnd Bergmann <arnd@arndb.de>

A check was added for non-arm platforms, but the same code
is still broken on Arm non-SMP:

ERROR: modpost: "__cpu_logical_map" [drivers/firmware/qcom-scm.ko] undefined!

Fixes: c50031f03dfe ("firmware: qcom: scm: Don't break compile test on non-ARM platforms")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/firmware/qcom_scm.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Arnd Bergmann Oct. 27, 2021, 8:49 a.m. UTC | #1
On Wed, Oct 27, 2021 at 9:24 AM Arnd Bergmann <arnd@kernel.org> wrote:
>
> From: Arnd Bergmann <arnd@arndb.de>
>
> A check was added for non-arm platforms, but the same code
> is still broken on Arm non-SMP:
>
> ERROR: modpost: "__cpu_logical_map" [drivers/firmware/qcom-scm.ko] undefined!
>
> Fixes: c50031f03dfe ("firmware: qcom: scm: Don't break compile test on non-ARM platforms")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Nevermind, this is not sufficient, as the symbol is not actually
exported, so this still
fails on SMP configurations, both 32 and 64 bit.

Any ideas for a better fix, or should I revert 55845f46df03
("firmware: qcom: scm:
Add support for MC boot address API") for the merge window?

       Arnd
Bjorn Andersson Oct. 27, 2021, 2:09 p.m. UTC | #2
On Wed 27 Oct 01:49 PDT 2021, Arnd Bergmann wrote:

> On Wed, Oct 27, 2021 at 9:24 AM Arnd Bergmann <arnd@kernel.org> wrote:
> >
> > From: Arnd Bergmann <arnd@arndb.de>
> >
> > A check was added for non-arm platforms, but the same code
> > is still broken on Arm non-SMP:
> >
> > ERROR: modpost: "__cpu_logical_map" [drivers/firmware/qcom-scm.ko] undefined!
> >
> > Fixes: c50031f03dfe ("firmware: qcom: scm: Don't break compile test on non-ARM platforms")
> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> 
> Nevermind, this is not sufficient, as the symbol is not actually
> exported, so this still
> fails on SMP configurations, both 32 and 64 bit.
> 

Damn, it seems I only compile tested it on the three platforms with
configurations where it ended up =y in the end.

> Any ideas for a better fix, or should I revert 55845f46df03
> ("firmware: qcom: scm:
> Add support for MC boot address API") for the merge window?
> 

Let's revert the patch (and the fix) for v5.16 and try to figure this
one out for next round.

Regards,
Bjorn
diff mbox series

Patch

diff --git a/drivers/firmware/qcom_scm.c b/drivers/firmware/qcom_scm.c
index 11464f6502be..f08036f8c296 100644
--- a/drivers/firmware/qcom_scm.c
+++ b/drivers/firmware/qcom_scm.c
@@ -17,7 +17,7 @@ 
 #include <linux/reset-controller.h>
 #include <linux/arm-smccc.h>
 
-#if defined(CONFIG_ARM) || defined(CONFIG_ARM64)
+#if defined(CONFIG_SMP) && (defined(CONFIG_ARM) || defined(CONFIG_ARM64))
 #include <asm/smp_plat.h>
 #endif
 
@@ -264,7 +264,7 @@  static bool __qcom_scm_is_call_available(struct device *dev, u32 svc_id,
 	return ret ? false : !!res.result[0];
 }
 
-#if defined(CONFIG_ARM) || defined(CONFIG_ARM64)
+#if defined(CONFIG_SMP) && (defined(CONFIG_ARM) || defined(CONFIG_ARM64))
 static int __qcom_scm_set_boot_addr_mc(void *entry, const cpumask_t *cpus,
 				       unsigned int flags)
 {