ia64/xen-unstable

changeset 1396:996c4e53641e

bitkeeper revision 1.907 (40a6233a_5VzzVMLUF-Lja0yZHdHtQ)

Merge tetris.cl.cam.ac.uk:/auto/groups/xeno/BK/xeno.bk
into tetris.cl.cam.ac.uk:/auto/groups/xeno/users/iap10/xeno-clone/xeno.bk
author iap10@tetris.cl.cam.ac.uk
date Sat May 15 14:03:38 2004 +0000 (2004-05-15)
parents 85bffd6ccfcb 2afbaf9592a6
children 50846731650b
files xen/arch/i386/process.c xen/arch/i386/setup.c xen/common/domain.c xenolinux-2.4.26-sparse/arch/xen/drivers/netif/frontend/main.c
line diff
     1.1 --- a/xen/arch/i386/process.c	Sat May 15 09:55:40 2004 +0000
     1.2 +++ b/xen/arch/i386/process.c	Sat May 15 14:03:38 2004 +0000
     1.3 @@ -128,6 +128,9 @@ void machine_restart(char * __unused)
     1.4  #ifdef CONFIG_SMP
     1.5      cpuid = GET_APIC_ID(apic_read(APIC_ID));
     1.6  
     1.7 +    /* KAF: Need interrupts enabled for safe IPI. */
     1.8 +    __sti();
     1.9 +
    1.10      if (reboot_smp) {
    1.11  
    1.12          /* check to see if reboot_cpu is valid 
     2.1 --- a/xen/arch/i386/setup.c	Sat May 15 09:55:40 2004 +0000
     2.2 +++ b/xen/arch/i386/setup.c	Sat May 15 14:03:38 2004 +0000
     2.3 @@ -405,6 +405,8 @@ void __init start_of_day(void)
     2.4       */
     2.5  #endif
     2.6  
     2.7 +    __sti();
     2.8 +
     2.9      initialize_keytable(); /* call back handling for key codes      */
    2.10  
    2.11      serial_init_stage2();
    2.12 @@ -422,8 +424,6 @@ void __init start_of_day(void)
    2.13      init_xen_time();	/* initialise the time */
    2.14      schedulers_start(); /* start scheduler for each CPU */
    2.15  
    2.16 -    sti();
    2.17 -
    2.18      check_nmi_watchdog();
    2.19  
    2.20  #ifdef CONFIG_PCI
     3.1 --- a/xen/common/domain.c	Sat May 15 09:55:40 2004 +0000
     3.2 +++ b/xen/common/domain.c	Sat May 15 14:03:38 2004 +0000
     3.3 @@ -295,7 +295,7 @@ struct pfn_info *alloc_domain_page(struc
     3.4  #ifdef NO_DEVICES_IN_XEN
     3.5      ASSERT(!in_irq());
     3.6  #else
     3.7 -    ASSERT((p != NULL) || !in_irq());
     3.8 +    ASSERT((p == NULL) || !in_irq());
     3.9  #endif
    3.10  
    3.11      spin_lock_irqsave(&free_list_lock, flags);
     4.1 --- a/xenolinux-2.4.26-sparse/arch/xen/drivers/netif/frontend/main.c	Sat May 15 09:55:40 2004 +0000
     4.2 +++ b/xenolinux-2.4.26-sparse/arch/xen/drivers/netif/frontend/main.c	Sat May 15 14:03:38 2004 +0000
     4.3 @@ -437,7 +437,10 @@ static int network_close(struct net_devi
     4.4  
     4.5      netif_stop_queue(np->dev);
     4.6  
     4.7 -    while ( (np->rx_resp_cons != np->rx->req_prod) ||
     4.8 +    np->state = NETIF_STATE_CONNECTED;
     4.9 +
    4.10 +    /* XXX We need to properly disconnect via the domain controller. */
    4.11 +    while ( /*(np->rx_resp_cons != np->rx->req_prod) ||*/
    4.12              (np->tx_resp_cons != np->tx->req_prod) )
    4.13      {
    4.14          barrier();
    4.15 @@ -445,10 +448,6 @@ static int network_close(struct net_devi
    4.16          schedule_timeout(1);
    4.17      }
    4.18  
    4.19 -    wmb();
    4.20 -    np->state = NETIF_STATE_CONNECTED;
    4.21 -    wmb();
    4.22 -
    4.23      MOD_DEC_USE_COUNT;
    4.24  
    4.25      return 0;