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-changelog

[Xen-changelog] [IA64] take start_info page from dom0 page not from xen

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [IA64] take start_info page from dom0 page not from xen heap.
From: Xen patchbot -unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Thu, 02 Mar 2006 12:16:13 +0000
Delivery-date: Thu, 02 Mar 2006 12:17:56 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User awilliam@xxxxxxxxxxx
# Node ID 6526a91d55553b712cb210cbefb363e71b380679
# Parent  ecc8595f2c0b49684e40b4601f1a27f1df152528
[IA64] take start_info page from dom0 page not from xen heap.

start_info page is used for xen to pass start up information
to domain0 and the page is used only by dom0 so that it should
belong to dom0.

Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>

diff -r ecc8595f2c0b -r 6526a91d5555 
linux-2.6-xen-sparse/arch/ia64/kernel/setup.c
--- a/linux-2.6-xen-sparse/arch/ia64/kernel/setup.c     Thu Feb  9 20:48:05 2006
+++ b/linux-2.6-xen-sparse/arch/ia64/kernel/setup.c     Thu Feb  9 20:55:03 2006
@@ -61,6 +61,9 @@
 #include <asm/system.h>
 #include <asm/unistd.h>
 #include <asm/system.h>
+#ifdef CONFIG_XEN
+#include <asm/hypervisor.h>
+#endif
 
 #if defined(CONFIG_SMP) && (IA64_CPU_SIZE > PAGE_SIZE)
 # error "struct cpuinfo_ia64 too big!"
@@ -240,6 +243,12 @@
        rsvd_region[n].start = (unsigned long) ia64_imva((void *)KERNEL_START);
        rsvd_region[n].end   = (unsigned long) ia64_imva(_end);
        n++;
+
+#ifdef CONFIG_XEN
+       rsvd_region[n].start = (unsigned long) 
(HYPERVISOR_shared_info->arch.start_info_pfn << PAGE_SHIFT);
+       rsvd_region[n].end   = rsvd_region[n].start + PAGE_SIZE;
+       n++;
+#endif
 
 #ifdef CONFIG_BLK_DEV_INITRD
        if (ia64_boot_param->initrd_start) {
diff -r ecc8595f2c0b -r 6526a91d5555 xen/arch/ia64/xen/domain.c
--- a/xen/arch/ia64/xen/domain.c        Thu Feb  9 20:48:05 2006
+++ b/xen/arch/ia64/xen/domain.c        Thu Feb  9 20:55:03 2006
@@ -782,6 +782,7 @@
        unsigned long pkern_entry;
        unsigned long pkern_end;
        unsigned long pinitrd_start = 0;
+       unsigned long pstart_info;
        unsigned long ret, progress = 0;
 
 //printf("construct_dom0: starting\n");
@@ -839,13 +840,18 @@
                           (PAGE_ALIGN(initrd_len) + 4*1024*1024);
 
              memcpy(__va(pinitrd_start),initrd_start,initrd_len);
+             pstart_info = PAGE_ALIGN(pinitrd_start + initrd_len);
+        } else {
+             pstart_info = PAGE_ALIGN(pkern_end);
         }
 
        printk("METAPHYSICAL MEMORY ARRANGEMENT:\n"
               " Kernel image:  %lx->%lx\n"
               " Entry address: %lx\n"
-               " Init. ramdisk: %lx len %lx\n",
-               pkern_start, pkern_end, pkern_entry, pinitrd_start, initrd_len);
+              " Init. ramdisk: %lx len %lx\n"
+              " Start info.:   %lx->%lx\n",
+              pkern_start, pkern_end, pkern_entry, pinitrd_start, initrd_len,
+              pstart_info, pstart_info + PAGE_SIZE);
 
        if ( (pkern_end - pkern_start) > (d->max_pages * PAGE_SIZE) )
        {
@@ -900,9 +906,9 @@
 
 
        /* Set up start info area. */
-       si = (start_info_t *)alloc_xenheap_page();
+       d->shared_info->arch.start_info_pfn = pstart_info >> PAGE_SHIFT;
+       si = __va(pstart_info);
        memset(si, 0, PAGE_SIZE);
-       d->shared_info->arch.start_info_pfn = __pa(si) >> PAGE_SHIFT;
        sprintf(si->magic, "xen-%i.%i-ia64", XEN_VERSION, XEN_SUBVERSION);
        si->nr_pages     = d->tot_pages;
 

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [IA64] take start_info page from dom0 page not from xen heap., Xen patchbot -unstable <=