On 19/10/2018 12:15, Catalin Marinas wrote: > On Fri, Oct 05, 2018 at 09:47:44AM +0100, Kristina Martsenko wrote: >> diff --git a/arch/arm64/include/asm/pointer_auth.h b/arch/arm64/include/asm/pointer_auth.h >> new file mode 100644 >> index 000000000000..2aefedc31d9e >> --- /dev/null >> +++ b/arch/arm64/include/asm/pointer_auth.h >> @@ -0,0 +1,63 @@ >> +// SPDX-License-Identifier: GPL-2.0 >> +#ifndef __ASM_POINTER_AUTH_H >> +#define __ASM_POINTER_AUTH_H >> + >> +#include <linux/random.h> >> + >> +#include <asm/cpufeature.h> >> +#include <asm/sysreg.h> >> + >> +#ifdef CONFIG_ARM64_PTR_AUTH >> +/* >> + * Each key is a 128-bit quantity which is split across a pair of 64-bit >> + * registers (Lo and Hi). >> + */ >> +struct ptrauth_key { >> + unsigned long lo, hi; >> +}; >> + >> +/* >> + * We give each process its own instruction A key (APIAKey), which is shared by >> + * all threads. This is inherited upon fork(), and reinitialised upon exec*(). >> + * All other keys are currently unused, with APIBKey, APDAKey, and APBAKey >> + * instructions behaving as NOPs. >> + */ > > I don't remember the past discussions but I assume the tools guys are ok > with a single key shared by multiple threads. Ramana, could you ack this > part, FTR? Sorry about the slow response, I've been traveling. Ack and Will's response covers the reasons why pretty well. A prctl call would be a good enhancement. regards Ramana