]> git.proxmox.com Git - qemu.git/commit - hw/i386/pc_piix.c
virtio-pci: change virtio balloon PCI class code
authorDavid Gibson <david@gibson.dropbear.id.au>
Tue, 3 Apr 2012 14:24:11 +0000 (17:24 +0300)
committerMichael S. Tsirkin <mst@redhat.com>
Wed, 11 Apr 2012 10:24:59 +0000 (13:24 +0300)
commit2ba1d381c2f5f5868fe071b45977c2ed459d78f0
treec9cf021f47b3984c40d8133c66f9014c5972f66f
parent4490c71191b59dce2dd88f5f9ab49f2c92ab410c
virtio-pci: change virtio balloon PCI class code

Currently the virtio balloon device, when using the virtio-pci interface
advertises itself with PCI class code MEMORY_RAM.  This is wrong; the
balloon is vaguely related to memory, but is nothing like a PCI memory
device in the meaning of the class code, and this code is not required
or suggested by the virtio PCI specification.

Worse, this patch causes problems on the pseries machine, because the
firmware, seeing this class code, advertises the device as memory in the
device tree, and then a guest kernel bug causes it to see this "memory"
before the real system memory, leading to a crash in early boot.

This patch fixes the problem by removing the bogus PCI class code on the
balloon device.  The backwards compatibility PC machines get new compat
properties so that they don't change.

Cc: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
hw/pc_piix.c
hw/virtio-pci.c