Revision 29694758

b/hw/pc_piix.c
233 233
             initrd_filename, cpu_model, 1, 1);
234 234
}
235 235

  
236
static void pc_init_pci_1_3(QEMUMachineInitArgs *args)
236
/* PC machine init function for pc-0.14 to pc-1.2 */
237
static void pc_init_pci_1_2(QEMUMachineInitArgs *args)
237 238
{
238
    enable_kvm_pv_eoi();
239
    disable_kvm_pv_eoi();
239 240
    pc_init_pci(args);
240 241
}
241 242

  
243
/* PC init function for pc-0.10 to pc-0.13, and reused by xenfv */
242 244
static void pc_init_pci_no_kvmclock(QEMUMachineInitArgs *args)
243 245
{
244 246
    ram_addr_t ram_size = args->ram_size;
......
247 249
    const char *kernel_cmdline = args->kernel_cmdline;
248 250
    const char *initrd_filename = args->initrd_filename;
249 251
    const char *boot_device = args->boot_device;
252
    disable_kvm_pv_eoi();
250 253
    pc_init1(get_system_memory(),
251 254
             get_system_io(),
252 255
             ram_size, boot_device,
......
264 267
    const char *boot_device = args->boot_device;
265 268
    if (cpu_model == NULL)
266 269
        cpu_model = "486";
270
    disable_kvm_pv_eoi();
267 271
    pc_init1(get_system_memory(),
268 272
             get_system_io(),
269 273
             ram_size, boot_device,
......
286 290
    .name = "pc-i440fx-1.4",
287 291
    .alias = "pc",
288 292
    .desc = "Standard PC (i440FX + PIIX, 1996)",
289
    .init = pc_init_pci_1_3,
293
    .init = pc_init_pci,
290 294
    .max_cpus = 255,
291 295
    .is_default = 1,
292 296
    DEFAULT_MACHINE_OPTIONS,
......
302 306
static QEMUMachine pc_machine_v1_3 = {
303 307
    .name = "pc-1.3",
304 308
    .desc = "Standard PC",
305
    .init = pc_init_pci_1_3,
309
    .init = pc_init_pci,
306 310
    .max_cpus = 255,
307 311
    .compat_props = (GlobalProperty[]) {
308 312
        PC_COMPAT_1_3,
......
342 346
static QEMUMachine pc_machine_v1_2 = {
343 347
    .name = "pc-1.2",
344 348
    .desc = "Standard PC",
345
    .init = pc_init_pci,
349
    .init = pc_init_pci_1_2,
346 350
    .max_cpus = 255,
347 351
    .compat_props = (GlobalProperty[]) {
348 352
        PC_COMPAT_1_2,
......
386 390
static QEMUMachine pc_machine_v1_1 = {
387 391
    .name = "pc-1.1",
388 392
    .desc = "Standard PC",
389
    .init = pc_init_pci,
393
    .init = pc_init_pci_1_2,
390 394
    .max_cpus = 255,
391 395
    .compat_props = (GlobalProperty[]) {
392 396
        PC_COMPAT_1_1,
......
422 426
static QEMUMachine pc_machine_v1_0 = {
423 427
    .name = "pc-1.0",
424 428
    .desc = "Standard PC",
425
    .init = pc_init_pci,
429
    .init = pc_init_pci_1_2,
426 430
    .max_cpus = 255,
427 431
    .compat_props = (GlobalProperty[]) {
428 432
        PC_COMPAT_1_0,
......
438 442
static QEMUMachine pc_machine_v0_15 = {
439 443
    .name = "pc-0.15",
440 444
    .desc = "Standard PC",
441
    .init = pc_init_pci,
445
    .init = pc_init_pci_1_2,
442 446
    .max_cpus = 255,
443 447
    .compat_props = (GlobalProperty[]) {
444 448
        PC_COMPAT_0_15,
......
471 475
static QEMUMachine pc_machine_v0_14 = {
472 476
    .name = "pc-0.14",
473 477
    .desc = "Standard PC",
474
    .init = pc_init_pci,
478
    .init = pc_init_pci_1_2,
475 479
    .max_cpus = 255,
476 480
    .compat_props = (GlobalProperty[]) {
477 481
        PC_COMPAT_0_14, 
b/target-i386/cpu.c
211 211
        (1 << KVM_FEATURE_CLOCKSOURCE2) |
212 212
        (1 << KVM_FEATURE_ASYNC_PF) |
213 213
        (1 << KVM_FEATURE_STEAL_TIME) |
214
        (1 << KVM_FEATURE_PV_EOI) |
214 215
        (1 << KVM_FEATURE_CLOCKSOURCE_STABLE_BIT);
215 216

  
216
void enable_kvm_pv_eoi(void)
217
void disable_kvm_pv_eoi(void)
217 218
{
218
    kvm_default_features |= (1UL << KVM_FEATURE_PV_EOI);
219
    kvm_default_features &= ~(1UL << KVM_FEATURE_PV_EOI);
219 220
}
220 221

  
221 222
void host_cpuid(uint32_t function, uint32_t count,
b/target-i386/cpu.h
1250 1250

  
1251 1251
void cpu_report_tpr_access(CPUX86State *env, TPRAccess access);
1252 1252

  
1253
void enable_kvm_pv_eoi(void);
1253
void disable_kvm_pv_eoi(void);
1254 1254

  
1255 1255
/* Return name of 32-bit register, from a R_* constant */
1256 1256
const char *get_register_name_32(unsigned int reg);

Also available in: Unified diff