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 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,
	   struct timeval32 __user *tvp)
{
	s64 timeout = MAX_SCHEDULE_TIMEOUT;
	struct timespec end_time, *to = NULL;
	if (tvp) {
		time_t sec, usec;

		to = &end_time;

		if (!access_ok(VERIFY_READ, tvp, sizeof(*tvp))
		    || __get_user(sec, &tvp->tv_sec)
		    || __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)
			return -EINVAL;

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

	}

	/* 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 {
+1 −1
Original line number 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;

	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)
+1 −1
Original line number 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);
	kt = ktime_set(0, profiling_interval);
	hrtimer_init(&timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
	timer.expires = kt;
	hrtimer_set_expires(&timer, kt);
	timer.function = profile_spus;

	/* Allocate arrays for collecting SPU PC samples */
+4 −4
Original line number 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))
		wake_up_interruptible(&vcpu0->wq);

	pt->timer.expires = ktime_add_ns(pt->timer.expires, pt->period);
	pt->scheduled = ktime_to_ns(pt->timer.expires);
	hrtimer_add_expires_ns(&pt->timer, pt->period);
	pt->scheduled = hrtimer_get_expires_ns(&pt->timer);
	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);
}
@@ -257,7 +257,7 @@ void __kvm_migrate_pit_timer(struct kvm_vcpu *vcpu)

	timer = &pit->pit_state.pit_timer.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)
+2 −4
Original line number Diff line number Diff line
@@ -946,9 +946,7 @@ static int __apic_timer_fn(struct kvm_lapic *apic)

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

	timer = &apic->timer.dev;
	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)
Loading