diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2008-10-22 03:48:06 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2008-10-22 03:48:06 -0400 |
commit | 268a3dcfea2077fca60d3715caa5c96f9b5e6ea7 (patch) | |
tree | c2232774508424e677e27f296090a68c775e4669 /arch | |
parent | c4bd822e7b12a9008241d76db45b665f2fef180c (diff) | |
parent | 592aa999d6a272856c9bfbdaac0cfba1bb37c24c (diff) |
Merge branch 'timers/range-hrtimers' into v28-range-hrtimers-for-linus-v2
Conflicts:
kernel/time/tick-sched.c
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/alpha/kernel/osf_sys.c | 13 | ||||
-rw-r--r-- | arch/ia64/kvm/kvm-ia64.c | 2 | ||||
-rw-r--r-- | arch/powerpc/oprofile/cell/spu_profiler.c | 2 | ||||
-rw-r--r-- | arch/x86/kvm/i8254.c | 8 | ||||
-rw-r--r-- | arch/x86/kvm/lapic.c | 6 |
5 files changed, 15 insertions, 16 deletions
diff --git a/arch/alpha/kernel/osf_sys.c b/arch/alpha/kernel/osf_sys.c index 8509dad31204..8e19acbf2886 100644 --- a/arch/alpha/kernel/osf_sys.c +++ b/arch/alpha/kernel/osf_sys.c | |||
@@ -986,10 +986,12 @@ asmlinkage int | |||
986 | osf_select(int n, fd_set __user *inp, fd_set __user *outp, fd_set __user *exp, | 986 | osf_select(int n, fd_set __user *inp, fd_set __user *outp, fd_set __user *exp, |
987 | struct timeval32 __user *tvp) | 987 | struct timeval32 __user *tvp) |
988 | { | 988 | { |
989 | s64 timeout = MAX_SCHEDULE_TIMEOUT; | 989 | struct timespec end_time, *to = NULL; |
990 | if (tvp) { | 990 | if (tvp) { |
991 | time_t sec, usec; | 991 | time_t sec, usec; |
992 | 992 | ||
993 | to = &end_time; | ||
994 | |||
993 | if (!access_ok(VERIFY_READ, tvp, sizeof(*tvp)) | 995 | if (!access_ok(VERIFY_READ, tvp, sizeof(*tvp)) |
994 | || __get_user(sec, &tvp->tv_sec) | 996 | || __get_user(sec, &tvp->tv_sec) |
995 | || __get_user(usec, &tvp->tv_usec)) { | 997 | || __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, | |||
999 | if (sec < 0 || usec < 0) | 1001 | if (sec < 0 || usec < 0) |
1000 | return -EINVAL; | 1002 | return -EINVAL; |
1001 | 1003 | ||
1002 | if ((unsigned long) sec < MAX_SELECT_SECONDS) { | 1004 | if (poll_select_set_timeout(to, sec, usec * NSEC_PER_USEC)) |
1003 | timeout = (usec + 1000000/HZ - 1) / (1000000/HZ); | 1005 | return -EINVAL; |
1004 | timeout += sec * (unsigned long) HZ; | 1006 | |
1005 | } | ||
1006 | } | 1007 | } |
1007 | 1008 | ||
1008 | /* OSF does not copy back the remaining time. */ | 1009 | /* OSF does not copy back the remaining time. */ |
1009 | return core_sys_select(n, inp, outp, exp, &timeout); | 1010 | return core_sys_select(n, inp, outp, exp, to); |
1010 | } | 1011 | } |
1011 | 1012 | ||
1012 | struct rusage32 { | 1013 | struct rusage32 { |
diff --git a/arch/ia64/kvm/kvm-ia64.c b/arch/ia64/kvm/kvm-ia64.c index c0699f0e35a9..a312c9e9b9ef 100644 --- a/arch/ia64/kvm/kvm-ia64.c +++ b/arch/ia64/kvm/kvm-ia64.c | |||
@@ -1114,7 +1114,7 @@ static void kvm_migrate_hlt_timer(struct kvm_vcpu *vcpu) | |||
1114 | struct hrtimer *p_ht = &vcpu->arch.hlt_timer; | 1114 | struct hrtimer *p_ht = &vcpu->arch.hlt_timer; |
1115 | 1115 | ||
1116 | if (hrtimer_cancel(p_ht)) | 1116 | if (hrtimer_cancel(p_ht)) |
1117 | hrtimer_start(p_ht, p_ht->expires, HRTIMER_MODE_ABS); | 1117 | hrtimer_start_expires(p_ht, HRTIMER_MODE_ABS); |
1118 | } | 1118 | } |
1119 | 1119 | ||
1120 | static enum hrtimer_restart hlt_timer_fn(struct hrtimer *data) | 1120 | static enum hrtimer_restart hlt_timer_fn(struct hrtimer *data) |
diff --git a/arch/powerpc/oprofile/cell/spu_profiler.c b/arch/powerpc/oprofile/cell/spu_profiler.c index 380d7e217531..02ffe060db51 100644 --- a/arch/powerpc/oprofile/cell/spu_profiler.c +++ b/arch/powerpc/oprofile/cell/spu_profiler.c | |||
@@ -196,7 +196,7 @@ int start_spu_profiling(unsigned int cycles_reset) | |||
196 | pr_debug("timer resolution: %lu\n", TICK_NSEC); | 196 | pr_debug("timer resolution: %lu\n", TICK_NSEC); |
197 | kt = ktime_set(0, profiling_interval); | 197 | kt = ktime_set(0, profiling_interval); |
198 | hrtimer_init(&timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); | 198 | hrtimer_init(&timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); |
199 | timer.expires = kt; | 199 | hrtimer_set_expires(&timer, kt); |
200 | timer.function = profile_spus; | 200 | timer.function = profile_spus; |
201 | 201 | ||
202 | /* Allocate arrays for collecting SPU PC samples */ | 202 | /* Allocate arrays for collecting SPU PC samples */ |
diff --git a/arch/x86/kvm/i8254.c b/arch/x86/kvm/i8254.c index 634132a9a512..11c6725fb798 100644 --- a/arch/x86/kvm/i8254.c +++ b/arch/x86/kvm/i8254.c | |||
@@ -204,10 +204,10 @@ static int __pit_timer_fn(struct kvm_kpit_state *ps) | |||
204 | if (vcpu0 && waitqueue_active(&vcpu0->wq)) | 204 | if (vcpu0 && waitqueue_active(&vcpu0->wq)) |
205 | wake_up_interruptible(&vcpu0->wq); | 205 | wake_up_interruptible(&vcpu0->wq); |
206 | 206 | ||
207 | pt->timer.expires = ktime_add_ns(pt->timer.expires, pt->period); | 207 | hrtimer_add_expires_ns(&pt->timer, pt->period); |
208 | pt->scheduled = ktime_to_ns(pt->timer.expires); | 208 | pt->scheduled = hrtimer_get_expires_ns(&pt->timer); |
209 | if (pt->period) | 209 | if (pt->period) |
210 | ps->channels[0].count_load_time = pt->timer.expires; | 210 | ps->channels[0].count_load_time = hrtimer_get_expires(&pt->timer); |
211 | 211 | ||
212 | return (pt->period == 0 ? 0 : 1); | 212 | return (pt->period == 0 ? 0 : 1); |
213 | } | 213 | } |
@@ -257,7 +257,7 @@ void __kvm_migrate_pit_timer(struct kvm_vcpu *vcpu) | |||
257 | 257 | ||
258 | timer = &pit->pit_state.pit_timer.timer; | 258 | timer = &pit->pit_state.pit_timer.timer; |
259 | if (hrtimer_cancel(timer)) | 259 | if (hrtimer_cancel(timer)) |
260 | hrtimer_start(timer, timer->expires, HRTIMER_MODE_ABS); | 260 | hrtimer_start_expires(timer, HRTIMER_MODE_ABS); |
261 | } | 261 | } |
262 | 262 | ||
263 | static void destroy_pit_timer(struct kvm_kpit_timer *pt) | 263 | static void destroy_pit_timer(struct kvm_kpit_timer *pt) |
diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c index 6571926bfd33..0fc3cab48943 100644 --- a/arch/x86/kvm/lapic.c +++ b/arch/x86/kvm/lapic.c | |||
@@ -946,9 +946,7 @@ static int __apic_timer_fn(struct kvm_lapic *apic) | |||
946 | 946 | ||
947 | if (apic_lvtt_period(apic)) { | 947 | if (apic_lvtt_period(apic)) { |
948 | result = 1; | 948 | result = 1; |
949 | apic->timer.dev.expires = ktime_add_ns( | 949 | hrtimer_add_expires_ns(&apic->timer.dev, apic->timer.period); |
950 | apic->timer.dev.expires, | ||
951 | apic->timer.period); | ||
952 | } | 950 | } |
953 | return result; | 951 | return result; |
954 | } | 952 | } |
@@ -1117,7 +1115,7 @@ void __kvm_migrate_apic_timer(struct kvm_vcpu *vcpu) | |||
1117 | 1115 | ||
1118 | timer = &apic->timer.dev; | 1116 | timer = &apic->timer.dev; |
1119 | if (hrtimer_cancel(timer)) | 1117 | if (hrtimer_cancel(timer)) |
1120 | hrtimer_start(timer, timer->expires, HRTIMER_MODE_ABS); | 1118 | hrtimer_start_expires(timer, HRTIMER_MODE_ABS); |
1121 | } | 1119 | } |
1122 | 1120 | ||
1123 | void kvm_lapic_sync_from_vapic(struct kvm_vcpu *vcpu) | 1121 | void kvm_lapic_sync_from_vapic(struct kvm_vcpu *vcpu) |