162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci#ifndef __ALPHA_PERCPU_H
362306a36Sopenharmony_ci#define __ALPHA_PERCPU_H
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci/*
662306a36Sopenharmony_ci * To calculate addresses of locally defined variables, GCC uses
762306a36Sopenharmony_ci * 32-bit displacement from the GP. Which doesn't work for per cpu
862306a36Sopenharmony_ci * variables in modules, as an offset to the kernel per cpu area is
962306a36Sopenharmony_ci * way above 4G.
1062306a36Sopenharmony_ci *
1162306a36Sopenharmony_ci * Always use weak definitions for percpu variables in modules.
1262306a36Sopenharmony_ci */
1362306a36Sopenharmony_ci#if defined(MODULE) && defined(CONFIG_SMP)
1462306a36Sopenharmony_ci#define ARCH_NEEDS_WEAK_PER_CPU
1562306a36Sopenharmony_ci#endif
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci#include <asm-generic/percpu.h>
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci#endif /* __ALPHA_PERCPU_H */
20