summaryrefslogtreecommitdiff
path: root/include/asm-x86/stackprotector.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-x86/stackprotector.h')
-rw-r--r--include/asm-x86/stackprotector.h38
1 files changed, 0 insertions, 38 deletions
diff --git a/include/asm-x86/stackprotector.h b/include/asm-x86/stackprotector.h
deleted file mode 100644
index 3baf7ad89be1..000000000000
--- a/include/asm-x86/stackprotector.h
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifndef _ASM_STACKPROTECTOR_H
-#define _ASM_STACKPROTECTOR_H 1
-
-#include <asm/tsc.h>
-
-/*
- * Initialize the stackprotector canary value.
- *
- * NOTE: this must only be called from functions that never return,
- * and it must always be inlined.
- */
-static __always_inline void boot_init_stack_canary(void)
-{
- u64 canary;
- u64 tsc;
-
- /*
- * If we're the non-boot CPU, nothing set the PDA stack
- * canary up for us - and if we are the boot CPU we have
- * a 0 stack canary. This is a good place for updating
- * it, as we wont ever return from this function (so the
- * invalid canaries already on the stack wont ever
- * trigger).
- *
- * We both use the random pool and the current TSC as a source
- * of randomness. The TSC only matters for very early init,
- * there it already has some randomness on most systems. Later
- * on during the bootup the random pool has true entropy too.
- */
- get_random_bytes(&canary, sizeof(canary));
- tsc = __native_read_tsc();
- canary += tsc + (tsc << 32UL);
-
- current->stack_canary = canary;
- write_pda(stack_canary, canary);
-}
-
-#endif