17e300dabSThomas Gleixner // SPDX-License-Identifier: GPL-2.0-only 2d603c8e1SIngo Molnar /* 3d603c8e1SIngo Molnar * Copyright 2006 Andi Kleen, SUSE Labs. 4d603c8e1SIngo Molnar * 5d603c8e1SIngo Molnar * Fast user context implementation of getcpu() 6d603c8e1SIngo Molnar */ 7d603c8e1SIngo Molnar 8d603c8e1SIngo Molnar #include <linux/kernel.h> 9d603c8e1SIngo Molnar #include <linux/getcpu.h> 1092d33063SSebastian Andrzej Siewior #include <asm/segment.h> 11*3e0bd4ddSArnd Bergmann #include <vdso/processor.h> 12d603c8e1SIngo Molnar 13d603c8e1SIngo Molnar notrace long __vdso_getcpu(unsigned * cpu,unsigned * node,struct getcpu_cache * unused)14d603c8e1SIngo Molnar__vdso_getcpu(unsigned *cpu, unsigned *node, struct getcpu_cache *unused) 15d603c8e1SIngo Molnar { 1622245bdfSIngo Molnar vdso_read_cpunode(cpu, node); 17ec3a9418SIngo Molnar 18d603c8e1SIngo Molnar return 0; 19d603c8e1SIngo Molnar } 20d603c8e1SIngo Molnar 21d603c8e1SIngo Molnar long getcpu(unsigned *cpu, unsigned *node, struct getcpu_cache *tcache) 22d603c8e1SIngo Molnar __attribute__((weak, alias("__vdso_getcpu"))); 23