X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fdevices%2Flnx_virtio_vnet.c;h=f7795f56c726af133170ab80bf26b6d49123e555;hb=ffd6d915b585a4a17a2d5b081313f0968885a105;hp=85535e8f3ef463eb411285f30d25a2291f3bd8db;hpb=94f67717b6461df514dc225ed84f03b44c44061b;p=palacios.releases.git diff --git a/palacios/src/devices/lnx_virtio_vnet.c b/palacios/src/devices/lnx_virtio_vnet.c index 85535e8..f7795f5 100644 --- a/palacios/src/devices/lnx_virtio_vnet.c +++ b/palacios/src/devices/lnx_virtio_vnet.c @@ -23,7 +23,7 @@ #include #include #include -#include +#include #include #include @@ -204,7 +204,7 @@ static int handle_cmd_kick(struct guest_info * core, if (!(q->avail->flags & VIRTIO_NO_IRQ_FLAG)) { PrintDebug("Raising IRQ %d\n", vnet_state->pci_dev->config_header.intr_line); - v3_pci_raise_irq(vnet_state->pci_bus, 0, vnet_state->pci_dev); + v3_pci_raise_irq(vnet_state->pci_bus, vnet_state->pci_dev, 0); vnet_state->virtio_cfg.pci_isr = 1; } @@ -258,7 +258,7 @@ static int vnet_pkt_input_cb(struct v3_vm_info * vm, } if (!(q->avail->flags & VIRTIO_NO_IRQ_FLAG)) { - v3_pci_raise_irq(vnet_state->pci_bus, 0, vnet_state->pci_dev); + v3_pci_raise_irq(vnet_state->pci_bus, vnet_state->pci_dev, 0); vnet_state->virtio_cfg.pci_isr = 0x1; PrintDebug("Raising IRQ %d\n", vnet_state->pci_dev->config_header.intr_line); } @@ -303,7 +303,7 @@ static int do_tx_pkts(struct guest_info * core, memcpy(pkt.header, virtio_pkt->pkt, ETHERNET_HEADER_LEN); pkt.data = virtio_pkt->pkt; - v3_vnet_send_pkt(&pkt, NULL, 1); + v3_vnet_send_pkt(&pkt, NULL); q->used->ring[q->used->index % q->queue_size].id = q->avail->ring[q->cur_avail_idx % q->queue_size]; q->used->ring[q->used->index % q->queue_size].length = pkt_desc->length; // What do we set this to???? @@ -320,8 +320,8 @@ static int do_tx_pkts(struct guest_info * core, } if (!(q->avail->flags & VIRTIO_NO_IRQ_FLAG)) { - v3_pci_raise_irq(vnet_state->pci_bus, 0, vnet_state->pci_dev); - vnet_state->virtio_cfg.pci_isr = 0x1; + v3_pci_raise_irq(vnet_state->pci_bus, vnet_state->pci_dev, 0); + vnet_state->virtio_cfg.pci_isr = 0x1; } return 0; @@ -525,7 +525,7 @@ static int vnet_virtio_io_read(struct guest_info * core, case VIRTIO_ISR_PORT: *(uint8_t *)dst = vnet_state->virtio_cfg.pci_isr; vnet_state->virtio_cfg.pci_isr = 0; - v3_pci_lower_irq(vnet_state->pci_bus, 0, vnet_state->pci_dev); + v3_pci_lower_irq(vnet_state->pci_bus, vnet_state->pci_dev, 0); break; default: @@ -575,6 +575,12 @@ static int dev_init(struct v3_vm_info * vm, v3_cfg_tree_t * cfg) { } vnet_state = (struct virtio_vnet_state *)V3_Malloc(sizeof(struct virtio_vnet_state)); + + if (!vnet_state) { + PrintError("Cannot allocate in init\n"); + return -1; + } + memset(vnet_state, 0, sizeof(struct virtio_vnet_state)); vnet_state->vm = vm; @@ -623,7 +629,7 @@ static int dev_init(struct v3_vm_info * vm, v3_cfg_tree_t * cfg) { pci_dev = v3_pci_register_device(pci_bus, PCI_STD_DEVICE, 0, 5 /*PCI_AUTO_DEV_NUM*/, 0, "LNX_VIRTIO_VNET", bars, - NULL, NULL, NULL, vnet_state); + NULL, NULL, NULL, NULL, vnet_state); if (!pci_dev) { PrintError("Could not register PCI Device\n");