diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-11-09 22:24:26 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-11-09 22:24:26 -0500 |
commit | cc03f9bc2650634ce5ec0233f5ee12e6b67f74c6 (patch) | |
tree | fc9726003631b9ed9da7fc73db53ed47317198cf /arch/s390/kernel/vdso32/gettimeofday.S | |
parent | d48037f9169f653d1124eb75157293d875e7e57f (diff) | |
parent | 206c5f60a3d902bc4b56dab2de3e88de5eb06108 (diff) |
Merge 3.18-rc4 into staging-next
We want the staging fixes in here as well.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'arch/s390/kernel/vdso32/gettimeofday.S')
-rw-r--r-- | arch/s390/kernel/vdso32/gettimeofday.S | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/arch/s390/kernel/vdso32/gettimeofday.S b/arch/s390/kernel/vdso32/gettimeofday.S index 60def5f562db..719de6186b20 100644 --- a/arch/s390/kernel/vdso32/gettimeofday.S +++ b/arch/s390/kernel/vdso32/gettimeofday.S | |||
@@ -19,6 +19,7 @@ | |||
19 | .type __kernel_gettimeofday,@function | 19 | .type __kernel_gettimeofday,@function |
20 | __kernel_gettimeofday: | 20 | __kernel_gettimeofday: |
21 | .cfi_startproc | 21 | .cfi_startproc |
22 | ahi %r15,-16 | ||
22 | basr %r5,0 | 23 | basr %r5,0 |
23 | 0: al %r5,13f-0b(%r5) /* get &_vdso_data */ | 24 | 0: al %r5,13f-0b(%r5) /* get &_vdso_data */ |
24 | 1: ltr %r3,%r3 /* check if tz is NULL */ | 25 | 1: ltr %r3,%r3 /* check if tz is NULL */ |
@@ -29,30 +30,30 @@ __kernel_gettimeofday: | |||
29 | l %r4,__VDSO_UPD_COUNT+4(%r5) /* load update counter */ | 30 | l %r4,__VDSO_UPD_COUNT+4(%r5) /* load update counter */ |
30 | tml %r4,0x0001 /* pending update ? loop */ | 31 | tml %r4,0x0001 /* pending update ? loop */ |
31 | jnz 1b | 32 | jnz 1b |
32 | stcke 24(%r15) /* Store TOD clock */ | 33 | stcke 0(%r15) /* Store TOD clock */ |
33 | lm %r0,%r1,25(%r15) | 34 | lm %r0,%r1,1(%r15) |
34 | s %r0,__VDSO_XTIME_STAMP(%r5) /* TOD - cycle_last */ | 35 | s %r0,__VDSO_XTIME_STAMP(%r5) /* TOD - cycle_last */ |
35 | sl %r1,__VDSO_XTIME_STAMP+4(%r5) | 36 | sl %r1,__VDSO_XTIME_STAMP+4(%r5) |
36 | brc 3,3f | 37 | brc 3,3f |
37 | ahi %r0,-1 | 38 | ahi %r0,-1 |
38 | 3: ms %r0,__VDSO_TK_MULT(%r5) /* * tk->mult */ | 39 | 3: ms %r0,__VDSO_TK_MULT(%r5) /* * tk->mult */ |
39 | st %r0,24(%r15) | 40 | st %r0,0(%r15) |
40 | l %r0,__VDSO_TK_MULT(%r5) | 41 | l %r0,__VDSO_TK_MULT(%r5) |
41 | ltr %r1,%r1 | 42 | ltr %r1,%r1 |
42 | mr %r0,%r0 | 43 | mr %r0,%r0 |
43 | jnm 4f | 44 | jnm 4f |
44 | a %r0,__VDSO_TK_MULT(%r5) | 45 | a %r0,__VDSO_TK_MULT(%r5) |
45 | 4: al %r0,24(%r15) | 46 | 4: al %r0,0(%r15) |
46 | al %r0,__VDSO_XTIME_NSEC(%r5) /* + xtime */ | 47 | al %r0,__VDSO_XTIME_NSEC(%r5) /* + xtime */ |
47 | al %r1,__VDSO_XTIME_NSEC+4(%r5) | 48 | al %r1,__VDSO_XTIME_NSEC+4(%r5) |
48 | brc 12,5f | 49 | brc 12,5f |
49 | ahi %r0,1 | 50 | ahi %r0,1 |
50 | 5: mvc 24(4,%r15),__VDSO_XTIME_SEC+4(%r5) | 51 | 5: mvc 0(4,%r15),__VDSO_XTIME_SEC+4(%r5) |
51 | cl %r4,__VDSO_UPD_COUNT+4(%r5) /* check update counter */ | 52 | cl %r4,__VDSO_UPD_COUNT+4(%r5) /* check update counter */ |
52 | jne 1b | 53 | jne 1b |
53 | l %r4,__VDSO_TK_SHIFT(%r5) /* Timekeeper shift */ | 54 | l %r4,__VDSO_TK_SHIFT(%r5) /* Timekeeper shift */ |
54 | srdl %r0,0(%r4) /* >> tk->shift */ | 55 | srdl %r0,0(%r4) /* >> tk->shift */ |
55 | l %r4,24(%r15) /* get tv_sec from stack */ | 56 | l %r4,0(%r15) /* get tv_sec from stack */ |
56 | basr %r5,0 | 57 | basr %r5,0 |
57 | 6: ltr %r0,%r0 | 58 | 6: ltr %r0,%r0 |
58 | jnz 7f | 59 | jnz 7f |
@@ -71,6 +72,7 @@ __kernel_gettimeofday: | |||
71 | 9: srl %r0,6 | 72 | 9: srl %r0,6 |
72 | st %r0,4(%r2) /* store tv->tv_usec */ | 73 | st %r0,4(%r2) /* store tv->tv_usec */ |
73 | 10: slr %r2,%r2 | 74 | 10: slr %r2,%r2 |
75 | ahi %r15,16 | ||
74 | br %r14 | 76 | br %r14 |
75 | 11: .long 1000000000 | 77 | 11: .long 1000000000 |
76 | 12: .long 274877907 | 78 | 12: .long 274877907 |