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

Commit 268a3dcf authored by Thomas Gleixner's avatar Thomas Gleixner
Browse files

Merge branch 'timers/range-hrtimers' into v28-range-hrtimers-for-linus-v2



Conflicts:

	kernel/time/tick-sched.c

Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
parents c4bd822e 592aa999
Loading
Loading
Loading
Loading
+7 −6
Original line number Original line Diff line number Diff line
@@ -986,10 +986,12 @@ asmlinkage int
osf_select(int n, fd_set __user *inp, fd_set __user *outp, fd_set __user *exp,
osf_select(int n, fd_set __user *inp, fd_set __user *outp, fd_set __user *exp,
	   struct timeval32 __user *tvp)
	   struct timeval32 __user *tvp)
{
{
	s64 timeout = MAX_SCHEDULE_TIMEOUT;
	struct timespec end_time, *to = NULL;
	if (tvp) {
	if (tvp) {
		time_t sec, usec;
		time_t sec, usec;


		to = &end_time;

		if (!access_ok(VERIFY_READ, tvp, sizeof(*tvp))
		if (!access_ok(VERIFY_READ, tvp, sizeof(*tvp))
		    || __get_user(sec, &tvp->tv_sec)
		    || __get_user(sec, &tvp->tv_sec)
		    || __get_user(usec, &tvp->tv_usec)) {
		    || __get_user(usec, &tvp->tv_usec)) {
@@ -999,14 +1001,13 @@ osf_select(int n, fd_set __user *inp, fd_set __user *outp, fd_set __user *exp,
		if (sec < 0 || usec < 0)
		if (sec < 0 || usec < 0)
			return -EINVAL;
			return -EINVAL;


		if ((unsigned long) sec < MAX_SELECT_SECONDS) {
		if (poll_select_set_timeout(to, sec, usec * NSEC_PER_USEC))
			timeout = (usec + 1000000/HZ - 1) / (1000000/HZ);
			return -EINVAL;		
			timeout += sec * (unsigned long) HZ;

		}
	}
	}


	/* OSF does not copy back the remaining time.  */
	/* OSF does not copy back the remaining time.  */
	return core_sys_select(n, inp, outp, exp, &timeout);
	return core_sys_select(n, inp, outp, exp, to);
}
}


struct rusage32 {
struct rusage32 {
+1 −1
Original line number Original line Diff line number Diff line
@@ -1114,7 +1114,7 @@ static void kvm_migrate_hlt_timer(struct kvm_vcpu *vcpu)
	struct hrtimer *p_ht = &vcpu->arch.hlt_timer;
	struct hrtimer *p_ht = &vcpu->arch.hlt_timer;


	if (hrtimer_cancel(p_ht))
	if (hrtimer_cancel(p_ht))
		hrtimer_start(p_ht, p_ht->expires, HRTIMER_MODE_ABS);
		hrtimer_start_expires(p_ht, HRTIMER_MODE_ABS);
}
}


static enum hrtimer_restart hlt_timer_fn(struct hrtimer *data)
static enum hrtimer_restart hlt_timer_fn(struct hrtimer *data)
+1 −1
Original line number Original line Diff line number Diff line
@@ -196,7 +196,7 @@ int start_spu_profiling(unsigned int cycles_reset)
	pr_debug("timer resolution: %lu\n", TICK_NSEC);
	pr_debug("timer resolution: %lu\n", TICK_NSEC);
	kt = ktime_set(0, profiling_interval);
	kt = ktime_set(0, profiling_interval);
	hrtimer_init(&timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
	hrtimer_init(&timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
	timer.expires = kt;
	hrtimer_set_expires(&timer, kt);
	timer.function = profile_spus;
	timer.function = profile_spus;


	/* Allocate arrays for collecting SPU PC samples */
	/* Allocate arrays for collecting SPU PC samples */
+4 −4
Original line number Original line Diff line number Diff line
@@ -204,10 +204,10 @@ static int __pit_timer_fn(struct kvm_kpit_state *ps)
	if (vcpu0 && waitqueue_active(&vcpu0->wq))
	if (vcpu0 && waitqueue_active(&vcpu0->wq))
		wake_up_interruptible(&vcpu0->wq);
		wake_up_interruptible(&vcpu0->wq);


	pt->timer.expires = ktime_add_ns(pt->timer.expires, pt->period);
	hrtimer_add_expires_ns(&pt->timer, pt->period);
	pt->scheduled = ktime_to_ns(pt->timer.expires);
	pt->scheduled = hrtimer_get_expires_ns(&pt->timer);
	if (pt->period)
	if (pt->period)
		ps->channels[0].count_load_time = pt->timer.expires;
		ps->channels[0].count_load_time = hrtimer_get_expires(&pt->timer);


	return (pt->period == 0 ? 0 : 1);
	return (pt->period == 0 ? 0 : 1);
}
}
@@ -257,7 +257,7 @@ void __kvm_migrate_pit_timer(struct kvm_vcpu *vcpu)


	timer = &pit->pit_state.pit_timer.timer;
	timer = &pit->pit_state.pit_timer.timer;
	if (hrtimer_cancel(timer))
	if (hrtimer_cancel(timer))
		hrtimer_start(timer, timer->expires, HRTIMER_MODE_ABS);
		hrtimer_start_expires(timer, HRTIMER_MODE_ABS);
}
}


static void destroy_pit_timer(struct kvm_kpit_timer *pt)
static void destroy_pit_timer(struct kvm_kpit_timer *pt)
+2 −4
Original line number Original line Diff line number Diff line
@@ -946,9 +946,7 @@ static int __apic_timer_fn(struct kvm_lapic *apic)


	if (apic_lvtt_period(apic)) {
	if (apic_lvtt_period(apic)) {
		result = 1;
		result = 1;
		apic->timer.dev.expires = ktime_add_ns(
		hrtimer_add_expires_ns(&apic->timer.dev, apic->timer.period);
					apic->timer.dev.expires,
					apic->timer.period);
	}
	}
	return result;
	return result;
}
}
@@ -1117,7 +1115,7 @@ void __kvm_migrate_apic_timer(struct kvm_vcpu *vcpu)


	timer = &apic->timer.dev;
	timer = &apic->timer.dev;
	if (hrtimer_cancel(timer))
	if (hrtimer_cancel(timer))
		hrtimer_start(timer, timer->expires, HRTIMER_MODE_ABS);
		hrtimer_start_expires(timer, HRTIMER_MODE_ABS);
}
}


void kvm_lapic_sync_from_vapic(struct kvm_vcpu *vcpu)
void kvm_lapic_sync_from_vapic(struct kvm_vcpu *vcpu)
Loading