On Fri, Apr 05, 2013 at 04:37:10PM +0200, Igor Mammedov wrote: [...] > void pc_cpus_init(const char *cpu_model) > { > int i; > + X86CPU *cpu; > Error *error = NULL; > + SysBusDevice *ib; > > /* init CPUs */ > if (cpu_model == NULL) { > @@ -902,14 +907,22 @@ void pc_cpus_init(const char *cpu_model) > #endif > } > > + ib = SYS_BUS_DEVICE(object_resolve_path_type("icc-bridge", > + TYPE_ICC_BRIDGE, NULL)); > + > for (i = 0; i < smp_cpus; i++) { > - pc_new_cpu(cpu_model, x86_cpu_apic_id_from_index(i), &error); > + cpu = pc_new_cpu(cpu_model, x86_cpu_apic_id_from_index(i), &error); > if (error) { > fprintf(stderr, "%s\n", error_get_pretty(error)); > error_free(error); > exit(1); > } > } > + > + /* map APIC MMIO area if CPU has it */ > + if (cpu->env.apic_staiy) { > + sysbus_mmio_map_overlap(ib, 0, APIC_DEFAULT_ADDRESS, 0x1000); > + }
GCC doesn't like this: make[1]: Entering directory `/home/ehabkost/rh/proj/virt/qemu/x86_64-softmmu' cc -I. -I/home/ehabkost/rh/proj/virt/qemu -I/home/ehabkost/rh/proj/virt/qemu/include -I/home/ehabkost/rh/proj/virt/qemu/linux-headers -I/home/ehabkost/rh/proj/virt/qemu/tcg -I/home/ehabkost/rh/proj/virt/qemu/tcg/i386 -Werror -fPIE -DPIE -m64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fstack-protector-all -Wendif-labels -Wmissing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -I/usr/include/pixman-1 -DHAS_AUDIO -DHAS_AUDIO_CHOICE -I/home/ehabkost/rh/proj/virt/qemu/hw/i386 -Ihw/i386 -I../linux-headers -I.. -I/home/ehabkost/rh/proj/virt/qemu/target-i386 -DNEED_CPU_H -I/home/ehabkost/rh/proj/virt/qemu/include -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -MMD -MP -MT hw/i386/pc.o -MF hw/i386/pc.d -O2 -D_FORTIFY_SOURCE=2 -g -c -o hw/i386/pc.o /home/ehabkost/rh/proj/virt/qemu/hw/i386/pc.c /home/ehabkost/rh/proj/virt/qemu/hw/i386/pc.c: In function ‘pc_cpus_init’: /home/ehabkost/rh/proj/virt/qemu/hw/i386/pc.c:948:17: error: ‘cpu’ may be used uninitialized in this function [-Werror=maybe-uninitialized] cc1: all warnings being treated as errors make[1]: *** [hw/i386/pc.o] Error 1 > } > -- Eduardo