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 |
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
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 --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) {