KASAN issues with idle / hotplug area
Mark Rutland
mark.rutland at arm.com
Thu Feb 18 03:34:07 PST 2016
On Thu, Feb 18, 2016 at 12:38:09PM +0300, Andrey Ryabinin wrote:
>
>
> On 02/18/2016 11:22 AM, Andrey Ryabinin wrote:
>
> > I see two options here:
> > * completely disable instrumentation for drivers/firmware/psci.c
> > * get back to assembly implementation
>
> One more option is to allocate struct arm_smccc_res on stack of arm_smccc_[hvc, smc](), and return res.a0
> from arm_smccc_[hvc,smc]().
In general ARM SMCCC calls can return multiple values, and there are
callers that may care (even if they're not here just yet).
So we can't change the arm_smccc_{smc,hvc} prototypes, and adding
another asm function is somewhat self-defeating (an asm caller
of arm_smccc_* is more complex and slower than a direct SMC/HVC).
> So it will look like this:
>
> asmlinkage unsigned long arm_smccc_hvc(unsigned long a0, unsigned long a1,
> unsigned long a2, unsigned long a3, unsigned long a4,
> unsigned long a5, unsigned long a6, unsigned long a7);
>
>
> static unsigned long __invoke_psci_fn_hvc(unsigned long function_id,
> unsigned long arg0, unsigned long arg1,
> unsigned long arg2)
> {
> return arm_smccc_hvc(function_id, arg0, arg1, arg2, 0, 0, 0, 0);
> }
While this looks like it might work today, it's going to be _extremely_
fragile -- other instrumentation might cause stack allocation and hence
shadow dirtying.
I'm not keen on this.
Thanks,
Mark.
More information about the linux-arm-kernel
mailing list