Thread (78 messages) 78 messages, 10 authors, 2016-02-18

KASAN issues with idle / hotplug area

From: Andrey Ryabinin <hidden>
Date: 2016-02-18 11:45:31


On 02/18/2016 12:39 PM, Lorenzo Pieralisi wrote:
On Thu, Feb 18, 2016 at 11:22:24AM +0300, Andrey Ryabinin wrote:

[...]
quoted
quoted
I also tried using __attribute__((no_sanitize_address)) directly, in
case there was some header issue, but that doesn't seem to be the case.

I'm using the Linaro 15.08 AArch64 GCC 5.1. Is anyone else able to
confirm whether they see the same? Does the same happen for x86?
Confirming, this happens on every GCC I have (including x86).
It seems that 'no_sanitize_address' in gcc removes only memory access checks
but it doesn't remove stack redzones.
I think this is wrong, e.g. clang removes instrumentation completely. I'll submit a bug.

But we need fix this in kernel.
I see two options here:
 * completely disable instrumentation for drivers/firmware/psci.c
We have to have a way to disable instrumentation for functions that
are used to call into FW and return via different code paths.
Unfortunately gcc doesn't allow us to do this yet.

quoted
 * get back to assembly implementation
No, we are certainly not reverting the SMCCC work because Kasan adds
instrumentation to C functions, that's not even an option.

Is it possible at all to implement a function to remove instrumentation
for a chunk of memory (ie resetting the shadow memory to a clean slate
for a range of stack addresses) ?

Yes, that's possible. We can tell that function resume SP, it can zero out all shadow for stack bellow that SP.
Thanks,
Lorenzo
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help