Lines Matching refs:reorder_access

394 	return ctx->disable_scoped ? NULL : &ctx->reorder_access;
404 struct kcsan_scoped_access *reorder_access = get_reorder_access(ctx);
406 if (!reorder_access)
410 * Note: If accesses are repeated while reorder_access is identical,
413 return reorder_access->ptr == ptr && reorder_access->size == size &&
414 reorder_access->type == type && reorder_access->ip == ip;
421 struct kcsan_scoped_access *reorder_access = get_reorder_access(ctx);
423 if (!reorder_access || !kcsan_weak_memory)
428 * reading an inconsistent reorder_access, ensure that the below has
429 * exclusive access to reorder_access by disallowing concurrent use.
433 reorder_access->ptr = ptr;
434 reorder_access->size = size;
435 reorder_access->type = type | KCSAN_ACCESS_SCOPED;
436 reorder_access->ip = ip;
437 reorder_access->stack_depth = get_kcsan_stack_depth();
481 * reorder_access is never created from an access with access_mask set.
567 * the current access is reorder_access, disable interrupts.
758 struct kcsan_scoped_access *reorder_access = get_reorder_access(ctx);
760 if (reorder_access) {
762 * reorder_access check: simulates reordering of
765 ptr = reorder_access->ptr;
766 type = reorder_access->type;
767 ip = reorder_access->ip;
770 * reorder_access can be modified (shared ctx).
771 * We know that upon return, reorder_access is
777 size = READ_ONCE(reorder_access->size);
785 * if reorder_access is valid, checked after it was checked.
1090 * Function entry and exit are used to determine the validty of reorder_access.
1113 struct kcsan_scoped_access *reorder_access;
1118 reorder_access = get_reorder_access(get_ctx());
1119 if (!reorder_access)
1122 if (get_kcsan_stack_depth() <= reorder_access->stack_depth) {
1130 check_access(reorder_access->ptr, reorder_access->size,
1131 reorder_access->type, reorder_access->ip);
1132 reorder_access->size = 0;
1133 reorder_access->stack_depth = INT_MIN;