From baa08ba335b8dafaae4fb96952835a048ca21d93 Mon Sep 17 00:00:00 2001 Message-Id: In-Reply-To: <1d7d27453d05521b09c5b709aa6f00c682ab81dc.1369899578.git.minovotn@redhat.com> References: <1d7d27453d05521b09c5b709aa6f00c682ab81dc.1369899578.git.minovotn@redhat.com> From: Laszlo Ersek Date: Wed, 22 May 2013 11:31:12 +0200 Subject: [PATCH 13/15] pvpanic: create pvpanic by default for machine 1.5 RH-Author: Laszlo Ersek Message-id: <1369222273-3298-9-git-send-email-lersek@redhat.com> Patchwork-id: 51529 O-Subject: [RHEL-6.5 qemu-kvm PATCH v2 8/9] pvpanic: create pvpanic by default for machine 1.5 Bugzilla: 833530 RH-Acked-by: Andrew Jones RH-Acked-by: Paolo Bonzini RH-Acked-by: Gerd Hoffmann Signed-off-by: Paolo Bonzini Signed-off-by: Hu Tao Reviewed-by: Markus Armbruster Message-id: f840042f0e1205041f8feaf0d39ca639884f3a00.1366945969.git.hutao@cn.fujitsu.com Signed-off-by: Anthony Liguori RHEL-6 notes: - manual port of upstream commit 3ab135f3462af4c523a4b5969f9d6c67b2ac427a, - dropped q35 hunks, - first machine enabling it is RHEL-6.5, - our isa_create_simple() doesn't take a bus. Signed-off-by: Laszlo Ersek --- v2: - CONFIG_PVPANIC is always defined, no need for the placeholder macro [Paolo Bonzini] hw/pc.h | 3 +++ hw/pc.c | 7 +++++++ hw/pvpanic.c | 7 +++++++ 3 files changed, 17 insertions(+), 0 deletions(-) Signed-off-by: Michal Novotny --- hw/pc.c | 7 +++++++ hw/pc.h | 3 +++ hw/pvpanic.c | 7 +++++++ 3 files changed, 17 insertions(+) diff --git a/hw/pc.c b/hw/pc.c index 04c1b70..fefaee0 100644 --- a/hw/pc.c +++ b/hw/pc.c @@ -1114,6 +1114,8 @@ static const char *setdef_cpu_model(const char *model_str, } } +static bool has_pvpanic = true; + /* PC hardware initialisation */ static void pc_init1(ram_addr_t ram_size, const char *boot_device, @@ -1442,6 +1444,10 @@ static void pc_init1(ram_addr_t ram_size, extboot_init(info->bdrv, 1); } + if (has_pvpanic) { + pvpanic_init(); + } + #ifdef CONFIG_KVM_DEVICE_ASSIGNMENT if (kvm_enabled()) { add_assigned_devices(pci_bus, assigned_devices, assigned_devices_index); @@ -1737,6 +1743,7 @@ static void rhel_common_init(const char *type1_version, static void pc_rhel640_compat(void) { disable_kvm_sep(); + has_pvpanic = false; } static void pc_rhel630_compat(void) diff --git a/hw/pc.h b/hw/pc.h index 8392c5b..f8e6651 100644 --- a/hw/pc.h +++ b/hw/pc.h @@ -87,6 +87,9 @@ void *vmmouse_init(void *m); #define vmmouse_init(m) do { } while (0) #endif +/* pvpanic.c */ +int pvpanic_init(void); + /* pckbd.c */ void i8042_init(qemu_irq kbd_irq, qemu_irq mouse_irq, uint32_t io_base); diff --git a/hw/pvpanic.c b/hw/pvpanic.c index bfad31c..821aa23 100644 --- a/hw/pvpanic.c +++ b/hw/pvpanic.c @@ -21,6 +21,7 @@ #include "qemu-log.h" #include "hw/fw_cfg.h" +#include "hw/pc.h" /* The bit of supported pv event */ #define PVPANIC_F_PANICKED 0 @@ -90,6 +91,12 @@ static int pvpanic_isa_init(ISADevice *dev) return 0; } +int pvpanic_init(void) +{ + isa_create_simple("pvpanic"); + return 0; +} + static ISADeviceInfo pvpanic_isa_info = { .qdev.name = "pvpanic", .qdev.size = sizeof(PVPanicState), -- 1.7.11.7