[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-ia64-devel] [patch 1/2] Kexec: is for privelaged guests only
This changes much usage of #ifdef CONFIG_XEN to #ifdef CONFIG_XEN_PRIVILEGED_GUEST as the code is not applicable to unprivelaged guests. Its also fixes the KEXEC Kconfig option, so that it is not available to unprivelaged guests. Signed-off-by: Simon Horman <horms@xxxxxxxxxxxx> Index: linux-2.6.18-xen.hg/arch/ia64/kernel/efi.c =================================================================== --- linux-2.6.18-xen.hg.orig/arch/ia64/kernel/efi.c 2008-02-06 14:38:19.000000000 +0900 +++ linux-2.6.18-xen.hg/arch/ia64/kernel/efi.c 2008-02-06 14:39:51.000000000 +0900 @@ -1137,7 +1137,7 @@ efi_initialize_resources(void *efi_map_s insert_resource(res, &boot_param_res); if (crashk_res.end > crashk_res.start) insert_resource(res, &crashk_res); -#ifdef CONFIG_XEN +#ifdef CONFIG_XEN_PRIVILEGED_GUEST if (is_initial_xendomain()) xen_machine_kexec_register_resources( res); Index: linux-2.6.18-xen.hg/arch/ia64/kernel/machine_kexec.c =================================================================== --- linux-2.6.18-xen.hg.orig/arch/ia64/kernel/machine_kexec.c 2008-02-06 14:38:19.000000000 +0900 +++ linux-2.6.18-xen.hg/arch/ia64/kernel/machine_kexec.c 2008-02-06 14:39:51.000000000 +0900 @@ -18,7 +18,7 @@ #include <asm/setup.h> #include <asm/delay.h> #include <asm/meminit.h> -#ifdef CONFIG_XEN +#ifdef CONFIG_XEN_PRIVILEGED_GUEST #include <xen/interface/kexec.h> #include <asm/kexec.h> #endif @@ -69,7 +69,7 @@ void machine_kexec_cleanup(struct kimage { } -#ifndef CONFIG_XEN +#ifndef CONFIG_XEN_PRIVILEGED_GUEST void machine_shutdown(void) { int cpu; @@ -136,10 +136,10 @@ void machine_kexec(struct kimage *image) unw_init_running(ia64_machine_kexec, image); for(;;); } -#else /* CONFIG_XEN */ +#else /* CONFIG_XEN_PRIVILEGED_GUEST */ void machine_kexec_setup_load_arg(xen_kexec_image_t *xki,struct kimage *image) { xki->reboot_code_buffer = kexec_page_to_pfn(image->control_code_page) << PAGE_SHIFT; } -#endif /* CONFIG_XEN */ +#endif /* CONFIG_XEN_PRIVILEGED_GUEST */ Index: linux-2.6.18-xen.hg/arch/ia64/kernel/setup.c =================================================================== --- linux-2.6.18-xen.hg.orig/arch/ia64/kernel/setup.c 2008-02-06 14:38:19.000000000 +0900 +++ linux-2.6.18-xen.hg/arch/ia64/kernel/setup.c 2008-02-06 14:39:51.000000000 +0900 @@ -307,7 +307,7 @@ reserve_memory (void) { char *from = strstr(saved_command_line, "crashkernel="); unsigned long base, size; -#ifdef CONFIG_XEN +#ifdef CONFIG_XEN_PRIVILEGED_GUEST if (is_initial_xendomain() && from) printk("Ignoring crashkernel command line, " "parameter will be supplied by xen\n"); @@ -336,7 +336,7 @@ reserve_memory (void) } } } -#ifdef CONFIG_XEN +#ifdef CONFIG_XEN_PRIVILEGED_GUEST } #endif efi_memmap_res.start = ia64_boot_param->efi_memmap; Index: linux-2.6.18-xen.hg/arch/ia64/mm/contig.c =================================================================== --- linux-2.6.18-xen.hg.orig/arch/ia64/mm/contig.c 2008-02-06 14:38:19.000000000 +0900 +++ linux-2.6.18-xen.hg/arch/ia64/mm/contig.c 2008-02-06 14:39:51.000000000 +0900 @@ -18,7 +18,7 @@ #include <linux/efi.h> #include <linux/mm.h> #include <linux/swap.h> -#ifdef CONFIG_XEN +#ifdef CONFIG_XEN_PRIVILEGED_GUEST #include <linux/kexec.h> #endif @@ -175,7 +175,7 @@ find_memory (void) /* Free all available memory, then mark bootmem-map as being in use. */ efi_memmap_walk(filter_rsvd_memory, free_bootmem); reserve_bootmem(bootmap_start, bootmap_size); -#if defined(CONFIG_XEN) && defined(CONFIG_KEXEC) +#if defined(CONFIG_XEN_PRIVILEGED_GUEST) && defined(CONFIG_KEXEC) xen_machine_kexec_setup_resources(); #endif Index: linux-2.6.18-xen.hg/fs/Kconfig =================================================================== --- linux-2.6.18-xen.hg.orig/fs/Kconfig 2008-02-06 14:38:19.000000000 +0900 +++ linux-2.6.18-xen.hg/fs/Kconfig 2008-02-06 14:39:51.000000000 +0900 @@ -828,7 +828,7 @@ config PROC_VMCORE config PROC_IOMEM_MACHINE bool - depends on PROC_FS && EXPERIMENTAL && KEXEC && XEN && IA64 + depends on PROC_FS && EXPERIMENTAL && KEXEC && XEN_PRIVILEGED_GUEST && IA64 default y config SYSFS Index: linux-2.6.18-xen.hg/include/asm-ia64/kexec.h =================================================================== --- linux-2.6.18-xen.hg.orig/include/asm-ia64/kexec.h 2008-02-06 14:38:19.000000000 +0900 +++ linux-2.6.18-xen.hg/include/asm-ia64/kexec.h 2008-02-06 14:39:51.000000000 +0900 @@ -47,7 +47,7 @@ extern atomic_t kdump_in_progress; /* Kexec needs to know about the actual physical addresss. * But in xen, on some architectures, a physical address is a * pseudo-physical addresss. */ -#ifdef CONFIG_XEN +#ifdef CONFIG_XEN_PRIVILEGED_GUEST #define KEXEC_ARCH_HAS_PAGE_MACROS #define kexec_page_to_pfn(page) pfn_to_mfn_for_dma(page_to_pfn(page)) #define kexec_pfn_to_page(pfn) pfn_to_page(mfn_to_pfn_for_dma(pfn)) Index: linux-2.6.18-xen.hg/include/linux/ioport.h =================================================================== --- linux-2.6.18-xen.hg.orig/include/linux/ioport.h 2008-02-06 14:38:19.000000000 +0900 +++ linux-2.6.18-xen.hg/include/linux/ioport.h 2008-02-06 14:39:51.000000000 +0900 @@ -93,7 +93,7 @@ struct resource_list { /* PC/ISA/whatever - the normal PC address spaces: IO and memory */ extern struct resource ioport_resource; extern struct resource iomem_resource; -#ifdef CONFIG_XEN +#ifdef CONFIG_PROC_IOMEM_MACHINE extern struct resource iomem_machine_resource; #endif Index: linux-2.6.18-xen.hg/arch/ia64/Kconfig =================================================================== --- linux-2.6.18-xen.hg.orig/arch/ia64/Kconfig 2008-02-06 14:38:19.000000000 +0900 +++ linux-2.6.18-xen.hg/arch/ia64/Kconfig 2008-02-06 14:39:51.000000000 +0900 @@ -459,7 +459,7 @@ source "drivers/sn/Kconfig" config KEXEC bool "kexec system call (EXPERIMENTAL)" - depends on EXPERIMENTAL && !IA64_HP_SIM && (!SMP || HOTPLUG_CPU) + depends on EXPERIMENTAL && !IA64_HP_SIM && (!SMP || HOTPLUG_CPU) && !XEN_UNPRIVILEGED_GUEST help kexec is a system call that implements the ability to shutdown your current kernel, and to start another kernel. It is like a reboot Index: linux-2.6.18-xen.hg/arch/ia64/kernel/relocate_kernel.S =================================================================== --- linux-2.6.18-xen.hg.orig/arch/ia64/kernel/relocate_kernel.S 2008-02-06 14:38:19.000000000 +0900 +++ linux-2.6.18-xen.hg/arch/ia64/kernel/relocate_kernel.S 2008-02-06 15:23:34.000000000 +0900 @@ -20,7 +20,7 @@ */ GLOBAL_ENTRY(relocate_new_kernel) .prologue -#ifdef CONFIG_XEN +#ifdef CONFIG_XEN_PRIVILEGED_GUEST alloc r31=ar.pfs,8,0,0,0 #else alloc r31=ar.pfs,4,0,0,0 @@ -37,7 +37,7 @@ GLOBAL_ENTRY(relocate_new_kernel) srlz.i } ;; -#ifdef CONFIG_XEN +#ifdef CONFIG_XEN_PRIVILEGED_GUEST dep r2=0,r2,60,4 //to physical address #else dep r2=0,r2,61,3 //to physical address @@ -65,7 +65,7 @@ GLOBAL_ENTRY(relocate_new_kernel) 1: //physical mode code begin mov b6=in1 -#ifdef CONFIG_XEN +#ifdef CONFIG_XEN_PRIVILEGED_GUEST dep r28=0,in2,60,4 //to physical address #else dep r28=0,in2,61,3 //to physical address @@ -73,7 +73,7 @@ GLOBAL_ENTRY(relocate_new_kernel) // purge all TC entries #define O(member) IA64_CPUINFO_##member##_OFFSET -#ifdef CONFIG_XEN +#ifdef CONFIG_XEN_PRIVILEGED_GUEST mov r2=in4 // load phys addr of cpu_info into r2 #else GET_THIS_PADDR(r2, cpu_info) // load phys addr of cpu_info into r2 @@ -111,7 +111,7 @@ GLOBAL_ENTRY(relocate_new_kernel) srlz.i ;; //purge TR entry for kernel text and data -#ifdef CONFIG_XEN +#ifdef CONFIG_XEN_PRIVILEGED_GUEST mov r16=in5 #else movl r16=KERNEL_START @@ -146,7 +146,7 @@ GLOBAL_ENTRY(relocate_new_kernel) mov r16=IA64_KR(CURRENT_STACK) ;; shl r16=r16,IA64_GRANULE_SHIFT -#ifdef CONFIG_XEN +#ifdef CONFIG_XEN_PRIVILEGED_GUEST mov r19=in6 #else movl r19=PAGE_OFFSET @@ -221,14 +221,14 @@ GLOBAL_ENTRY(relocate_new_kernel) .align 32 memory_stack: -#ifdef CONFIG_XEN +#ifdef CONFIG_XEN_PRIVILEGED_GUEST .fill 4096, 1, 0 #else .fill 8192, 1, 0 #endif memory_stack_end: register_stack: -#ifdef CONFIG_XEN +#ifdef CONFIG_XEN_PRIVILEGED_GUEST .fill 4096, 1, 0 #else .fill 8192, 1, 0 -- -- Horms _______________________________________________ Xen-ia64-devel mailing list Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-ia64-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |