ia64/xen-unstable

changeset 8811:4ee359893af4

Make a VTI domain boot again.

Signed-off-by Anthony Xu <anthony.xu@intel.com>
author kaf24@firebug.cl.cam.ac.uk
date Thu Feb 09 16:03:17 2006 +0100 (2006-02-09)
parents 5aad88c8d379
children a0e7daa2df33
files xen/arch/ia64/linux-xen/irq_ia64.c xen/arch/ia64/xen/xenirq.c
line diff
     1.1 --- a/xen/arch/ia64/linux-xen/irq_ia64.c	Thu Feb 09 15:57:52 2006 +0100
     1.2 +++ b/xen/arch/ia64/linux-xen/irq_ia64.c	Thu Feb 09 16:03:17 2006 +0100
     1.3 @@ -169,7 +169,7 @@ ia64_handle_irq (ia64_vector vector, str
     1.4  	 * handler needs to be able to wait for further keyboard interrupts, which can't
     1.5  	 * come through until ia64_eoi() has been done.
     1.6  	 */
     1.7 -	irq_exit();
     1.8 +	xen_irq_exit(regs);
     1.9  }
    1.10  
    1.11  #ifdef CONFIG_HOTPLUG_CPU
     2.1 --- a/xen/arch/ia64/xen/xenirq.c	Thu Feb 09 15:57:52 2006 +0100
     2.2 +++ b/xen/arch/ia64/xen/xenirq.c	Thu Feb 09 16:03:17 2006 +0100
     2.3 @@ -10,7 +10,6 @@
     2.4  #include <asm/hw_irq.h>
     2.5  #include <asm/delay.h>
     2.6  
     2.7 -
     2.8  void
     2.9  xen_debug_irq(ia64_vector vector, struct pt_regs *regs)
    2.10  {
    2.11 @@ -60,11 +59,14 @@ xen_do_IRQ(ia64_vector vector)
    2.12  /*
    2.13   * Exit an interrupt context. Process softirqs if needed and possible:
    2.14   */
    2.15 -void irq_exit(void)
    2.16 +void xen_irq_exit(struct pt_regs *regs)
    2.17  {
    2.18  	//account_system_vtime(current);
    2.19  	sub_preempt_count(IRQ_EXIT_OFFSET);
    2.20 -	if (!in_interrupt() && local_softirq_pending()) {
    2.21 +    if((((char *)regs) -(char *) current) != (IA64_STK_OFFSET-IA64_PT_REGS_SIZE))
    2.22 +        return;
    2.23 +
    2.24 +	if (!in_interrupt()&&local_softirq_pending()) {
    2.25  		add_preempt_count(SOFTIRQ_OFFSET);
    2.26  		do_softirq();
    2.27  		sub_preempt_count(SOFTIRQ_OFFSET);