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

[Xen-changelog] Merge.



# HG changeset patch
# User sos22@xxxxxxxxxxxxxxxxxxxx
# Node ID 407358daf3898067df46434cb0fd8e160370d9f4
# Parent  43c294aea9ecbace908d321829a9f31e2c6f7a29
# Parent  2d31ebf402e1f4c2ae2b335b9474e1b08f64f15c
Merge.
Signed-off-by: Steven Smith, sos22@xxxxxxxxx

diff -r 43c294aea9ec -r 407358daf389 
linux-2.6-xen-sparse/drivers/xen/netback/netback.c
--- a/linux-2.6-xen-sparse/drivers/xen/netback/netback.c        Wed Jan 25 
16:15:11 2006
+++ b/linux-2.6-xen-sparse/drivers/xen/netback/netback.c        Wed Jan 25 
16:41:22 2006
@@ -39,10 +39,9 @@
 #define MAX_PENDING_REQS 256
 
 static struct sk_buff_head rx_queue;
-static multicall_entry_t rx_mcl[NET_RX_RING_SIZE*2+1];
+static multicall_entry_t rx_mcl[NET_RX_RING_SIZE+1];
 static mmu_update_t rx_mmu[NET_RX_RING_SIZE];
-
-static gnttab_transfer_t grant_rx_op[MAX_PENDING_REQS];
+static gnttab_transfer_t grant_rx_op[NET_RX_RING_SIZE];
 static unsigned char rx_notify[NR_IRQS];
 
 static unsigned long mmap_vstart;
@@ -245,7 +244,7 @@
                __skb_queue_tail(&rxq, skb);
 
                /* Filled the batch queue? */
-               if ((mcl - rx_mcl) == ARRAY_SIZE(rx_mcl))
+               if ((gop - grant_rx_op) == ARRAY_SIZE(grant_rx_op))
                        break;
        }
 
diff -r 43c294aea9ec -r 407358daf389 linux-2.6-xen-sparse/drivers/xen/util.c
--- a/linux-2.6-xen-sparse/drivers/xen/util.c   Wed Jan 25 16:15:11 2006
+++ b/linux-2.6-xen-sparse/drivers/xen/util.c   Wed Jan 25 16:41:22 2006
@@ -31,6 +31,7 @@
 
        return area;
 }
+EXPORT_SYMBOL(alloc_vm_area);
 
 void free_vm_area(struct vm_struct *area)
 {
@@ -39,6 +40,7 @@
        BUG_ON(ret != area);
        kfree(area);
 }
+EXPORT_SYMBOL(free_vm_area);
 
 void lock_vm_area(struct vm_struct *area)
 {
@@ -58,11 +60,13 @@
        for (i = 0; i < area->size; i += PAGE_SIZE)
                (void)__get_user(c, (char __user *)area->addr + i);
 }
+EXPORT_SYMBOL(lock_vm_area);
 
 void unlock_vm_area(struct vm_struct *area)
 {
        preempt_enable();
 }
+EXPORT_SYMBOL(unlock_vm_area);
 
 /*
  * Local variables:
diff -r 43c294aea9ec -r 407358daf389 
linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/hypercall.h
--- a/linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/hypercall.h       Wed Jan 
25 16:15:11 2006
+++ b/linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/hypercall.h       Wed Jan 
25 16:41:22 2006
@@ -90,7 +90,7 @@
 ({                                                             \
        long __res, __ign1, __ign2, __ign3;                     \
        asm volatile (                                          \
-               "movq %8,%%r10; "                               \
+               "movq %7,%%r10; "                               \
                "call hypercall_page + ("STR(__HYPERVISOR_##name)" * 32)"\
                : "=a" (__res), "=D" (__ign1), "=S" (__ign2),   \
                "=d" (__ign3)                                   \
@@ -104,7 +104,7 @@
 ({                                                             \
        long __res, __ign1, __ign2, __ign3;                     \
        asm volatile (                                          \
-               "movq %8,%%r10; movq %9,%%r8; "                 \
+               "movq %7,%%r10; movq %8,%%r8; "                 \
                "call hypercall_page + ("STR(__HYPERVISOR_##name)" * 32)"\
                : "=a" (__res), "=D" (__ign1), "=S" (__ign2),   \
                "=d" (__ign3)                                   \
diff -r 43c294aea9ec -r 407358daf389 xen/arch/ia64/xen/xenmisc.c
--- a/xen/arch/ia64/xen/xenmisc.c       Wed Jan 25 16:15:11 2006
+++ b/xen/arch/ia64/xen/xenmisc.c       Wed Jan 25 16:41:22 2006
@@ -290,13 +290,9 @@
 
 void context_switch(struct vcpu *prev, struct vcpu *next)
 {
-//printk("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
-//printk("@@@@@@ context switch from domain %d (%x) to domain %d (%x)\n",
-//prev->domain->domain_id,(long)prev&0xffffff,next->domain->domain_id,(long)next&0xffffff);
-//if (prev->domain->domain_id == 1 && next->domain->domain_id == 0) cs10foo();
-//if (prev->domain->domain_id == 0 && next->domain->domain_id == 1) cs01foo();
-//printk("@@sw%d/%x %d->%d\n",smp_processor_id(), hard_smp_processor_id (),
-//       prev->domain->domain_id,next->domain->domain_id);
+    uint64_t spsr;
+
+    local_irq_save(spsr);
     if(VMX_DOMAIN(prev)){
        vtm_domain_out(prev);
     }
@@ -331,6 +327,7 @@
            if (vcpu_timer_expired(current)) vcpu_pend_timer(current);
     }
 
+    local_irq_restore(spsr);
     context_saved(prev);
 }
 
diff -r 43c294aea9ec -r 407358daf389 xen/common/grant_table.c
--- a/xen/common/grant_table.c  Wed Jan 25 16:15:11 2006
+++ b/xen/common/grant_table.c  Wed Jan 25 16:41:22 2006
@@ -719,10 +719,18 @@
         }
 
         /* Check the passed page frame for basic validity. */
+        if ( unlikely(!pfn_valid(gop.mfn)) )
+        { 
+            DPRINTK("gnttab_transfer: out-of-range %lx\n",
+                    (unsigned long)gop.mfn);
+            (void)__put_user(GNTST_bad_page, &uop[i].status);
+            continue;
+        }
+
         page = pfn_to_page(gop.mfn);
-        if ( unlikely(!pfn_valid(gop.mfn) || IS_XEN_HEAP_FRAME(page)) )
+        if ( unlikely(IS_XEN_HEAP_FRAME(page)) )
         { 
-            DPRINTK("gnttab_transfer: out-of-range or xen frame %lx\n",
+            DPRINTK("gnttab_transfer: xen frame %lx\n",
                     (unsigned long)gop.mfn);
             (void)__put_user(GNTST_bad_page, &uop[i].status);
             continue;

_______________________________________________
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®.