Commit 8819c10b authored by Anthony Liguori's avatar Anthony Liguori
Browse files

Merge remote-tracking branch 'sstabellini/xen_fixes_20130603' into staging



* sstabellini/xen_fixes_20130603:
  xen: use pc_init_pci instead of pc_init_pci_no_kvmclock
  xen: remove xen_vcpu_init
  xen: start PCI hole at 0xe0000000 (same as pc_init1 and qemu-xen-traditional)
  xen_machine_pv: do not create a dummy CPU in machine->init
  main_loop: do not set nonblocking if xen_enabled()
  xen: simplify xen_enabled

Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
parents a3416197 9cdf79d0
Loading
Loading
Loading
Loading
+5 −6
Original line number Diff line number Diff line
@@ -98,13 +98,13 @@ static void pc_init1(MemoryRegion *system_memory,
    pc_cpus_init(cpu_model, icc_bridge);
    pc_acpi_init("acpi-dsdt.aml");

    if (kvmclock_enabled) {
    if (kvm_enabled() && kvmclock_enabled) {
        kvmclock_create();
    }

    if (ram_size >= 0xe0000000 ) {
        above_4g_mem_size = ram_size - 0xe0000000;
        below_4g_mem_size = 0xe0000000;
    if (ram_size >= QEMU_BELOW_4G_RAM_END ) {
        above_4g_mem_size = ram_size - QEMU_BELOW_4G_RAM_END;
        below_4g_mem_size = QEMU_BELOW_4G_RAM_END;
    } else {
        above_4g_mem_size = 0;
        below_4g_mem_size = ram_size;
@@ -323,8 +323,7 @@ static void pc_xen_hvm_init(QEMUMachineInitArgs *args)
    if (xen_hvm_init() != 0) {
        hw_error("xen hardware virtual machine initialisation failed");
    }
    pc_init_pci_no_kvmclock(args);
    xen_vcpu_init();
    pc_init_pci(args);
}
#endif

+0 −16
Original line number Diff line number Diff line
@@ -23,7 +23,6 @@
 */

#include "hw/hw.h"
#include "hw/i386/pc.h"
#include "hw/boards.h"
#include "hw/xen/xen_backend.h"
#include "xen_domainbuild.h"
@@ -31,27 +30,12 @@

static void xen_init_pv(QEMUMachineInitArgs *args)
{
    const char *cpu_model = args->cpu_model;
    const char *kernel_filename = args->kernel_filename;
    const char *kernel_cmdline = args->kernel_cmdline;
    const char *initrd_filename = args->initrd_filename;
    X86CPU *cpu;
    CPUState *cs;
    DriveInfo *dinfo;
    int i;

    /* Initialize a dummy CPU */
    if (cpu_model == NULL) {
#ifdef TARGET_X86_64
        cpu_model = "qemu64";
#else
        cpu_model = "qemu32";
#endif
    }
    cpu = cpu_x86_init(cpu_model);
    cs = CPU(cpu);
    cs->halted = 1;

    /* Initialize backend core & drivers */
    if (xen_be_init() != 0) {
        fprintf(stderr, "%s: xen backend core setup failed\n", __FUNCTION__);
+3 −0
Original line number Diff line number Diff line
@@ -77,6 +77,9 @@ extern int fd_bootchk;
void pc_register_ferr_irq(qemu_irq irq);
void pc_acpi_smi_interrupt(void *opaque, int irq, int level);

#define QEMU_BELOW_4G_RAM_END       0xe0000000
#define QEMU_BELOW_4G_MMIO_LENGTH   ((1ULL << 32) - QEMU_BELOW_4G_RAM_END)

void pc_cpus_init(const char *cpu_model, DeviceState *icc_bridge);
void pc_hot_add_cpu(const int64_t id, Error **errp);
void pc_acpi_init(const char *default_dsdt);
+0 −5
Original line number Diff line number Diff line
@@ -25,11 +25,7 @@ extern bool xen_allowed;

static inline bool xen_enabled(void)
{
#if defined(CONFIG_XEN_BACKEND) && defined(CONFIG_XEN)
    return xen_allowed;
#else
    return 0;
#endif
}

int xen_pci_slot_get_pirq(PCIDevice *pci_dev, int irq_num);
@@ -42,7 +38,6 @@ qemu_irq *xen_interrupt_controller_init(void);

int xen_init(void);
int xen_hvm_init(void);
void xen_vcpu_init(void);
void xenstore_store_pv_console_info(int i, struct CharDriverState *chr);

#if defined(NEED_CPU_H) && !defined(CONFIG_USER_ONLY)
+1 −1
Original line number Diff line number Diff line
@@ -2022,7 +2022,7 @@ static void main_loop(void)
    int64_t ti;
#endif
    do {
        nonblocking = !kvm_enabled() && last_io > 0;
        nonblocking = !kvm_enabled() && !xen_enabled() && last_io > 0;
#ifdef CONFIG_PROFILER
        ti = profile_getclock();
#endif
Loading