Revision 53a89e26 hw/i386/pc.c

b/hw/i386/pc.c
53 53
#include "qemu/bitmap.h"
54 54
#include "qemu/config-file.h"
55 55
#include "hw/acpi/acpi.h"
56
#include "hw/cpu/icc_bus.h"
56 57

  
57 58
/* debug PC/ISA interrupts */
58 59
//#define DEBUG_IRQ
......
921 922
void pc_cpus_init(const char *cpu_model, DeviceState *icc_bridge)
922 923
{
923 924
    int i;
925
    X86CPU *cpu = NULL;
924 926
    Error *error = NULL;
925 927

  
926 928
    /* init CPUs */
......
933 935
    }
934 936

  
935 937
    for (i = 0; i < smp_cpus; i++) {
936
        pc_new_cpu(cpu_model, x86_cpu_apic_id_from_index(i),
937
                   icc_bridge, &error);
938
        cpu = pc_new_cpu(cpu_model, x86_cpu_apic_id_from_index(i),
939
                         icc_bridge, &error);
938 940
        if (error) {
939 941
            fprintf(stderr, "%s\n", error_get_pretty(error));
940 942
            error_free(error);
941 943
            exit(1);
942 944
        }
943 945
    }
946

  
947
    /* map APIC MMIO area if CPU has APIC */
948
    if (cpu && cpu->env.apic_state) {
949
        /* XXX: what if the base changes? */
950
        sysbus_mmio_map_overlap(SYS_BUS_DEVICE(icc_bridge), 0,
951
                                APIC_DEFAULT_ADDRESS, 0x1000);
952
    }
944 953
}
945 954

  
946 955
void pc_acpi_init(const char *default_dsdt)

Also available in: Unified diff