[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 2/2] Make kvm_enabled unavailable to non-target
From: |
Blue Swirl |
Subject: |
Re: [Qemu-devel] [PATCH 2/2] Make kvm_enabled unavailable to non-target devices |
Date: |
Fri, 2 Apr 2010 19:33:58 +0300 |
On 4/2/10, Anthony Liguori <address@hidden> wrote:
> On 04/02/2010 10:46 AM, Blue Swirl wrote:
>
> > Signed-off-by: Blue Swirl<address@hidden>
> > ---
> > hw/acpi.c | 10 +++++-----
> > hw/pc.h | 2 +-
> > hw/poison.h | 3 +++
> > 3 files changed, 9 insertions(+), 6 deletions(-)
> >
> > diff --git a/hw/acpi.c b/hw/acpi.c
> > index 5c01c2e..7c2b109 100644
> > --- a/hw/acpi.c
> > +++ b/hw/acpi.c
> > @@ -51,7 +51,7 @@ typedef struct PIIX4PMState {
> > qemu_irq irq;
> > qemu_irq cmos_s3;
> > qemu_irq smi_irq;
> > - int kvm_enabled;
> > + int kvm_is_enabled;
> > } PIIX4PMState;
> >
> > #define RSM_STS (1<< 15)
> > @@ -482,7 +482,7 @@ static void piix4_reset(void *opaque)
> > pci_conf[0x5a] = 0;
> > pci_conf[0x5b] = 0;
> >
> > - if (s->kvm_enabled) {
> > + if (s->kvm_is_enabled) {
> > /* Mark SMM as already inited (until KVM supports SMM). */
> > pci_conf[0x5B] = 0x02;
> > }
> > @@ -502,7 +502,7 @@ static void piix4_powerdown(void *opaque, int irq,
> > int power_failing)
> >
> > i2c_bus *piix4_pm_init(PCIBus *bus, int devfn, uint32_t smb_io_base,
> > qemu_irq sci_irq, qemu_irq cmos_s3, qemu_irq
> smi_irq,
> > - int kvm_enabled)
> > + int kvm_is_enabled)
> > {
> > PIIX4PMState *s;
> > uint8_t *pci_conf;
> > @@ -529,8 +529,8 @@ i2c_bus *piix4_pm_init(PCIBus *bus, int devfn,
> > uint32_t smb_io_base,
> >
> > register_ioport_write(ACPI_DBG_IO_ADDR, 4, 4,
> acpi_dbg_writel, s);
> >
> > - s->kvm_enabled = kvm_enabled;
> > - if (s->kvm_enabled) {
> > + s->kvm_is_enabled = kvm_is_enabled;
> > + if (s->kvm_is_enabled) {
> > /* Mark SMM as already inited to prevent SMM from running.
> > KVM does not
> > * support SMM mode. */
> > pci_conf[0x5B] = 0x02;
> > diff --git a/hw/pc.h b/hw/pc.h
> > index 5f86b37..08a541d 100644
> > --- a/hw/pc.h
> > +++ b/hw/pc.h
> > @@ -92,7 +92,7 @@ int acpi_table_add(const char *table_desc);
> >
> > i2c_bus *piix4_pm_init(PCIBus *bus, int devfn, uint32_t smb_io_base,
> > qemu_irq sci_irq, qemu_irq cmos_s3, qemu_irq
> smi_irq,
> > - int kvm_enabled);
> > + int kvm_is_enabled);
> > void piix4_smbus_register_device(SMBusDevice *dev,
> uint8_t addr);
> > void piix4_acpi_system_hot_add_init(PCIBus *bus);
> >
> > diff --git a/hw/poison.h b/hw/poison.h
> > index d7db7f4..18b9657 100644
> > --- a/hw/poison.h
> > +++ b/hw/poison.h
> > @@ -46,5 +46,8 @@
> > #pragma GCC poison CPU_INTERRUPT_VIRQ
> > #pragma GCC poison CPU_INTERRUPT_NMI
> >
> > +#pragma GCC poison kvm_allowed
> > +#pragma GCC poison kvm_enabled
> >
> >
> >
>
> kvm_enabled() is a macro. I dont' think this poison pragma is actually
> meaningful.
I'm not familiar with poison pragmas, but actually poisoning only
kvm_allowed didn't work.