Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
xenomai
ipipe
Commits
09d28165
Commit
09d28165
authored
Nov 23, 2015
by
Gilles Chanteperdrix
Committed by
Philippe Gerum
Feb 28, 2016
Browse files
arm/ipipe: fix time update with vdso
parent
de8f9aa7
Changes
3
Hide whitespace changes
Inline
Side-by-side
arch/arm/include/asm/ipipe.h
View file @
09d28165
...
...
@@ -46,6 +46,7 @@ extern unsigned long arm_return_addr(int level);
#define IPIPE_CORE_RELEASE 1
struct
ipipe_domain
;
struct
timekeeper
;
#define IPIPE_TSC_TYPE_NONE 0
#define IPIPE_TSC_TYPE_FREERUNNING 1
...
...
@@ -92,11 +93,13 @@ void __ipipe_mach_get_tscinfo(struct __ipipe_tscinfo *info);
unsigned
long
long
__ipipe_tsc_get
(
void
)
__attribute__
((
long_call
));
void
__ipipe_tsc_register
(
struct
__ipipe_tscinfo
*
info
);
void
__ipipe_tsc_update
(
void
);
void
__ipipe_update_vsyscall
(
struct
timekeeper
*
tk
);
extern
unsigned
long
__ipipe_kuser_tsc_freq
;
#define __ipipe_hrclock_freq __ipipe_kuser_tsc_freq
#else
/* ! generic tsc */
unsigned
long
long
__ipipe_mach_get_tsc
(
void
);
#define __ipipe_tsc_get() __ipipe_mach_get_tsc()
static
inline
void
__ipipe_update_vsyscall
(
struct
timekeeper
*
tk
)
{}
#ifndef __ipipe_hrclock_freq
extern
unsigned
long
__ipipe_hrtimer_freq
;
#define __ipipe_hrclock_freq __ipipe_hrtimer_freq
...
...
arch/arm/kernel/ipipe_tsc.c
View file @
09d28165
...
...
@@ -192,12 +192,19 @@ void __ipipe_tsc_update(void)
}
EXPORT_SYMBOL
(
__ipipe_tsc_get
);
void
update_vsyscall
(
struct
timekeeper
*
tk
)
void
__ipipe_
update_vsyscall
(
struct
timekeeper
*
tk
)
{
if
(
tk
->
tkr_mono
.
clock
==
&
clksrc
)
ipipe_update_hostrt
(
tk
);
}
#if !IS_ENABLED(CONFIG_VDSO)
void
update_vsyscall
(
struct
timekeeper
*
tk
)
{
__ipipe_update_vsyscall
(
tk
);
}
void
update_vsyscall_tz
(
void
)
{
}
#endif
arch/arm/kernel/vdso.c
View file @
09d28165
...
...
@@ -299,6 +299,8 @@ void update_vsyscall(struct timekeeper *tk)
struct
timespec
xtime_coarse
;
struct
timespec64
*
wtm
=
&
tk
->
wall_to_monotonic
;
__ipipe_update_vsyscall
(
tk
);
if
(
!
cntvct_ok
)
{
/* The entry points have been zeroed, so there is no
* point in updating the data page.
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment