diff options
author | Isaku Yamahata <yamahata@valinux.co.jp> | 2008-05-19 09:13:41 -0400 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2008-05-27 18:10:06 -0400 |
commit | e51835d58a5abdf82211f36f500f666ca7ef9aee (patch) | |
tree | 84a90efb1f0a5e3ac2b0e8fa64d29cf2e8942315 /arch/ia64 | |
parent | 213060a4d6991a95d0b9344406d195be3464accf (diff) |
[IA64] pvops: define initialization hooks, pv_init_ops, for paravirtualized environment.
define pv_init_ops hooks which represents various initialization
hooks for paravirtualized environment. and add hooks.
Signed-off-by: Alex Williamson <alex.williamson@hp.com>
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch/ia64')
-rw-r--r-- | arch/ia64/kernel/paravirt.c | 7 | ||||
-rw-r--r-- | arch/ia64/kernel/setup.c | 10 | ||||
-rw-r--r-- | arch/ia64/kernel/smpboot.c | 2 |
3 files changed, 19 insertions, 0 deletions
diff --git a/arch/ia64/kernel/paravirt.c b/arch/ia64/kernel/paravirt.c index 7126ea8f7ecc..5daf659ff291 100644 --- a/arch/ia64/kernel/paravirt.c +++ b/arch/ia64/kernel/paravirt.c | |||
@@ -42,6 +42,13 @@ struct pv_info pv_info = { | |||
42 | }; | 42 | }; |
43 | 43 | ||
44 | /*************************************************************************** | 44 | /*************************************************************************** |
45 | * pv_init_ops | ||
46 | * initialization hooks. | ||
47 | */ | ||
48 | |||
49 | struct pv_init_ops pv_init_ops; | ||
50 | |||
51 | /*************************************************************************** | ||
45 | * pv_cpu_ops | 52 | * pv_cpu_ops |
46 | * intrinsics hooks. | 53 | * intrinsics hooks. |
47 | */ | 54 | */ |
diff --git a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c index f48a809c686d..750749551e86 100644 --- a/arch/ia64/kernel/setup.c +++ b/arch/ia64/kernel/setup.c | |||
@@ -51,6 +51,7 @@ | |||
51 | #include <asm/mca.h> | 51 | #include <asm/mca.h> |
52 | #include <asm/meminit.h> | 52 | #include <asm/meminit.h> |
53 | #include <asm/page.h> | 53 | #include <asm/page.h> |
54 | #include <asm/paravirt.h> | ||
54 | #include <asm/patch.h> | 55 | #include <asm/patch.h> |
55 | #include <asm/pgtable.h> | 56 | #include <asm/pgtable.h> |
56 | #include <asm/processor.h> | 57 | #include <asm/processor.h> |
@@ -341,6 +342,8 @@ reserve_memory (void) | |||
341 | rsvd_region[n].end = (unsigned long) ia64_imva(_end); | 342 | rsvd_region[n].end = (unsigned long) ia64_imva(_end); |
342 | n++; | 343 | n++; |
343 | 344 | ||
345 | n += paravirt_reserve_memory(&rsvd_region[n]); | ||
346 | |||
344 | #ifdef CONFIG_BLK_DEV_INITRD | 347 | #ifdef CONFIG_BLK_DEV_INITRD |
345 | if (ia64_boot_param->initrd_start) { | 348 | if (ia64_boot_param->initrd_start) { |
346 | rsvd_region[n].start = (unsigned long)__va(ia64_boot_param->initrd_start); | 349 | rsvd_region[n].start = (unsigned long)__va(ia64_boot_param->initrd_start); |
@@ -519,6 +522,8 @@ setup_arch (char **cmdline_p) | |||
519 | { | 522 | { |
520 | unw_init(); | 523 | unw_init(); |
521 | 524 | ||
525 | paravirt_arch_setup_early(); | ||
526 | |||
522 | ia64_patch_vtop((u64) __start___vtop_patchlist, (u64) __end___vtop_patchlist); | 527 | ia64_patch_vtop((u64) __start___vtop_patchlist, (u64) __end___vtop_patchlist); |
523 | 528 | ||
524 | *cmdline_p = __va(ia64_boot_param->command_line); | 529 | *cmdline_p = __va(ia64_boot_param->command_line); |
@@ -584,6 +589,9 @@ setup_arch (char **cmdline_p) | |||
584 | acpi_boot_init(); | 589 | acpi_boot_init(); |
585 | #endif | 590 | #endif |
586 | 591 | ||
592 | paravirt_banner(); | ||
593 | paravirt_arch_setup_console(cmdline_p); | ||
594 | |||
587 | #ifdef CONFIG_VT | 595 | #ifdef CONFIG_VT |
588 | if (!conswitchp) { | 596 | if (!conswitchp) { |
589 | # if defined(CONFIG_DUMMY_CONSOLE) | 597 | # if defined(CONFIG_DUMMY_CONSOLE) |
@@ -603,6 +611,8 @@ setup_arch (char **cmdline_p) | |||
603 | #endif | 611 | #endif |
604 | 612 | ||
605 | /* enable IA-64 Machine Check Abort Handling unless disabled */ | 613 | /* enable IA-64 Machine Check Abort Handling unless disabled */ |
614 | if (paravirt_arch_setup_nomca()) | ||
615 | nomca = 1; | ||
606 | if (!nomca) | 616 | if (!nomca) |
607 | ia64_mca_init(); | 617 | ia64_mca_init(); |
608 | 618 | ||
diff --git a/arch/ia64/kernel/smpboot.c b/arch/ia64/kernel/smpboot.c index d7ad42b77d41..933f38811528 100644 --- a/arch/ia64/kernel/smpboot.c +++ b/arch/ia64/kernel/smpboot.c | |||
@@ -50,6 +50,7 @@ | |||
50 | #include <asm/machvec.h> | 50 | #include <asm/machvec.h> |
51 | #include <asm/mca.h> | 51 | #include <asm/mca.h> |
52 | #include <asm/page.h> | 52 | #include <asm/page.h> |
53 | #include <asm/paravirt.h> | ||
53 | #include <asm/pgalloc.h> | 54 | #include <asm/pgalloc.h> |
54 | #include <asm/pgtable.h> | 55 | #include <asm/pgtable.h> |
55 | #include <asm/processor.h> | 56 | #include <asm/processor.h> |
@@ -642,6 +643,7 @@ void __devinit smp_prepare_boot_cpu(void) | |||
642 | cpu_set(smp_processor_id(), cpu_online_map); | 643 | cpu_set(smp_processor_id(), cpu_online_map); |
643 | cpu_set(smp_processor_id(), cpu_callin_map); | 644 | cpu_set(smp_processor_id(), cpu_callin_map); |
644 | per_cpu(cpu_state, smp_processor_id()) = CPU_ONLINE; | 645 | per_cpu(cpu_state, smp_processor_id()) = CPU_ONLINE; |
646 | paravirt_post_smp_prepare_boot_cpu(); | ||
645 | } | 647 | } |
646 | 648 | ||
647 | #ifdef CONFIG_HOTPLUG_CPU | 649 | #ifdef CONFIG_HOTPLUG_CPU |