|
@@ -38,25 +38,26 @@ __kernel_clock_gettime:
|
|
|
sl %r1,__VDSO_XTIME_STAMP+4(%r5)
|
|
|
brc 3,2f
|
|
|
ahi %r0,-1
|
|
|
-2: ms %r0,__VDSO_NTP_MULT(%r5) /* cyc2ns(clock,cycle_delta) */
|
|
|
+2: ms %r0,__VDSO_TK_MULT(%r5) /* * tk->mult */
|
|
|
lr %r2,%r0
|
|
|
- l %r0,__VDSO_NTP_MULT(%r5)
|
|
|
+ l %r0,__VDSO_TK_MULT(%r5)
|
|
|
ltr %r1,%r1
|
|
|
mr %r0,%r0
|
|
|
jnm 3f
|
|
|
- a %r0,__VDSO_NTP_MULT(%r5)
|
|
|
+ a %r0,__VDSO_TK_MULT(%r5)
|
|
|
3: alr %r0,%r2
|
|
|
- srdl %r0,12
|
|
|
- al %r0,__VDSO_XTIME_NSEC(%r5) /* + xtime */
|
|
|
+ al %r0,__VDSO_XTIME_NSEC(%r5) /* + tk->xtime_nsec */
|
|
|
al %r1,__VDSO_XTIME_NSEC+4(%r5)
|
|
|
brc 12,4f
|
|
|
ahi %r0,1
|
|
|
-4: l %r2,__VDSO_XTIME_SEC+4(%r5)
|
|
|
- al %r0,__VDSO_WTOM_NSEC(%r5) /* + wall_to_monotonic */
|
|
|
+4: al %r0,__VDSO_WTOM_NSEC(%r5) /* + wall_to_monotonic.nsec */
|
|
|
al %r1,__VDSO_WTOM_NSEC+4(%r5)
|
|
|
brc 12,5f
|
|
|
ahi %r0,1
|
|
|
-5: al %r2,__VDSO_WTOM_SEC+4(%r5)
|
|
|
+5: l %r2,__VDSO_TK_SHIFT(%r5) /* Timekeeper shift */
|
|
|
+ srdl %r0,0(%r2) /* >> tk->shift */
|
|
|
+ l %r2,__VDSO_XTIME_SEC+4(%r5)
|
|
|
+ al %r2,__VDSO_WTOM_SEC+4(%r5)
|
|
|
cl %r4,__VDSO_UPD_COUNT+4(%r5) /* check update counter */
|
|
|
jne 1b
|
|
|
basr %r5,0
|
|
@@ -86,20 +87,21 @@ __kernel_clock_gettime:
|
|
|
sl %r1,__VDSO_XTIME_STAMP+4(%r5)
|
|
|
brc 3,12f
|
|
|
ahi %r0,-1
|
|
|
-12: ms %r0,__VDSO_NTP_MULT(%r5) /* cyc2ns(clock,cycle_delta) */
|
|
|
+12: ms %r0,__VDSO_TK_MULT(%r5) /* * tk->mult */
|
|
|
lr %r2,%r0
|
|
|
- l %r0,__VDSO_NTP_MULT(%r5)
|
|
|
+ l %r0,__VDSO_TK_MULT(%r5)
|
|
|
ltr %r1,%r1
|
|
|
mr %r0,%r0
|
|
|
jnm 13f
|
|
|
- a %r0,__VDSO_NTP_MULT(%r5)
|
|
|
+ a %r0,__VDSO_TK_MULT(%r5)
|
|
|
13: alr %r0,%r2
|
|
|
- srdl %r0,12
|
|
|
- al %r0,__VDSO_XTIME_NSEC(%r5) /* + xtime */
|
|
|
+ al %r0,__VDSO_XTIME_NSEC(%r5) /* + tk->xtime_nsec */
|
|
|
al %r1,__VDSO_XTIME_NSEC+4(%r5)
|
|
|
brc 12,14f
|
|
|
ahi %r0,1
|
|
|
-14: l %r2,__VDSO_XTIME_SEC+4(%r5)
|
|
|
+14: l %r2,__VDSO_TK_SHIFT(%r5) /* Timekeeper shift */
|
|
|
+ srdl %r0,0(%r2) /* >> tk->shift */
|
|
|
+ l %r2,__VDSO_XTIME_SEC+4(%r5)
|
|
|
cl %r4,__VDSO_UPD_COUNT+4(%r5) /* check update counter */
|
|
|
jne 11b
|
|
|
basr %r5,0
|