Displaying 20 results from an estimated 56 matches for "virtio_pci_queue_max".
2009 Jun 18
0
[PATCHv5 09/13] qemu: virtio support for many interrupt vectors
...VIRTIO_QUEUE_BASE:
- virtio_queue_set_addr(vdev, vdev->queue_sel, value);
+ if (value == 0)
+ virtio_reset(vdev);
+ else
+ virtio_queue_set_addr(vdev, vdev->queue_sel, value);
break;
case SYBORG_VIRTIO_QUEUE_SEL:
if (value < VIRTIO_PCI_QUEUE_MAX)
@@ -228,7 +231,7 @@ static CPUWriteMemoryFunc *syborg_virtio_writefn[] = {
syborg_virtio_writel
};
-static void syborg_virtio_update_irq(void *opaque)
+static void syborg_virtio_update_irq(void *opaque, uint16_t vector)
{
SyborgVirtIOProxy *proxy = opaque;
int level;
@@ -239,7...
2009 Jun 18
0
[PATCHv5 09/13] qemu: virtio support for many interrupt vectors
...VIRTIO_QUEUE_BASE:
- virtio_queue_set_addr(vdev, vdev->queue_sel, value);
+ if (value == 0)
+ virtio_reset(vdev);
+ else
+ virtio_queue_set_addr(vdev, vdev->queue_sel, value);
break;
case SYBORG_VIRTIO_QUEUE_SEL:
if (value < VIRTIO_PCI_QUEUE_MAX)
@@ -228,7 +231,7 @@ static CPUWriteMemoryFunc *syborg_virtio_writefn[] = {
syborg_virtio_writel
};
-static void syborg_virtio_update_irq(void *opaque)
+static void syborg_virtio_update_irq(void *opaque, uint16_t vector)
{
SyborgVirtIOProxy *proxy = opaque;
int level;
@@ -239,7...
2009 Jun 10
0
[PATCHv4 09/13] qemu: virtio support for many interrupt vectors
...VIRTIO_QUEUE_BASE:
- virtio_queue_set_addr(vdev, vdev->queue_sel, value);
+ if (value == 0)
+ virtio_reset(vdev);
+ else
+ virtio_queue_set_addr(vdev, vdev->queue_sel, value);
break;
case SYBORG_VIRTIO_QUEUE_SEL:
if (value < VIRTIO_PCI_QUEUE_MAX)
@@ -228,7 +231,7 @@ static CPUWriteMemoryFunc *syborg_virtio_writefn[] = {
syborg_virtio_writel
};
-static void syborg_virtio_update_irq(void *opaque)
+static void syborg_virtio_update_irq(void *opaque, uint16_t vector)
{
SyborgVirtIOProxy *proxy = opaque;
int level;
@@ -239,7...
2009 Jun 10
0
[PATCHv4 09/13] qemu: virtio support for many interrupt vectors
...VIRTIO_QUEUE_BASE:
- virtio_queue_set_addr(vdev, vdev->queue_sel, value);
+ if (value == 0)
+ virtio_reset(vdev);
+ else
+ virtio_queue_set_addr(vdev, vdev->queue_sel, value);
break;
case SYBORG_VIRTIO_QUEUE_SEL:
if (value < VIRTIO_PCI_QUEUE_MAX)
@@ -228,7 +231,7 @@ static CPUWriteMemoryFunc *syborg_virtio_writefn[] = {
syborg_virtio_writel
};
-static void syborg_virtio_update_irq(void *opaque)
+static void syborg_virtio_update_irq(void *opaque, uint16_t vector)
{
SyborgVirtIOProxy *proxy = opaque;
int level;
@@ -239,7...
2009 Jun 21
0
[PATCHv6 07/12] qemu/virtio: virtio support for many interrupt vectors
...VIRTIO_QUEUE_BASE:
- virtio_queue_set_addr(vdev, vdev->queue_sel, value);
+ if (value == 0)
+ virtio_reset(vdev);
+ else
+ virtio_queue_set_addr(vdev, vdev->queue_sel, value);
break;
case SYBORG_VIRTIO_QUEUE_SEL:
if (value < VIRTIO_PCI_QUEUE_MAX)
@@ -228,7 +231,7 @@ static CPUWriteMemoryFunc *syborg_virtio_writefn[] = {
syborg_virtio_writel
};
-static void syborg_virtio_update_irq(void *opaque)
+static void syborg_virtio_update_irq(void *opaque, uint16_t vector)
{
SyborgVirtIOProxy *proxy = opaque;
int level;
@@ -239,7...
2009 Jun 21
0
[PATCHv6 07/12] qemu/virtio: virtio support for many interrupt vectors
...VIRTIO_QUEUE_BASE:
- virtio_queue_set_addr(vdev, vdev->queue_sel, value);
+ if (value == 0)
+ virtio_reset(vdev);
+ else
+ virtio_queue_set_addr(vdev, vdev->queue_sel, value);
break;
case SYBORG_VIRTIO_QUEUE_SEL:
if (value < VIRTIO_PCI_QUEUE_MAX)
@@ -228,7 +231,7 @@ static CPUWriteMemoryFunc *syborg_virtio_writefn[] = {
syborg_virtio_writel
};
-static void syborg_virtio_update_irq(void *opaque)
+static void syborg_virtio_update_irq(void *opaque, uint16_t vector)
{
SyborgVirtIOProxy *proxy = opaque;
int level;
@@ -239,7...
2009 May 25
0
[PATCH 09/11] qemu: virtio support for many interrupt vectors
...VIRTIO_QUEUE_BASE:
- virtio_queue_set_addr(vdev, vdev->queue_sel, value);
+ if (value == 0)
+ virtio_reset(vdev);
+ else
+ virtio_queue_set_addr(vdev, vdev->queue_sel, value);
break;
case SYBORG_VIRTIO_QUEUE_SEL:
if (value < VIRTIO_PCI_QUEUE_MAX)
@@ -228,7 +231,7 @@ static CPUWriteMemoryFunc *syborg_virtio_writefn[] = {
syborg_virtio_writel
};
-static void syborg_virtio_update_irq(void *opaque)
+static void syborg_virtio_update_irq(void *opaque, uint16_t vector)
{
SyborgVirtIOProxy *proxy = opaque;
int level;
@@ -239,7...
2009 Jun 02
0
[PATCHv2 09/13] qemu: virtio support for many interrupt vectors
...VIRTIO_QUEUE_BASE:
- virtio_queue_set_addr(vdev, vdev->queue_sel, value);
+ if (value == 0)
+ virtio_reset(vdev);
+ else
+ virtio_queue_set_addr(vdev, vdev->queue_sel, value);
break;
case SYBORG_VIRTIO_QUEUE_SEL:
if (value < VIRTIO_PCI_QUEUE_MAX)
@@ -228,7 +231,7 @@ static CPUWriteMemoryFunc *syborg_virtio_writefn[] = {
syborg_virtio_writel
};
-static void syborg_virtio_update_irq(void *opaque)
+static void syborg_virtio_update_irq(void *opaque, uint16_t vector)
{
SyborgVirtIOProxy *proxy = opaque;
int level;
@@ -239,7...
2009 Jun 05
0
[PATCHv3 09/13] qemu: virtio support for many interrupt vectors
...VIRTIO_QUEUE_BASE:
- virtio_queue_set_addr(vdev, vdev->queue_sel, value);
+ if (value == 0)
+ virtio_reset(vdev);
+ else
+ virtio_queue_set_addr(vdev, vdev->queue_sel, value);
break;
case SYBORG_VIRTIO_QUEUE_SEL:
if (value < VIRTIO_PCI_QUEUE_MAX)
@@ -228,7 +231,7 @@ static CPUWriteMemoryFunc *syborg_virtio_writefn[] = {
syborg_virtio_writel
};
-static void syborg_virtio_update_irq(void *opaque)
+static void syborg_virtio_update_irq(void *opaque, uint16_t vector)
{
SyborgVirtIOProxy *proxy = opaque;
int level;
@@ -239,7...
2009 May 25
0
[PATCH 09/11] qemu: virtio support for many interrupt vectors
...VIRTIO_QUEUE_BASE:
- virtio_queue_set_addr(vdev, vdev->queue_sel, value);
+ if (value == 0)
+ virtio_reset(vdev);
+ else
+ virtio_queue_set_addr(vdev, vdev->queue_sel, value);
break;
case SYBORG_VIRTIO_QUEUE_SEL:
if (value < VIRTIO_PCI_QUEUE_MAX)
@@ -228,7 +231,7 @@ static CPUWriteMemoryFunc *syborg_virtio_writefn[] = {
syborg_virtio_writel
};
-static void syborg_virtio_update_irq(void *opaque)
+static void syborg_virtio_update_irq(void *opaque, uint16_t vector)
{
SyborgVirtIOProxy *proxy = opaque;
int level;
@@ -239,7...
2009 Jun 02
0
[PATCHv2 09/13] qemu: virtio support for many interrupt vectors
...VIRTIO_QUEUE_BASE:
- virtio_queue_set_addr(vdev, vdev->queue_sel, value);
+ if (value == 0)
+ virtio_reset(vdev);
+ else
+ virtio_queue_set_addr(vdev, vdev->queue_sel, value);
break;
case SYBORG_VIRTIO_QUEUE_SEL:
if (value < VIRTIO_PCI_QUEUE_MAX)
@@ -228,7 +231,7 @@ static CPUWriteMemoryFunc *syborg_virtio_writefn[] = {
syborg_virtio_writel
};
-static void syborg_virtio_update_irq(void *opaque)
+static void syborg_virtio_update_irq(void *opaque, uint16_t vector)
{
SyborgVirtIOProxy *proxy = opaque;
int level;
@@ -239,7...
2009 Jun 05
0
[PATCHv3 09/13] qemu: virtio support for many interrupt vectors
...VIRTIO_QUEUE_BASE:
- virtio_queue_set_addr(vdev, vdev->queue_sel, value);
+ if (value == 0)
+ virtio_reset(vdev);
+ else
+ virtio_queue_set_addr(vdev, vdev->queue_sel, value);
break;
case SYBORG_VIRTIO_QUEUE_SEL:
if (value < VIRTIO_PCI_QUEUE_MAX)
@@ -228,7 +231,7 @@ static CPUWriteMemoryFunc *syborg_virtio_writefn[] = {
syborg_virtio_writel
};
-static void syborg_virtio_update_irq(void *opaque)
+static void syborg_virtio_update_irq(void *opaque, uint16_t vector)
{
SyborgVirtIOProxy *proxy = opaque;
int level;
@@ -239,7...
2007 Dec 21
0
[Virtio-for-kvm] [PATCH 1/7] userspace virtio
...;queue_sel].vring.used = NULL;
+ } else if (pa < (ram_size - TARGET_PAGE_SIZE)) {
+ virtqueue_init(&vdev->vq[vdev->queue_sel], phys_ram_base + pa);
+ /* FIXME if pa == 0, deal with device tear down */
+ }
+ break;
+ case VIRTIO_PCI_QUEUE_SEL:
+ if (val < VIRTIO_PCI_QUEUE_MAX)
+ vdev->queue_sel = val;
+ break;
+ case VIRTIO_PCI_QUEUE_NOTIFY:
+ if (val < VIRTIO_PCI_QUEUE_MAX && vdev->vq[val].vring.desc)
+ vdev->vq[val].handle_output(vdev, &vdev->vq[val]);
+ break;
+ case VIRTIO_PCI_STATUS:
+ vdev->status = val...
2007 Dec 21
0
[Virtio-for-kvm] [PATCH 1/7] userspace virtio
...;queue_sel].vring.used = NULL;
+ } else if (pa < (ram_size - TARGET_PAGE_SIZE)) {
+ virtqueue_init(&vdev->vq[vdev->queue_sel], phys_ram_base + pa);
+ /* FIXME if pa == 0, deal with device tear down */
+ }
+ break;
+ case VIRTIO_PCI_QUEUE_SEL:
+ if (val < VIRTIO_PCI_QUEUE_MAX)
+ vdev->queue_sel = val;
+ break;
+ case VIRTIO_PCI_QUEUE_NOTIFY:
+ if (val < VIRTIO_PCI_QUEUE_MAX && vdev->vq[val].vring.desc)
+ vdev->vq[val].handle_output(vdev, &vdev->vq[val]);
+ break;
+ case VIRTIO_PCI_STATUS:
+ vdev->status = val...
2013 Mar 29
8
[PATCH 0/3] virtio/vhost: Add checks for uninitialized VQs
From: Nicholas Bellinger <nab at linux-iscsi.org>
Hi folks,
This series adds a virtio_queue_valid() for use by virtio-pci code in
order to prevent opreations upon uninitialized VQs, that is currently
expected to occur during seabios setup of virtio-scsi.
This also includes a vhost specific check for uninitialized VQs in
vhost_verify_ring_mappings() to avoid this same case.
Please review.
2013 Mar 29
8
[PATCH 0/3] virtio/vhost: Add checks for uninitialized VQs
From: Nicholas Bellinger <nab at linux-iscsi.org>
Hi folks,
This series adds a virtio_queue_valid() for use by virtio-pci code in
order to prevent opreations upon uninitialized VQs, that is currently
expected to occur during seabios setup of virtio-scsi.
This also includes a vhost specific check for uninitialized VQs in
vhost_verify_ring_mappings() to avoid this same case.
Please review.
2013 May 28
3
[PATCH RFC] virtio-pci: new config layout: using memory BAR
...DO: 64-bit features */
+ return proxy->guest_feature_select ? 0 : vdev->guest_features;
+ case offsetof(struct virtio_pci_common_cfg, msix_config):
+ return vdev->config_vector;
+ case offsetof(struct virtio_pci_common_cfg, num_queues):
+ /* TODO: more exact limit? */
+ return VIRTIO_PCI_QUEUE_MAX;
+ case offsetof(struct virtio_pci_common_cfg, device_status):
+ return vdev->status;
+
+ /* About a specific virtqueue. */
+ case offsetof(struct virtio_pci_common_cfg, queue_select):
+ return vdev->queue_sel;
+ case offsetof(struct virtio_pci_common_cfg, queue_size):...
2013 May 28
3
[PATCH RFC] virtio-pci: new config layout: using memory BAR
...DO: 64-bit features */
+ return proxy->guest_feature_select ? 0 : vdev->guest_features;
+ case offsetof(struct virtio_pci_common_cfg, msix_config):
+ return vdev->config_vector;
+ case offsetof(struct virtio_pci_common_cfg, num_queues):
+ /* TODO: more exact limit? */
+ return VIRTIO_PCI_QUEUE_MAX;
+ case offsetof(struct virtio_pci_common_cfg, device_status):
+ return vdev->status;
+
+ /* About a specific virtqueue. */
+ case offsetof(struct virtio_pci_common_cfg, queue_select):
+ return vdev->queue_sel;
+ case offsetof(struct virtio_pci_common_cfg, queue_size):...
2013 May 28
0
[PATCH RFC] virtio-pci: new config layout: using memory BAR
...return proxy->guest_feature_select ? 0 : vdev->guest_features;
> + case offsetof(struct virtio_pci_common_cfg, msix_config):
> + return vdev->config_vector;
> + case offsetof(struct virtio_pci_common_cfg, num_queues):
> + /* TODO: more exact limit? */
> + return VIRTIO_PCI_QUEUE_MAX;
> + case offsetof(struct virtio_pci_common_cfg, device_status):
> + return vdev->status;
> +
> + /* About a specific virtqueue. */
> + case offsetof(struct virtio_pci_common_cfg, queue_select):
> + return vdev->queue_sel;
> + case offsetof(struct...
2013 May 29
0
[PATCH RFC] virtio-pci: new config layout: using memory BAR
...case offsetof(struct virtio_pci_common_cfg, msix_config):
+ assert(size == sizeof cfg.msix_config);
return vdev->config_vector;
case offsetof(struct virtio_pci_common_cfg, num_queues):
+ assert(size == sizeof cfg.num_queues);
/* TODO: more exact limit? */
return VIRTIO_PCI_QUEUE_MAX;
case offsetof(struct virtio_pci_common_cfg, device_status):
+ assert(size == sizeof cfg.device_status);
return vdev->status;
/* About a specific virtqueue. */
case offsetof(struct virtio_pci_common_cfg, queue_select):
+ assert(size == sizeof cfg.queue_select...