--- qemu-kvm-0.15.1/hw/virtio-pci.c	2011-10-29 12:00:12.000000000 +0200
+++ qemu-kvm-0.15.1-vpfring-diff/hw/virtio-pci.c	2011-10-29 12:04:56.000000000 +0200
@@ -19,6 +19,7 @@
 #include "virtio-blk.h"
 #include "virtio-net.h"
 #include "virtio-serial.h"
+#include "vnplug-ctrl.h"
 #include "pci.h"
 #include "qemu-error.h"
 #include "msix.h"
@@ -880,6 +881,27 @@
     return virtio_exit_pci(pci_dev);
 }
 
+static int vnplug_ctrl_init_pci(PCIDevice *pci_dev)
+{
+	VirtIOPCIProxy *proxy = DO_UPCAST(VirtIOPCIProxy, pci_dev, pci_dev);
+	VirtIODevice *vdev;
+
+	vdev = vnplug_ctrl_init(&pci_dev->qdev);
+
+	virtio_init_pci(proxy, vdev);
+
+	proxy->nvectors = vdev->nvectors;
+	return 0;
+}
+
+static int vnplug_ctrl_exit_pci(PCIDevice *pci_dev)
+{
+	VirtIOPCIProxy *proxy = DO_UPCAST(VirtIOPCIProxy, pci_dev, pci_dev);
+
+	vnplug_ctrl_exit(proxy->vdev);
+	return virtio_exit_pci(pci_dev);
+}
+
 static PCIDeviceInfo virtio_info[] = {
     {
         .qdev.name = "virtio-blk-pci",
@@ -965,6 +987,22 @@
         },
         .qdev.reset = virtio_pci_reset,
     },{
+	.qdev.name  = "vnplug",
+	.qdev.alias = "vnplug",
+	.qdev.size  = sizeof(VirtIOPCIProxy),
+	.init	   = vnplug_ctrl_init_pci,
+	.exit	   = vnplug_ctrl_exit_pci,
+	//.romfile    = "pxe-vnplug.rom",
+	.vendor_id  = PCI_VENDOR_ID_REDHAT_QUMRANET,
+	.device_id  = PCI_DEVICE_ID_VNPLUG_CTRL,
+	.revision   = VIRTIO_PCI_ABI_VERSION,
+	.class_id   = PCI_CLASS_NETWORK_ETHERNET,
+	.qdev.props = (Property[]) {
+		DEFINE_VIRTIO_COMMON_FEATURES(VirtIOPCIProxy, host_features),
+		DEFINE_PROP_END_OF_LIST(),
+	},
+	.qdev.reset = virtio_pci_reset,
+    },{
         /* end of list */
     }
 };
