arch/x86/mm/kmsan_shadow.c

Source file repositories/reference/linux-study-clean/arch/x86/mm/kmsan_shadow.c

File Facts

System
Linux kernel
Corpus path
arch/x86/mm/kmsan_shadow.c
Extension
.c
Size
712 bytes
Lines
21
Domain
Architecture Layer
Bucket
arch/x86
Inferred role
Architecture Layer: implementation source
Status
source implementation candidate

Why This File Exists

CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.

Dependency Surface

Detected Declarations

Annotated Snippet

// SPDX-License-Identifier: GPL-2.0
/*
 * x86-specific bits of KMSAN shadow implementation.
 *
 * Copyright (C) 2022 Google LLC
 * Author: Alexander Potapenko <glider@google.com>
 */

#include <asm/cpu_entry_area.h>
#include <linux/percpu-defs.h>

/*
 * Addresses within the CPU entry area (including e.g. exception stacks) do not
 * have struct page entries corresponding to them, so they need separate
 * handling.
 * arch_kmsan_get_meta_or_null() (declared in the header) maps the addresses in
 * CPU entry area to addresses in cpu_entry_area_shadow/cpu_entry_area_origin.
 */
DEFINE_PER_CPU(char[CPU_ENTRY_AREA_SIZE], cpu_entry_area_shadow);
DEFINE_PER_CPU(char[CPU_ENTRY_AREA_SIZE], cpu_entry_area_origin);

Annotation

Implementation Notes