direct-io.hg

view patches/linux-2.6.16.29/fix-hz-suspend.patch @ 11750:d845c9522d9e

[HVM][SVM] Check if SVM is disabled by the BIOS before enabling it.

Newer BIOS implementations will be able to disable the SVM feature,
although an additional test of an MSR (VMCR 0xC0010114 bit 4) is
necessary (set equals disabled). Bit 4 of MSR 0xc0010114 returns 0
(SVM enabled) on machines with older BIOS' without the SVM disable
feature support.

Signed-off-by: Wei Huang <wei.huang2@amd.com>=20
Signed-off-by: Tom Woller <thomas.woller@amd.com>=20
author kfraser@localhost.localdomain
date Thu Oct 12 16:12:10 2006 +0100 (2006-10-12)
parents 041be3f6b38e
children
line source
1 diff -pruN ../orig-linux-2.6.16.29/kernel/timer.c ./kernel/timer.c
2 --- ../orig-linux-2.6.16.29/kernel/timer.c 2006-09-12 19:02:10.000000000 +0100
3 +++ ./kernel/timer.c 2006-09-19 13:58:58.000000000 +0100
4 @@ -555,6 +555,22 @@ found:
5 }
6 spin_unlock(&base->t_base.lock);
8 + /*
9 + * It can happen that other CPUs service timer IRQs and increment
10 + * jiffies, but we have not yet got a local timer tick to process
11 + * the timer wheels. In that case, the expiry time can be before
12 + * jiffies, but since the high-resolution timer here is relative to
13 + * jiffies, the default expression when high-resolution timers are
14 + * not active,
15 + *
16 + * time_before(MAX_JIFFY_OFFSET + jiffies, expires)
17 + *
18 + * would falsely evaluate to true. If that is the case, just
19 + * return jiffies so that we can immediately fire the local timer
20 + */
21 + if (time_before(expires, jiffies))
22 + return jiffies;
23 +
24 if (time_before(hr_expires, expires))
25 return hr_expires;