WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-ia64-devel

[Xen-ia64-devel] [patch 1/2] Kexec: is for privelaged guests only

To: xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-ia64-devel] [patch 1/2] Kexec: is for privelaged guests only
From: horms@xxxxxxxxxxxx
From: Simon Horman <horms@xxxxxxxxxxxx>
Date: Wed, 06 Feb 2008 17:49:10 +0900
Cc: Aron Griffis <aron@xxxxxx>, Isaku Yamahata <yamahata@xxxxxxxxxxxxx>, Alex Williamson <alex.williamson@xxxxxx>
Delivery-date: Wed, 06 Feb 2008 00:59:56 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-ia64-devel-request@lists.xensource.com?subject=help>
List-id: Discussion of the ia64 port of Xen <xen-ia64-devel.lists.xensource.com>
List-post: <mailto:xen-ia64-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=unsubscribe>
References: <20080206084909.198271445@xxxxxxxxxxxx>
Sender: xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: quilt/0.46-1
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

<Prev in Thread] Current Thread [Next in Thread>