162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * x86-specific bits of KMSAN shadow implementation. 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Copyright (C) 2022 Google LLC 662306a36Sopenharmony_ci * Author: Alexander Potapenko <glider@google.com> 762306a36Sopenharmony_ci */ 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci#include <asm/cpu_entry_area.h> 1062306a36Sopenharmony_ci#include <linux/percpu-defs.h> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci/* 1362306a36Sopenharmony_ci * Addresses within the CPU entry area (including e.g. exception stacks) do not 1462306a36Sopenharmony_ci * have struct page entries corresponding to them, so they need separate 1562306a36Sopenharmony_ci * handling. 1662306a36Sopenharmony_ci * arch_kmsan_get_meta_or_null() (declared in the header) maps the addresses in 1762306a36Sopenharmony_ci * CPU entry area to addresses in cpu_entry_area_shadow/cpu_entry_area_origin. 1862306a36Sopenharmony_ci */ 1962306a36Sopenharmony_ciDEFINE_PER_CPU(char[CPU_ENTRY_AREA_SIZE], cpu_entry_area_shadow); 2062306a36Sopenharmony_ciDEFINE_PER_CPU(char[CPU_ENTRY_AREA_SIZE], cpu_entry_area_origin); 21