percpu.h (498495dba268b20e8eadd7fe93c140c68b6cc9d2) percpu.h (67626fadd26977aca76d3540b80ce99233399cdf)
1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef __ARCH_S390_PERCPU__
3#define __ARCH_S390_PERCPU__
4
5#include <linux/preempt.h>
6#include <asm/cmpxchg.h>
7
8/*
9 * s390 uses its own implementation for per cpu data, the offset of
10 * the cpu local data area is cached in the cpu's lowcore memory.
11 */
12#define __my_cpu_offset S390_lowcore.percpu_offset
13
14/*
15 * For 64 bit module code, the module may be more than 4G above the
16 * per cpu area, use weak definitions to force the compiler to
17 * generate external references.
18 */
1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef __ARCH_S390_PERCPU__
3#define __ARCH_S390_PERCPU__
4
5#include <linux/preempt.h>
6#include <asm/cmpxchg.h>
7
8/*
9 * s390 uses its own implementation for per cpu data, the offset of
10 * the cpu local data area is cached in the cpu's lowcore memory.
11 */
12#define __my_cpu_offset S390_lowcore.percpu_offset
13
14/*
15 * For 64 bit module code, the module may be more than 4G above the
16 * per cpu area, use weak definitions to force the compiler to
17 * generate external references.
18 */
19#if defined(CONFIG_SMP) && defined(MODULE)
19#if defined(MODULE)
20#define ARCH_NEEDS_WEAK_PER_CPU
21#endif
22
23/*
24 * We use a compare-and-swap loop since that uses less cpu cycles than
25 * disabling and enabling interrupts like the generic variant would do.
26 */
27#define arch_this_cpu_to_op_simple(pcp, val, op) \

--- 159 unchanged lines hidden ---
20#define ARCH_NEEDS_WEAK_PER_CPU
21#endif
22
23/*
24 * We use a compare-and-swap loop since that uses less cpu cycles than
25 * disabling and enabling interrupts like the generic variant would do.
26 */
27#define arch_this_cpu_to_op_simple(pcp, val, op) \

--- 159 unchanged lines hidden ---