[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] Necessary change to make ia64 dom0 rework:



# HG changeset patch
# User djm@xxxxxxxxxxxxxxx
# Node ID 813e504dc716f9b78e30c0e14d0c8a76f244e773
# Parent  fdea4a967bc77e52b0a55f7686d50caf28ad6e7c
Necessary change to make ia64 dom0 rework:
        - All even channels on xen/ia64 shares one common interrupt vector
        - xen_start_info is initialized only after xen_init, so adjust
          sequence to avoid access before initialization

Signed-off-by Kevin Tian <kevin.tian@xxxxxxxxx>

diff -r fdea4a967bc7 -r 813e504dc716 
linux-2.6-xen-sparse/arch/ia64/xen/drivers/evtchn_ia64.c
--- a/linux-2.6-xen-sparse/arch/ia64/xen/drivers/evtchn_ia64.c  Mon Oct 24 
15:08:13 2005
+++ b/linux-2.6-xen-sparse/arch/ia64/xen/drivers/evtchn_ia64.c  Mon Oct 24 
15:15:53 2005
@@ -29,7 +29,7 @@
     return op.u.bind_virq.port;
 }
 
-int bind_virq_to_irq(int virq)
+int bind_virq_to_irq(int virq, int cpu)
 {
        printk("bind_virq_to_irq called... FIXME??\n");
        while(1);
@@ -66,7 +66,11 @@
     evtchns[evtchn].handler = handler;
     evtchns[evtchn].dev_id = dev_id;
     unmask_evtchn(evtchn);
-    return 0;
+    //return 0;
+    /* On ia64, there's only one irq vector allocated for all event channels,
+     * so let's just return evtchn as handle for later communication
+     */
+    return evtchn;
 }
 
 void unbind_evtchn_from_irqhandler(unsigned int evtchn, void *dev_id)
diff -r fdea4a967bc7 -r 813e504dc716 
linux-2.6-xen-sparse/drivers/xen/privcmd/privcmd.c
--- a/linux-2.6-xen-sparse/drivers/xen/privcmd/privcmd.c        Mon Oct 24 
15:08:13 2005
+++ b/linux-2.6-xen-sparse/drivers/xen/privcmd/privcmd.c        Mon Oct 24 
15:15:53 2005
@@ -25,8 +25,8 @@
 #include <asm/pgtable.h>
 #include <asm/uaccess.h>
 #include <asm/tlb.h>
+#include <asm/hypervisor.h>
 #include <asm-xen/linux-public/privcmd.h>
-#include <asm/hypervisor.h>
 #include <asm-xen/xen-public/xen.h>
 #include <asm-xen/xen-public/dom0_ops.h>
 #include <asm-xen/xen_proc.h>
diff -r fdea4a967bc7 -r 813e504dc716 
linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_probe.c
--- a/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_probe.c    Mon Oct 24 
15:08:13 2005
+++ b/linux-2.6-xen-sparse/drivers/xen/xenbus/xenbus_probe.c    Mon Oct 24 
15:15:53 2005
@@ -714,11 +714,7 @@
 
 static int __init xenbus_probe_init(void)
 {
-       int err = 0;
-       /* 
-       ** Domain0 doesn't have a store_evtchn or store_mfn yet. 
-       */
-       int dom0 = (xen_start_info->store_evtchn == 0);
+       int err = 0, dom0;
 
        printk("xenbus_probe_init\n");
 
@@ -732,6 +728,11 @@
        bus_register(&xenbus_backend.bus);
        device_register(&xenbus_frontend.dev);
        device_register(&xenbus_backend.dev);
+
+       /*
+       ** Domain0 doesn't have a store_evtchn or store_mfn yet.
+       */
+       dom0 = (xen_start_info->store_evtchn == 0);
 
        if (dom0) {
 

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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.