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

[Xen-devel] [patch] make evtchn_upcall_pending arch-specific type



evtchn_upcall_pending is another variable that bitops are used on, so PowerPC 
wants it to be a long. Unfortunately, it's also part of the guest/hypervisor 
interface, so we can't change it for architectures with existing guests.

Compile-tested on x86(-32). Please apply.

-- 
Hollis Blanchard
IBM Linux Technology Center

Have each architecture specify the type of vcpu_info->evtchn_upcall_pending.

Signed-off-by: Hollis Blanchard <hollisb@xxxxxxxxxx>

diff -r d102a30417a7 xen/common/keyhandler.c
--- a/xen/common/keyhandler.c   Wed Mar 29 16:50:59 2006 +0100
+++ b/xen/common/keyhandler.c   Thu Mar 30 13:07:56 2006 -0600
@@ -144,11 +144,11 @@ static void dump_domains(unsigned char k
                d->domain_id);
         for_each_vcpu ( d, v ) {
             printk("    VCPU%d: CPU%d [has=%c] flags=%lx "
-                   "upcall_pend = %02x, upcall_mask = %02x ",
+                   "upcall_pend = %02lx, upcall_mask = %02x ",
                    v->vcpu_id, v->processor,
                    test_bit(_VCPUF_running, &v->vcpu_flags) ? 'T':'F',
                    v->vcpu_flags,
-                   v->vcpu_info->evtchn_upcall_pending, 
+                   (ulong)v->vcpu_info->evtchn_upcall_pending, 
                    v->vcpu_info->evtchn_upcall_mask);
             cpuset_print(cpuset, sizeof(cpuset), v->vcpu_dirty_cpumask);
             printk("dirty_cpus=%s ", cpuset);
diff -r d102a30417a7 xen/include/public/arch-ia64.h
--- a/xen/include/public/arch-ia64.h    Wed Mar 29 16:50:59 2006 +0100
+++ b/xen/include/public/arch-ia64.h    Thu Mar 30 13:07:56 2006 -0600
@@ -322,6 +322,8 @@ typedef struct vcpu_guest_context {
 } vcpu_guest_context_t;
 DEFINE_GUEST_HANDLE(vcpu_guest_context_t);
 
+typedef uint8_t pending_upcall_t;
+
 #endif /* !__ASSEMBLY__ */
 
 #endif /* __HYPERVISOR_IF_IA64_H__ */
diff -r d102a30417a7 xen/include/public/arch-x86_32.h
--- a/xen/include/public/arch-x86_32.h  Wed Mar 29 16:50:59 2006 +0100
+++ b/xen/include/public/arch-x86_32.h  Thu Mar 30 13:07:56 2006 -0600
@@ -168,6 +168,8 @@ typedef struct {
     unsigned long pad[5]; /* sizeof(vcpu_info_t) == 64 */
 } arch_vcpu_info_t;
 
+typedef uint8_t pending_upcall_t;
+
 #endif /* !__ASSEMBLY__ */
 
 /*
diff -r d102a30417a7 xen/include/public/arch-x86_64.h
--- a/xen/include/public/arch-x86_64.h  Wed Mar 29 16:50:59 2006 +0100
+++ b/xen/include/public/arch-x86_64.h  Thu Mar 30 13:07:56 2006 -0600
@@ -244,6 +244,8 @@ typedef struct {
     unsigned long pad; /* sizeof(vcpu_info_t) == 64 */
 } arch_vcpu_info_t;
 
+typedef uint8_t pending_upcall_t;
+
 #endif /* !__ASSEMBLY__ */
 
 /*
diff -r d102a30417a7 xen/include/public/xen.h
--- a/xen/include/public/xen.h  Wed Mar 29 16:50:59 2006 +0100
+++ b/xen/include/public/xen.h  Thu Mar 30 13:07:56 2006 -0600
@@ -312,7 +312,7 @@ typedef struct vcpu_info {
      * an upcall activation. The mask is cleared when the VCPU requests
      * to block: this avoids wakeup-waiting races.
      */
-    uint8_t evtchn_upcall_pending;
+    pending_upcall_t evtchn_upcall_pending;
     uint8_t evtchn_upcall_mask;
     unsigned long evtchn_pending_sel;
     arch_vcpu_info_t arch;

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


 


Rackspace

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