Subject: KASAN issues with idle / hotplug area

From: [email-masked] (Andrey Ryabinin)
Date: Thu, 18 Feb 2016 12:38:09 +0300

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]().

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);
}