linux/arch
Zachary Amsden e30fab3ad3 [PATCH] vmi: pit override
The time_init_hook in paravirt-ops no longer functions in the correct manner
after the integration of the hrtimers code.  The problem is that now the call
path for time initialization is:

  time_init :
       late_time_init = hpet_time_init;

  late_time_init -> hpet_time_init:
       setup_pit_timer (BAD)
       do_time_init --> (via paravirt.h)
          time_init_hook --> (via arch_hooks.h)
              time_init_hook (in SUBARCH/setup.c)

If this isn't confusing enough, the paravirt case goes through an indirect
function pointer in the paravirt-ops table.  The problem is, by the time the
paravirt hook is called, the pit timer is already enabled.

But paravirt guests have their own timer, and don't want to use the PIT.
Rather than intensify the struggle for power going on here, just make it all
nice and simple and just unconditionally do all timer setup in the
late_time_init hook.  This also has the advantage of enabling timers in the
same place in all code paths, so everyone has the same bugs and we don't have
outliers who break other code because they turn on timer too early or too
late.

So the paravirt-ops time init function is now by default hpet_time_init, which
is the time init function used for native hardware.  Paravirt guests have the
chance to override this when they setup the paravirt-ops table, and should
need no change.

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>
2007-03-05 07:57:52 -08:00
..
alpha [PATCH] Dynamic kernel command-line: alpha 2007-02-12 09:48:37 -08:00
arm [PATCH] add CONFIG_GENERIC_GPIO 2007-03-05 07:57:51 -08:00
arm26 [PATCH] arch/arm26/kernel/entry.S: remove dead code 2007-03-01 14:53:35 -08:00
avr32 [PATCH] add CONFIG_GENERIC_GPIO 2007-03-05 07:57:51 -08:00
cris [PATCH] fix memory leak in dma_declare_coherent_memory() 2007-03-01 14:53:39 -08:00
frv [PATCH] FRV: No ZONE_DMA 2007-03-01 14:53:36 -08:00
h8300 [PATCH] Declare init_irq_proc before we use it. 2007-02-19 14:21:50 -08:00
i386 [PATCH] vmi: pit override 2007-03-05 07:57:52 -08:00
ia64 [PATCH] irq: Remove set_native_irq_info 2007-02-26 10:34:07 -08:00
m32r Various typo fixes. 2007-02-17 19:07:33 +01:00
m68k [PATCH] Declare init_irq_proc before we use it. 2007-02-19 14:21:50 -08:00
m68knommu [PATCH] Declare init_irq_proc before we use it. 2007-02-19 14:21:50 -08:00
mips [MIPS] MTX1: clear PCI errors 2007-03-04 19:02:45 +00:00
parisc [PARISC] clocksource: Move update_cr16_clocksource later in boot 2007-02-26 22:21:22 -05:00
powerpc [PATCH] msi: sanely support hardware level msi disabling 2007-03-05 07:57:50 -08:00
ppc [NET] Eliminate user-selectable CONFIG_MV643XX_ETH_[012] 2007-02-20 17:11:55 +00:00
s390 [S390] Replace $(ARCH) macros in Makefile 2007-02-21 10:55:46 +01:00
sh Storage class should be before const qualifier 2007-02-17 20:11:19 +01:00
sh64 [PATCH] sysctl: remove insert_at_head from register_sysctl 2007-02-14 08:09:59 -08:00
sparc [SPARC]: Provide pci_device_to_OF_node() just like powerpc. 2007-03-02 15:22:51 -08:00
sparc64 [SPARC]: Provide pci_device_to_OF_node() just like powerpc. 2007-03-02 15:22:51 -08:00
um [PATCH] uml: host VDSO fix 2007-03-01 14:53:38 -08:00
v850 kbuild: Replace remaining "depends" with "depends on" 2007-02-17 19:05:24 +01:00
x86_64 [PATCH] x86_64/i386 irq: Fix !CONFIG_SMP compilation 2007-02-28 08:52:31 -08:00
xtensa [PATCH] Dynamic kernel command-line: xtensa 2007-02-12 09:48:39 -08:00