diff options
author | Zachary Amsden <zach@vmware.com> | 2007-03-05 00:30:38 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-03-05 07:57:52 -0800 |
commit | eda08b1befaabcdfea1a9216ae13f9065e69baa7 (patch) | |
tree | d70d13c90e540357962ae5d15a7aecc5c8b0f3fa /arch/i386/kernel/vmi.c | |
parent | 9a1c13e91f100c12dcad3a1be1b12890bf32f6ff (diff) | |
download | blackbird-op-linux-eda08b1befaabcdfea1a9216ae13f9065e69baa7.tar.gz blackbird-op-linux-eda08b1befaabcdfea1a9216ae13f9065e69baa7.zip |
[PATCH] vmi: paravirt drop udelay op
Not respecting udelay causes problems with any virtual hardware that is passed
through to real hardware. This can be noticed by any device that interacts
with the real world in real time - like AP startup, which takes real time. Or
keyboard LEDs, which should blink in real-time. Or floppy drives, but only
when passed through to a real floppy controller on OSes which can't
sufficiently buffer the floppy commands to emulate a zero latency floppy. Or
IDE drives, when connecting to a physical CDROM.
This was mostly a hack to get the kernel to boot faster, but it introduced a
number of misvirtualization bugs, and Alan and Pavel argued pretty strongly
against it. We were the only client, and now want to clean up this cruft.
Signed-off-by: Zachary Amsden <zach@vmware.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/i386/kernel/vmi.c')
-rw-r--r-- | arch/i386/kernel/vmi.c | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/arch/i386/kernel/vmi.c b/arch/i386/kernel/vmi.c index bd1037bd124b..a8aa57e77029 100644 --- a/arch/i386/kernel/vmi.c +++ b/arch/i386/kernel/vmi.c @@ -48,7 +48,6 @@ typedef u64 __attribute__((regparm(2))) (VROMLONGFUNC)(int); static struct vrom_header *vmi_rom; static int license_gplok; -static int disable_nodelay; static int disable_pge; static int disable_pse; static int disable_sep; @@ -801,9 +800,6 @@ static inline int __init activate_vmi(void) para_fill(set_iopl_mask, SetIOPLMask); paravirt_ops.io_delay = (void *)vmi_nop; - if (!disable_nodelay) { - paravirt_ops.const_udelay = (void *)vmi_nop; - } para_fill(set_lazy_mode, SetLazyMode); @@ -947,9 +943,7 @@ static int __init parse_vmi(char *arg) if (!arg) return -EINVAL; - if (!strcmp(arg, "disable_nodelay")) - disable_nodelay = 1; - else if (!strcmp(arg, "disable_pge")) { + if (!strcmp(arg, "disable_pge")) { clear_bit(X86_FEATURE_PGE, boot_cpu_data.x86_capability); disable_pge = 1; } else if (!strcmp(arg, "disable_pse")) { |