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()
303 static volatile unsigned int huge = INT_MAX - 2;
365 for (i = 0; i < sizeof(checked->data); i++) in lkdtm_ARRAY_BOUNDS()
366 checked->data[i] = 'A'; in lkdtm_ARRAY_BOUNDS()
372 not_checked->data[i] = 'A'; in lkdtm_ARRAY_BOUNDS()
375 for (i = 0; i < sizeof(checked->data) + 1; i++) in lkdtm_ARRAY_BOUNDS()
376 checked->data[i] = 'B'; in lkdtm_ARRAY_BOUNDS()
405 inst->count = fam_count; in lkdtm_FAM_BOUNDS()
407 inst->array[1] = fam_count; in lkdtm_FAM_BOUNDS()
408 ignored = inst->array[1]; in lkdtm_FAM_BOUNDS()
411 inst->array[fam_count] = fam_count; in lkdtm_FAM_BOUNDS()
412 ignored = inst->array[fam_count]; in lkdtm_FAM_BOUNDS()
419 pr_warn("This is expected since this %s was built a compiler supporting __counted_by\n", in lkdtm_FAM_BOUNDS()
443 * test_head.next->prev = &good.node in lkdtm_CORRUPT_LIST_ADD()
494 /* Test that VMAP_STACK is actually allocating with a leading guard page */
498 const unsigned char *ptr = stack - 1; in lkdtm_STACK_GUARD_PAGE_LEADING()
508 /* Test that VMAP_STACK is actually allocating with a trailing guard page */
551 * To test the post-write pinning verification we need to call in lkdtm_UNSET_SMEP()
564 insn[i+2] == 0xf8 && insn[i+3] == 0x0f && in lkdtm_UNSET_SMEP()
585 pr_err("XFAIL: this test is x86_64-only\n"); in lkdtm_UNSET_SMEP()
594 * a GDT TLS slot, which is okay because the current task will die in lkdtm_DOUBLE_FAULT()
598 .type = 3, /* expand-up, writable, accessed data */ in lkdtm_DOUBLE_FAULT()
600 .d = 1, /* 32-bit */ in lkdtm_DOUBLE_FAULT()
610 * Put our zero-limit segment in SS and then trigger a fault. The in lkdtm_DOUBLE_FAULT()
611 * 4-byte access to (%esp) will fault with #SS, and the attempt to in lkdtm_DOUBLE_FAULT()
615 * would also double-fault, resulting in the NMI or MCE being lost. in lkdtm_DOUBLE_FAULT()
618 "r" ((unsigned short)(GDT_ENTRY_TLS_MIN << 3))); in lkdtm_DOUBLE_FAULT()
622 pr_err("XFAIL: this test is ia32-only\n"); in lkdtm_DOUBLE_FAULT()
653 * PAC is a hash value computed from input keys, return address and in lkdtm_CORRUPT_PAC()
654 * stack pointer. As pac has fewer bits so there is a chance of in lkdtm_CORRUPT_PAC()
662 pr_err("XFAIL: this test is arm64-only\n"); in lkdtm_CORRUPT_PAC()