diff options
Diffstat (limited to 'arch/x86/lguest/boot.c')
-rw-r--r-- | arch/x86/lguest/boot.c | 17 |
1 files changed, 1 insertions, 16 deletions
diff --git a/arch/x86/lguest/boot.c b/arch/x86/lguest/boot.c index 495e46a1f111..d2235db4085f 100644 --- a/arch/x86/lguest/boot.c +++ b/arch/x86/lguest/boot.c | |||
@@ -928,18 +928,8 @@ static unsigned lguest_patch(u8 type, u16 clobber, void *ibuf, | |||
928 | /*G:030 Once we get to lguest_init(), we know we're a Guest. The pv_ops | 928 | /*G:030 Once we get to lguest_init(), we know we're a Guest. The pv_ops |
929 | * structures in the kernel provide points for (almost) every routine we have | 929 | * structures in the kernel provide points for (almost) every routine we have |
930 | * to override to avoid privileged instructions. */ | 930 | * to override to avoid privileged instructions. */ |
931 | __init void lguest_init(void *boot) | 931 | __init void lguest_init(void) |
932 | { | 932 | { |
933 | /* Copy boot parameters first: the Launcher put the physical location | ||
934 | * in %esi, and head.S converted that to a virtual address and handed | ||
935 | * it to us. We use "__memcpy" because "memcpy" sometimes tries to do | ||
936 | * tricky things to go faster, and we're not ready for that. */ | ||
937 | __memcpy(&boot_params, boot, PARAM_SIZE); | ||
938 | /* The boot parameters also tell us where the command-line is: save | ||
939 | * that, too. */ | ||
940 | __memcpy(boot_command_line, __va(boot_params.hdr.cmd_line_ptr), | ||
941 | COMMAND_LINE_SIZE); | ||
942 | |||
943 | /* We're under lguest, paravirt is enabled, and we're running at | 933 | /* We're under lguest, paravirt is enabled, and we're running at |
944 | * privilege level 1, not 0 as normal. */ | 934 | * privilege level 1, not 0 as normal. */ |
945 | pv_info.name = "lguest"; | 935 | pv_info.name = "lguest"; |
@@ -1024,11 +1014,6 @@ __init void lguest_init(void *boot) | |||
1024 | * the normal data segment to get through booting. */ | 1014 | * the normal data segment to get through booting. */ |
1025 | asm volatile ("mov %0, %%fs" : : "r" (__KERNEL_DS) : "memory"); | 1015 | asm volatile ("mov %0, %%fs" : : "r" (__KERNEL_DS) : "memory"); |
1026 | 1016 | ||
1027 | /* Clear the part of the kernel data which is expected to be zero. | ||
1028 | * Normally it will be anyway, but if we're loading from a bzImage with | ||
1029 | * CONFIG_RELOCATALE=y, the relocations will be sitting here. */ | ||
1030 | memset(__bss_start, 0, __bss_stop - __bss_start); | ||
1031 | |||
1032 | /* The Host uses the top of the Guest's virtual address space for the | 1017 | /* The Host uses the top of the Guest's virtual address space for the |
1033 | * Host<->Guest Switcher, and it tells us how much it needs in | 1018 | * Host<->Guest Switcher, and it tells us how much it needs in |
1034 | * lguest_data.reserve_mem, set up on the LGUEST_INIT hypercall. */ | 1019 | * lguest_data.reserve_mem, set up on the LGUEST_INIT hypercall. */ |