Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c81eddb0 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6

* 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6:
  [S390] zcore: Fix reipl device detection
  [S390] vdso: use ntp adjusted clock multiplier
  [S390] cio: use exception-save stsch
  [S390] add hook to reenable mss after hibernation
  [S390] cio: allow enable_facility from outside init functions
  [S390] dasd: fix endless loop in erp
parents a28ca3f3 76ef964c
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ struct vdso_data {
	__u32 tz_minuteswest;		/* Minutes west of Greenwich	0x30 */
	__u32 tz_dsttime;		/* Type of dst correction	0x34 */
	__u32 ectg_available;
	__u32 ntp_mult;			/* NTP adjusted multiplier	0x3C */
};

struct vdso_per_cpu_data {
+1 −0
Original line number Diff line number Diff line
@@ -61,6 +61,7 @@ int main(void)
	DEFINE(__VDSO_WTOM_NSEC, offsetof(struct vdso_data, wtom_clock_nsec));
	DEFINE(__VDSO_TIMEZONE, offsetof(struct vdso_data, tz_minuteswest));
	DEFINE(__VDSO_ECTG_OK, offsetof(struct vdso_data, ectg_available));
	DEFINE(__VDSO_NTP_MULT, offsetof(struct vdso_data, ntp_mult));
	DEFINE(__VDSO_ECTG_BASE, offsetof(struct vdso_per_cpu_data, ectg_timer_base));
	DEFINE(__VDSO_ECTG_USER, offsetof(struct vdso_per_cpu_data, ectg_user_time));
	/* constants used by the vdso */
+3 −0
Original line number Diff line number Diff line
@@ -256,6 +256,9 @@ restore_registers:
	lghi	%r2,0
	brasl	%r14,arch_set_page_states

	/* Reinitialize the channel subsystem */
	brasl	%r14,channel_subsystem_reinit

	/* Return 0 */
	lmg	%r6,%r15,STACK_FRAME_OVERHEAD + __SF_GPRS(%r15)
	lghi	%r2,0
+1 −0
Original line number Diff line number Diff line
@@ -221,6 +221,7 @@ void update_vsyscall(struct timespec *wall_time, struct clocksource *clock,
	vdso_data->xtime_clock_nsec = wall_time->tv_nsec;
	vdso_data->wtom_clock_sec = wall_to_monotonic.tv_sec;
	vdso_data->wtom_clock_nsec = wall_to_monotonic.tv_nsec;
	vdso_data->ntp_mult = mult;
	smp_wmb();
	++vdso_data->tb_update_count;
}
+6 −6
Original line number Diff line number Diff line
@@ -38,13 +38,13 @@ __kernel_clock_gettime:
	sl	%r1,__VDSO_XTIME_STAMP+4(%r5)
	brc	3,2f
	ahi	%r0,-1
2:	mhi	%r0,1000			/* cyc2ns(clock,cycle_delta) */
2:	ms	%r0,__VDSO_NTP_MULT(%r5)	/* cyc2ns(clock,cycle_delta) */
	lr	%r2,%r0
	lhi	%r0,1000
	l	%r0,__VDSO_NTP_MULT(%r5)
	ltr	%r1,%r1
	mr	%r0,%r0
	jnm	3f
	ahi	%r0,1000
	a	%r0,__VDSO_NTP_MULT(%r5)
3:	alr	%r0,%r2
	srdl	%r0,12
	al	%r0,__VDSO_XTIME_NSEC(%r5)	/*  + xtime */
@@ -86,13 +86,13 @@ __kernel_clock_gettime:
	sl	%r1,__VDSO_XTIME_STAMP+4(%r5)
	brc	3,12f
	ahi	%r0,-1
12:	mhi	%r0,1000			/* cyc2ns(clock,cycle_delta) */
12:	ms	%r0,__VDSO_NTP_MULT(%r5)	/* cyc2ns(clock,cycle_delta) */
	lr	%r2,%r0
	lhi	%r0,1000
	l	%r0,__VDSO_NTP_MULT(%r5)
	ltr	%r1,%r1
	mr	%r0,%r0
	jnm	13f
	ahi	%r0,1000
	a	%r0,__VDSO_NTP_MULT(%r5)
13:	alr	%r0,%r2
	srdl	%r0,12
	al	%r0,__VDSO_XTIME_NSEC(%r5)	/*  + xtime */
Loading