Loading...
1/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * Userland implementation of getcpu() for 32 bits processes in a
4 * s390 kernel for use in the vDSO
5 *
6 * Copyright IBM Corp. 2016
7 * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>
8 */
9#include <asm/vdso.h>
10#include <asm/asm-offsets.h>
11#include <asm/dwarf.h>
12
13 .text
14 .align 4
15 .globl __kernel_getcpu
16 .type __kernel_getcpu,@function
17__kernel_getcpu:
18 CFI_STARTPROC
19 la %r4,0
20 sacf 256
21 l %r5,__VDSO_CPU_NR(%r4)
22 l %r4,__VDSO_NODE_ID(%r4)
23 sacf 0
24 ltr %r2,%r2
25 jz 2f
26 st %r5,0(%r2)
272: ltr %r3,%r3
28 jz 3f
29 st %r4,0(%r3)
303: lhi %r2,0
31 br %r14
32 CFI_ENDPROC
33 .size __kernel_getcpu,.-__kernel_getcpu