xref: /linux/arch/x86/entry/vdso/common/vgetcpu.c (revision 6f7e6393d1ce636bb7ec77a7fe7b77458fddf701)
1693c819fSH. Peter Anvin // SPDX-License-Identifier: GPL-2.0-only
2693c819fSH. Peter Anvin /*
3693c819fSH. Peter Anvin  * Copyright 2006 Andi Kleen, SUSE Labs.
4693c819fSH. Peter Anvin  *
5693c819fSH. Peter Anvin  * Fast user context implementation of getcpu()
6693c819fSH. Peter Anvin  */
7693c819fSH. Peter Anvin 
8693c819fSH. Peter Anvin #include <linux/kernel.h>
9693c819fSH. Peter Anvin #include <asm/segment.h>
10693c819fSH. Peter Anvin #include <vdso/processor.h>
11693c819fSH. Peter Anvin 
12693c819fSH. Peter Anvin notrace long
13*6f7e6393SLinus Torvalds __vdso_getcpu(unsigned *cpu, unsigned *node, void *unused)
14693c819fSH. Peter Anvin {
15693c819fSH. Peter Anvin 	vdso_read_cpunode(cpu, node);
16693c819fSH. Peter Anvin 
17693c819fSH. Peter Anvin 	return 0;
18693c819fSH. Peter Anvin }
19693c819fSH. Peter Anvin 
20*6f7e6393SLinus Torvalds long getcpu(unsigned *cpu, unsigned *node, void *tcache)
21693c819fSH. Peter Anvin 	__attribute__((weak, alias("__vdso_getcpu")));
22