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] [linux-2.6.18-xen] kexec: add xen_machine_kexec_register

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [linux-2.6.18-xen] kexec: add xen_machine_kexec_register_resources() and machine_kexec_register_resources()
From: "Xen patchbot-linux-2.6.18-xen" <patchbot-linux-2.6.18-xen@xxxxxxxxxxxxxxxxxxx>
Date: Thu, 28 Feb 2008 12:20:25 -0800
Delivery-date: Thu, 28 Feb 2008 12:21:58 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
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 Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1204196060 0
# Node ID b7f980c60a6182740bd03a9d03bff80388669d62
# Parent  621ce063ad83394b25bb63d1684021cf565a94e1
kexec: add xen_machine_kexec_register_resources() and 
machine_kexec_register_resources()

Add xen_machine_kexec_register_resources() and
machine_kexec_register_resources() to allow architecture specific
handling of iomem resources.

At this time xen_machine_kexec_register_resources() does the
same parenting of per-cpu resources on all architectures.
And machine_kexec_register_resources does nothing on all
architectures.

Signed-off-by: Simon Horman <horms@xxxxxxxxxxxx>
---
 arch/i386/kernel/machine_kexec.c   |   15 +++++++++++++++
 arch/ia64/kernel/machine_kexec.c   |   15 +++++++++++++++
 arch/x86_64/kernel/machine_kexec.c |   15 +++++++++++++++
 drivers/xen/core/machine_kexec.c   |   13 +++++++++----
 4 files changed, 54 insertions(+), 4 deletions(-)

diff -r 621ce063ad83 -r b7f980c60a61 arch/i386/kernel/machine_kexec.c
--- a/arch/i386/kernel/machine_kexec.c  Thu Feb 28 10:53:42 2008 +0000
+++ b/arch/i386/kernel/machine_kexec.c  Thu Feb 28 10:54:20 2008 +0000
@@ -64,6 +64,21 @@ void machine_kexec_setup_load_arg(xen_ke
 
 }
 
+int __init machine_kexec_setup_resources(struct resource *hypervisor,
+                                        struct resource *phys_cpus,
+                                        int nr_phys_cpus)
+{
+       int k;
+
+       /* The per-cpu crash note resources belong to the hypervisor resource */
+       for (k = 0; k < nr_phys_cpus; k++)
+               request_resource(hypervisor, phys_cpus + k);
+
+       return 0;
+}
+
+void machine_kexec_register_resources(struct resource *res) { ; }
+
 #endif /* CONFIG_XEN */
 
 /*
diff -r 621ce063ad83 -r b7f980c60a61 arch/ia64/kernel/machine_kexec.c
--- a/arch/ia64/kernel/machine_kexec.c  Thu Feb 28 10:53:42 2008 +0000
+++ b/arch/ia64/kernel/machine_kexec.c  Thu Feb 28 10:54:20 2008 +0000
@@ -142,4 +142,19 @@ void machine_kexec_setup_load_arg(xen_ke
        xki->reboot_code_buffer =
                kexec_page_to_pfn(image->control_code_page) << PAGE_SHIFT;
 }
+
+int __init machine_kexec_setup_resources(struct resource *hypervisor,
+                                        struct resource *phys_cpus,
+                                        int nr_phys_cpus)
+{
+       int k;
+
+       /* The per-cpu crash note resources belong to the hypervisor resource */
+       for (k = 0; k < nr_phys_cpus; k++)
+               request_resource(hypervisor, phys_cpus + k);
+
+       return 0;
+}
+
+void machine_kexec_register_resources(struct resource *res) { ; }
 #endif /* CONFIG_XEN */
diff -r 621ce063ad83 -r b7f980c60a61 arch/x86_64/kernel/machine_kexec.c
--- a/arch/x86_64/kernel/machine_kexec.c        Thu Feb 28 10:53:42 2008 +0000
+++ b/arch/x86_64/kernel/machine_kexec.c        Thu Feb 28 10:54:20 2008 +0000
@@ -103,6 +103,21 @@ void machine_kexec_setup_load_arg(xen_ke
        xki->page_list[PA_PTE_0] = __ma(kexec_pte0);
        xki->page_list[PA_PTE_1] = __ma(kexec_pte1);
 }
+
+int __init machine_kexec_setup_resources(struct resource *hypervisor,
+                                        struct resource *phys_cpus,
+                                        int nr_phys_cpus)
+{
+       int k;
+
+       /* The per-cpu crash note resources belong to the hypervisor resource */
+       for (k = 0; k < nr_phys_cpus; k++)
+               request_resource(hypervisor, phys_cpus + k);
+
+       return 0;
+}
+
+void machine_kexec_register_resources(struct resource *res) { ; }
 
 #else /* CONFIG_XEN */
 
diff -r 621ce063ad83 -r b7f980c60a61 drivers/xen/core/machine_kexec.c
--- a/drivers/xen/core/machine_kexec.c  Thu Feb 28 10:53:42 2008 +0000
+++ b/drivers/xen/core/machine_kexec.c  Thu Feb 28 10:54:20 2008 +0000
@@ -10,6 +10,10 @@
 
 extern void machine_kexec_setup_load_arg(xen_kexec_image_t *xki, 
                                         struct kimage *image);
+extern int machine_kexec_setup_resources(struct resource *hypervisor,
+                                        struct resource *phys_cpus,
+                                        int nr_phys_cpus);
+extern void machine_kexec_register_resources(struct resource *res);
 
 static int __initdata xen_max_nr_phys_cpus;
 static struct resource xen_hypervisor_res;
@@ -79,10 +83,6 @@ void __init xen_machine_kexec_setup_reso
        xen_hypervisor_res.end = range.start + range.size - 1;
        xen_hypervisor_res.flags = IORESOURCE_BUSY | IORESOURCE_MEM;
 
-       /* The per-cpu crash note resources belong to the hypervisor resource */
-       for (k = 0; k < xen_max_nr_phys_cpus; k++)
-               request_resource(&xen_hypervisor_res, xen_phys_cpus + k);
-
        /* fill in crashk_res if range is reserved by hypervisor */
 
        memset(&range, 0, sizeof(range));
@@ -95,6 +95,10 @@ void __init xen_machine_kexec_setup_reso
                crashk_res.start = range.start;
                crashk_res.end = range.start + range.size - 1;
        }
+
+       if (machine_kexec_setup_resources(&xen_hypervisor_res, xen_phys_cpus,
+                                         xen_max_nr_phys_cpus))
+               goto err;
 
        return;
 
@@ -111,6 +115,7 @@ void __init xen_machine_kexec_register_r
 void __init xen_machine_kexec_register_resources(struct resource *res)
 {
        request_resource(res, &xen_hypervisor_res);
+       machine_kexec_register_resources(res);
 }
 
 static void setup_load_arg(xen_kexec_image_t *xki, struct kimage *image)

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [linux-2.6.18-xen] kexec: add xen_machine_kexec_register_resources() and machine_kexec_register_resources(), Xen patchbot-linux-2.6.18-xen <=