diff options
Diffstat (limited to 'drivers/misc/lkdtm/bugs.c')
| -rw-r--r-- | drivers/misc/lkdtm/bugs.c | 17 | 
1 files changed, 17 insertions, 0 deletions
| diff --git a/drivers/misc/lkdtm/bugs.c b/drivers/misc/lkdtm/bugs.c index 110f5a8538e9..0e8254d0cf0b 100644 --- a/drivers/misc/lkdtm/bugs.c +++ b/drivers/misc/lkdtm/bugs.c @@ -134,6 +134,23 @@ noinline void lkdtm_CORRUPT_STACK_STRONG(void)  	__lkdtm_CORRUPT_STACK((void *)&data);  } +static pid_t stack_pid; +static unsigned long stack_addr; + +void lkdtm_REPORT_STACK(void) +{ +	volatile uintptr_t magic; +	pid_t pid = task_pid_nr(current); + +	if (pid != stack_pid) { +		pr_info("Starting stack offset tracking for pid %d\n", pid); +		stack_pid = pid; +		stack_addr = (uintptr_t)&magic; +	} + +	pr_info("Stack offset: %d\n", (int)(stack_addr - (uintptr_t)&magic)); +} +  void lkdtm_UNALIGNED_LOAD_STORE_WRITE(void)  {  	static u8 data[5] __attribute__((aligned(4))) = {1, 2, 3, 4, 5}; | 
