Re: [PATCH] ARM: OMAP2+: Fix compile if CONFIG_HAVE_ARM_SMCCC is not set

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



* Tony Lindgren <tony@xxxxxxxxxxx> [200221 20:16]:
> * Arnd Bergmann <arnd@xxxxxxxx> [200221 20:06]:
> > On Fri, Feb 21, 2020 at 7:09 PM Tony Lindgren <tony@xxxxxxxxxxx> wrote:
> > >
> > > Recent omap changes added runtime checks to use omap_smccc_smc()
> > > when optee is configured in dts. As the omap-secure code can be
> > > built for ARMv6 only without ARMv7 and use custom smc calls, we
> > > now get a build error:
> > >
> > > omap-secure.c:(.text+0x94): undefined reference to `__arm_smccc_smc'
> > >
> > > Let's just ifdef out omap_smccc_smc() unless the CPU has selected
> > > CONFIG_HAVE_ARM_SMCCC. The other option discussed was to add an
> > > inline function to arm-smccc.h, but we'd still also have to add
> > > ifdef around omap_smccc_smc() to avoid a warning for uninitialized
> > > value for struct arm_smccc_res in omap_smccc_smc(). And we probably
> > > should not start initializing values in arm-smccc.h if disabled.
> > >
> > > Let's also warn on trying to use omap_smccc_smc() if disabled as
> > > suggested by Andrew F. Davis <afd@xxxxxx>.
> > >
> > > +#ifdef CONFIG_HAVE_ARM_SMCCC
> > >  void omap_smccc_smc(u32 fn, u32 arg)
> > >  {
> > >         struct arm_smccc_res res;
> > > @@ -85,6 +86,12 @@ void omap_smccc_smc(u32 fn, u32 arg)
> > >                       0, 0, 0, 0, 0, 0, &res);
> > >         WARN(res.a0, "Secure function call 0x%08x failed\n", fn);
> > >  }
> > > +#else
> > 
> > Looking through the callers again, this can and is only called
> > for ARMv7 CPUs, so can't you just avoid the #else path and
> > turn it into a link error if we ever get callers on ARMv6-only builds?
> 
> Hmm yeah maybe. If ARMv6 machines (basically n8x0) is not using
> omap-smc.S at all, it's unlike it would need omap-secure.c either.

Yeah we never built secure-common for omap2 earlier, this got
recently added. My guess is that n8x0 only has a signed bootloader
and no smc calls at all, or at least we don't use any smc calls
for n8x0 in the kernel.

I'll send out v2 of the patch.

Regards,

Tony



[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux