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