y2038: vdso: powerpc: avoid timespec references
As a preparation to stop using 'struct timespec' in the kernel, change the powerpc vdso implementation: - split up the vdso data definition to have equivalent members for seconds and nanoseconds instead of an xtime structure - use timespec64 as an intermediate for the xtime update - change the asm-offsets definition to be based the appropriate fixed-length types This is only a temporary fix for changing the types, in order to actually support a 64-bit safe vdso32 version of clock_gettime(), the entire powerpc vdso should be replaced with the generic lib/vdso/ implementation. If that happens first, this patch becomes obsolete. Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
@@ -885,7 +885,7 @@ static notrace u64 timebase_read(struct clocksource *cs)
|
||||
|
||||
void update_vsyscall(struct timekeeper *tk)
|
||||
{
|
||||
struct timespec xt;
|
||||
struct timespec64 xt;
|
||||
struct clocksource *clock = tk->tkr_mono.clock;
|
||||
u32 mult = tk->tkr_mono.mult;
|
||||
u32 shift = tk->tkr_mono.shift;
|
||||
@@ -957,7 +957,8 @@ void update_vsyscall(struct timekeeper *tk)
|
||||
vdso_data->tb_to_xs = new_tb_to_xs;
|
||||
vdso_data->wtom_clock_sec = tk->wall_to_monotonic.tv_sec;
|
||||
vdso_data->wtom_clock_nsec = tk->wall_to_monotonic.tv_nsec;
|
||||
vdso_data->stamp_xtime = xt;
|
||||
vdso_data->stamp_xtime_sec = xt.tv_sec;
|
||||
vdso_data->stamp_xtime_nsec = xt.tv_nsec;
|
||||
vdso_data->stamp_sec_fraction = frac_sec;
|
||||
smp_wmb();
|
||||
++(vdso_data->tb_update_count);
|
||||
|
||||
Reference in New Issue
Block a user