ovl: factor out ovl_get_index_fh() helper
[linux/fpc-iii.git] / arch / s390 / kernel / vdso32 / getcpu.S
blob5477a2c112fb800e3c1013cb17a03a1d6aa47228
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>
12         .text
13         .align 4
14         .globl __kernel_getcpu
15         .type  __kernel_getcpu,@function
16 __kernel_getcpu:
17         .cfi_startproc
18         la      %r4,0
19         sacf    256
20         l       %r5,__VDSO_CPU_NR(%r4)
21         l       %r4,__VDSO_NODE_ID(%r4)
22         sacf    0
23         ltr     %r2,%r2
24         jz      2f
25         st      %r5,0(%r2)
26 2:      ltr     %r3,%r3
27         jz      3f
28         st      %r4,0(%r3)
29 3:      lhi     %r2,0
30         br      %r14
31         .cfi_endproc
32         .size   __kernel_getcpu,.-__kernel_getcpu