Lines Matching +full:ia32 +full:- +full:3 +full:a
1 // SPDX-License-Identifier: GPL-2.0
28 * a compiler warning when CONFIG_FRAME_WARN is set. Then make sure we
44 * - function marked noinline
45 * - stack variables are marked volatile
46 * - stack variables are written (memset()) and read (buf[..] passed as arg)
47 * - function may have external effects (memzero_explicit())
48 * - no tail recursion possible
59 ret = recursive_loop((int)buf[remaining % sizeof(buf)] - 1); in recursive_loop()
84 * have interrupts disabled and cannot take a regular IPI. in panic_stop_irqoff_fn()
86 * The last CPU which enters here will trigger a panic, and as all CPUs in panic_stop_irqoff_fn()
87 * cannot take a regular IPI, we'll only be able to stop secondaries if in panic_stop_irqoff_fn()
154 /* Same as above but will only get a canary with -fstack-protector-strong */
180 pr_info("Stack offset: %d\n", (int)(stack_addr - (uintptr_t)&magic)); in lkdtm_REPORT_STACK()
194 /* Do our best to find the canary in a 16 word window ... */ in __lkdtm_REPORT_STACK_CANARY()
198 if (*canary == current->stack_canary) in __lkdtm_REPORT_STACK_CANARY()
208 * we're either using a global canary or the stack frame in __lkdtm_REPORT_STACK_CANARY()
232 pr_warn("ERROR: saw pid %d again -- please use a new pid\n", pid); in __lkdtm_REPORT_STACK_CANARY()
262 static u8 data[5] __attribute__((aligned(4))) = {1, 2, 3, 4, 5}; in lkdtm_UNALIGNED_LOAD_STORE_WRITE()
333 static volatile unsigned int huge = INT_MAX - 2;
395 for (i = 0; i < sizeof(checked->data); i++) in lkdtm_ARRAY_BOUNDS()
396 checked->data[i] = 'A'; in lkdtm_ARRAY_BOUNDS()
402 not_checked->data[i] = 'A'; in lkdtm_ARRAY_BOUNDS()
405 for (i = 0; i < sizeof(checked->data) + 1; i++) in lkdtm_ARRAY_BOUNDS()
406 checked->data[i] = 'B'; in lkdtm_ARRAY_BOUNDS()
435 inst->count = fam_count; in lkdtm_FAM_BOUNDS()
437 inst->array[1] = fam_count; in lkdtm_FAM_BOUNDS()
438 ignored = inst->array[1]; in lkdtm_FAM_BOUNDS()
441 inst->array[fam_count] = fam_count; in lkdtm_FAM_BOUNDS()
442 ignored = inst->array[fam_count]; in lkdtm_FAM_BOUNDS()
449 …pr_warn("This is expected since this %s was built with a compiler that does not support __counted_… in lkdtm_FAM_BOUNDS()
473 * test_head.next->prev = &good.node in lkdtm_CORRUPT_LIST_ADD()
524 /* Test that VMAP_STACK is actually allocating with a leading guard page */
528 const unsigned char *ptr = stack - 1; in lkdtm_STACK_GUARD_PAGE_LEADING()
538 /* Test that VMAP_STACK is actually allocating with a trailing guard page */
581 * To test the post-write pinning verification we need to call in lkdtm_UNSET_SMEP()
594 insn[i+2] == 0xf8 && insn[i+3] == 0x0f && in lkdtm_UNSET_SMEP()
615 pr_err("XFAIL: this test is x86_64-only\n"); in lkdtm_UNSET_SMEP()
624 * a GDT TLS slot, which is okay because the current task will die in lkdtm_DOUBLE_FAULT()
628 .type = 3, /* expand-up, writable, accessed data */ in lkdtm_DOUBLE_FAULT()
630 .d = 1, /* 32-bit */ in lkdtm_DOUBLE_FAULT()
640 * Put our zero-limit segment in SS and then trigger a fault. The in lkdtm_DOUBLE_FAULT()
641 * 4-byte access to (%esp) will fault with #SS, and the attempt to in lkdtm_DOUBLE_FAULT()
645 * would also double-fault, resulting in the NMI or MCE being lost. in lkdtm_DOUBLE_FAULT()
648 "r" ((unsigned short)(GDT_ENTRY_TLS_MIN << 3))); in lkdtm_DOUBLE_FAULT()
652 pr_err("XFAIL: this test is ia32-only\n"); in lkdtm_DOUBLE_FAULT()
683 * PAC is a hash value computed from input keys, return address and in lkdtm_CORRUPT_PAC()
684 * stack pointer. As pac has fewer bits so there is a chance of in lkdtm_CORRUPT_PAC()
692 pr_err("XFAIL: this test is arm64-only\n"); in lkdtm_CORRUPT_PAC()