ia64/xen-unstable

changeset 8662:407358daf389

Merge.
Signed-off-by: Steven Smith, sos22@cam.ac.uk
author sos22@douglas.cl.cam.ac.uk
date Wed Jan 25 17:41:22 2006 +0100 (2006-01-25)
parents 43c294aea9ec 2d31ebf402e1
children c9362a31ba5d bd6ae7117cca cc9bb3e0e348
files
line diff
     1.1 --- a/linux-2.6-xen-sparse/drivers/xen/netback/netback.c	Wed Jan 25 17:15:11 2006 +0100
     1.2 +++ b/linux-2.6-xen-sparse/drivers/xen/netback/netback.c	Wed Jan 25 17:41:22 2006 +0100
     1.3 @@ -39,10 +39,9 @@ static struct timer_list net_timer;
     1.4  #define MAX_PENDING_REQS 256
     1.5  
     1.6  static struct sk_buff_head rx_queue;
     1.7 -static multicall_entry_t rx_mcl[NET_RX_RING_SIZE*2+1];
     1.8 +static multicall_entry_t rx_mcl[NET_RX_RING_SIZE+1];
     1.9  static mmu_update_t rx_mmu[NET_RX_RING_SIZE];
    1.10 -
    1.11 -static gnttab_transfer_t grant_rx_op[MAX_PENDING_REQS];
    1.12 +static gnttab_transfer_t grant_rx_op[NET_RX_RING_SIZE];
    1.13  static unsigned char rx_notify[NR_IRQS];
    1.14  
    1.15  static unsigned long mmap_vstart;
    1.16 @@ -245,7 +244,7 @@ static void net_rx_action(unsigned long 
    1.17  		__skb_queue_tail(&rxq, skb);
    1.18  
    1.19  		/* Filled the batch queue? */
    1.20 -		if ((mcl - rx_mcl) == ARRAY_SIZE(rx_mcl))
    1.21 +		if ((gop - grant_rx_op) == ARRAY_SIZE(grant_rx_op))
    1.22  			break;
    1.23  	}
    1.24  
     2.1 --- a/linux-2.6-xen-sparse/drivers/xen/util.c	Wed Jan 25 17:15:11 2006 +0100
     2.2 +++ b/linux-2.6-xen-sparse/drivers/xen/util.c	Wed Jan 25 17:41:22 2006 +0100
     2.3 @@ -31,6 +31,7 @@ struct vm_struct *alloc_vm_area(unsigned
     2.4  
     2.5  	return area;
     2.6  }
     2.7 +EXPORT_SYMBOL(alloc_vm_area);
     2.8  
     2.9  void free_vm_area(struct vm_struct *area)
    2.10  {
    2.11 @@ -39,6 +40,7 @@ void free_vm_area(struct vm_struct *area
    2.12  	BUG_ON(ret != area);
    2.13  	kfree(area);
    2.14  }
    2.15 +EXPORT_SYMBOL(free_vm_area);
    2.16  
    2.17  void lock_vm_area(struct vm_struct *area)
    2.18  {
    2.19 @@ -58,11 +60,13 @@ void lock_vm_area(struct vm_struct *area
    2.20  	for (i = 0; i < area->size; i += PAGE_SIZE)
    2.21  		(void)__get_user(c, (char __user *)area->addr + i);
    2.22  }
    2.23 +EXPORT_SYMBOL(lock_vm_area);
    2.24  
    2.25  void unlock_vm_area(struct vm_struct *area)
    2.26  {
    2.27  	preempt_enable();
    2.28  }
    2.29 +EXPORT_SYMBOL(unlock_vm_area);
    2.30  
    2.31  /*
    2.32   * Local variables:
     3.1 --- a/linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/hypercall.h	Wed Jan 25 17:15:11 2006 +0100
     3.2 +++ b/linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/hypercall.h	Wed Jan 25 17:41:22 2006 +0100
     3.3 @@ -90,7 +90,7 @@
     3.4  ({								\
     3.5  	long __res, __ign1, __ign2, __ign3;			\
     3.6  	asm volatile (						\
     3.7 -		"movq %8,%%r10; "				\
     3.8 +		"movq %7,%%r10; "				\
     3.9  		"call hypercall_page + ("STR(__HYPERVISOR_##name)" * 32)"\
    3.10  		: "=a" (__res), "=D" (__ign1), "=S" (__ign2),	\
    3.11  		"=d" (__ign3)					\
    3.12 @@ -104,7 +104,7 @@
    3.13  ({								\
    3.14  	long __res, __ign1, __ign2, __ign3;			\
    3.15  	asm volatile (						\
    3.16 -		"movq %8,%%r10; movq %9,%%r8; "			\
    3.17 +		"movq %7,%%r10; movq %8,%%r8; "			\
    3.18  		"call hypercall_page + ("STR(__HYPERVISOR_##name)" * 32)"\
    3.19  		: "=a" (__res), "=D" (__ign1), "=S" (__ign2),	\
    3.20  		"=d" (__ign3)					\
     4.1 --- a/xen/arch/ia64/xen/xenmisc.c	Wed Jan 25 17:15:11 2006 +0100
     4.2 +++ b/xen/arch/ia64/xen/xenmisc.c	Wed Jan 25 17:41:22 2006 +0100
     4.3 @@ -290,13 +290,9 @@ unsigned long context_switch_count = 0;
     4.4  
     4.5  void context_switch(struct vcpu *prev, struct vcpu *next)
     4.6  {
     4.7 -//printk("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
     4.8 -//printk("@@@@@@ context switch from domain %d (%x) to domain %d (%x)\n",
     4.9 -//prev->domain->domain_id,(long)prev&0xffffff,next->domain->domain_id,(long)next&0xffffff);
    4.10 -//if (prev->domain->domain_id == 1 && next->domain->domain_id == 0) cs10foo();
    4.11 -//if (prev->domain->domain_id == 0 && next->domain->domain_id == 1) cs01foo();
    4.12 -//printk("@@sw%d/%x %d->%d\n",smp_processor_id(), hard_smp_processor_id (),
    4.13 -//       prev->domain->domain_id,next->domain->domain_id);
    4.14 +    uint64_t spsr;
    4.15 +
    4.16 +    local_irq_save(spsr);
    4.17      if(VMX_DOMAIN(prev)){
    4.18      	vtm_domain_out(prev);
    4.19      }
    4.20 @@ -331,6 +327,7 @@ if (!i--) { printk("+",id); i = 1000000;
    4.21  	    if (vcpu_timer_expired(current)) vcpu_pend_timer(current);
    4.22      }
    4.23  
    4.24 +    local_irq_restore(spsr);
    4.25      context_saved(prev);
    4.26  }
    4.27  
     5.1 --- a/xen/common/grant_table.c	Wed Jan 25 17:15:11 2006 +0100
     5.2 +++ b/xen/common/grant_table.c	Wed Jan 25 17:41:22 2006 +0100
     5.3 @@ -719,10 +719,18 @@ gnttab_transfer(
     5.4          }
     5.5  
     5.6          /* Check the passed page frame for basic validity. */
     5.7 +        if ( unlikely(!pfn_valid(gop.mfn)) )
     5.8 +        { 
     5.9 +            DPRINTK("gnttab_transfer: out-of-range %lx\n",
    5.10 +                    (unsigned long)gop.mfn);
    5.11 +            (void)__put_user(GNTST_bad_page, &uop[i].status);
    5.12 +            continue;
    5.13 +        }
    5.14 +
    5.15          page = pfn_to_page(gop.mfn);
    5.16 -        if ( unlikely(!pfn_valid(gop.mfn) || IS_XEN_HEAP_FRAME(page)) )
    5.17 +        if ( unlikely(IS_XEN_HEAP_FRAME(page)) )
    5.18          { 
    5.19 -            DPRINTK("gnttab_transfer: out-of-range or xen frame %lx\n",
    5.20 +            DPRINTK("gnttab_transfer: xen frame %lx\n",
    5.21                      (unsigned long)gop.mfn);
    5.22              (void)__put_user(GNTST_bad_page, &uop[i].status);
    5.23              continue;