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 --- |