All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PULL 0/3] pc, virtio bugfixes for 2.3
@ 2015-03-25 15:30 Michael S. Tsirkin
  2015-03-25 15:30 ` [Qemu-devel] [PULL 1/3] acpi: Add missing GCC_FMT_ATTR to local function Michael S. Tsirkin
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Michael S. Tsirkin @ 2015-03-25 15:30 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell

The following changes since commit 054903a832b865eb5432d79b5c9d1e1ff31b58d7:

  Update version for v2.3.0-rc1 release (2015-03-24 16:34:16 +0000)

are available in the git repository at:

  git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git tags/for_upstream

for you to fetch changes up to 7e0e736ecdfeac6d3517513d3a702304e4f6cf59:

  virtio-net: validate backend queue numbers against bus limitation (2015-03-25 13:39:25 +0100)

----------------------------------------------------------------
pc, virtio bugfixes for 2.3

Several bugfixes, nothing stands out especially.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>

----------------------------------------------------------------
Jason Wang (1):
      virtio-net: validate backend queue numbers against bus limitation

Michael S. Tsirkin (1):
      virtio-serial: fix virtio config size

Stefan Weil (1):
      acpi: Add missing GCC_FMT_ATTR to local function

 hw/acpi/aml-build.c         | 2 +-
 hw/char/virtio-serial-bus.c | 4 +++-
 hw/net/virtio-net.c         | 7 +++++++
 3 files changed, 11 insertions(+), 2 deletions(-)

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Qemu-devel] [PULL 1/3] acpi: Add missing GCC_FMT_ATTR to local function
  2015-03-25 15:30 [Qemu-devel] [PULL 0/3] pc, virtio bugfixes for 2.3 Michael S. Tsirkin
@ 2015-03-25 15:30 ` Michael S. Tsirkin
  2015-03-25 15:30 ` [Qemu-devel] [PULL 2/3] virtio-serial: fix virtio config size Michael S. Tsirkin
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Michael S. Tsirkin @ 2015-03-25 15:30 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Stefan Weil

From: Stefan Weil <sw@weilnetz.de>

This fixes these gcc warnings (not enabled in default build):

hw/acpi/aml-build.c:83:5: warning:
 function might be possible candidate for ‘gnu_printf’ format attribute [-Wsuggest-attribute=format]
hw/acpi/aml-build.c:88:5: warning:
 function might be possible candidate for ‘gnu_printf’ format attribute [-Wsuggest-attribute=format]

Cc: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Stefan Weil <sw@weilnetz.de>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 hw/acpi/aml-build.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/acpi/aml-build.c b/hw/acpi/aml-build.c
index 6242908..d7945f6 100644
--- a/hw/acpi/aml-build.c
+++ b/hw/acpi/aml-build.c
@@ -68,7 +68,7 @@ build_append_nameseg(GArray *array, const char *seg)
     g_array_append_vals(array, "____", ACPI_NAMESEG_LEN - len);
 }
 
-static void
+static void GCC_FMT_ATTR(2, 0)
 build_append_namestringv(GArray *array, const char *format, va_list ap)
 {
     /* It would be nicer to use g_string_vprintf but it's only there in 2.22 */
-- 
MST

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Qemu-devel] [PULL 2/3] virtio-serial: fix virtio config size
  2015-03-25 15:30 [Qemu-devel] [PULL 0/3] pc, virtio bugfixes for 2.3 Michael S. Tsirkin
  2015-03-25 15:30 ` [Qemu-devel] [PULL 1/3] acpi: Add missing GCC_FMT_ATTR to local function Michael S. Tsirkin
@ 2015-03-25 15:30 ` Michael S. Tsirkin
  2015-03-25 15:30 ` [Qemu-devel] [PULL 3/3] virtio-net: validate backend queue numbers against bus limitation Michael S. Tsirkin
  2015-03-26 13:30 ` [Qemu-devel] [PULL 0/3] pc, virtio bugfixes for 2.3 Peter Maydell
  3 siblings, 0 replies; 5+ messages in thread
From: Michael S. Tsirkin @ 2015-03-25 15:30 UTC (permalink / raw)
  To: qemu-devel; +Cc: Amit Shah, Peter Maydell, Cole Robinson

commit 9b70c1790acacae54d559d38ca69186a85040bb8
    virtio-serial: switch to standard-headers

changes virtio_console_config size from 8 to 12 bytes:
it adds an optional 4 byte emerg_wr field.

As this crosses a power of two boundary, this changes the PCI BAR size,
which breaks migration compatibility with old qemu machine types.
It's probably a problem for other transports as well.

As a temporary fix, as we don't yet support this new field anyway,
simply make the config size smaller at init time.

Long terms we probably want something along the lines
of virtio_net_set_config_size.

Reported-by: Cole Robinson <crobinso@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Tested-by: Cole Robinson <crobinso@redhat.com>
---
 hw/char/virtio-serial-bus.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/hw/char/virtio-serial-bus.c b/hw/char/virtio-serial-bus.c
index d14e872..e336bdb 100644
--- a/hw/char/virtio-serial-bus.c
+++ b/hw/char/virtio-serial-bus.c
@@ -980,8 +980,10 @@ static void virtio_serial_device_realize(DeviceState *dev, Error **errp)
         return;
     }
 
+    /* We don't support emergency write, skip it for now. */
+    /* TODO: cleaner fix, depending on host features. */
     virtio_init(vdev, "virtio-serial", VIRTIO_ID_CONSOLE,
-                sizeof(struct virtio_console_config));
+                offsetof(struct virtio_console_config, emerg_wr));
 
     /* Spawn a new virtio-serial bus on which the ports will ride as devices */
     qbus_create_inplace(&vser->bus, sizeof(vser->bus), TYPE_VIRTIO_SERIAL_BUS,
-- 
MST

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Qemu-devel] [PULL 3/3] virtio-net: validate backend queue numbers against bus limitation
  2015-03-25 15:30 [Qemu-devel] [PULL 0/3] pc, virtio bugfixes for 2.3 Michael S. Tsirkin
  2015-03-25 15:30 ` [Qemu-devel] [PULL 1/3] acpi: Add missing GCC_FMT_ATTR to local function Michael S. Tsirkin
  2015-03-25 15:30 ` [Qemu-devel] [PULL 2/3] virtio-serial: fix virtio config size Michael S. Tsirkin
@ 2015-03-25 15:30 ` Michael S. Tsirkin
  2015-03-26 13:30 ` [Qemu-devel] [PULL 0/3] pc, virtio bugfixes for 2.3 Peter Maydell
  3 siblings, 0 replies; 5+ messages in thread
From: Michael S. Tsirkin @ 2015-03-25 15:30 UTC (permalink / raw)
  To: qemu-devel; +Cc: Peter Maydell, Jason Wang, qemu-stable, Stefan Hajnoczi

From: Jason Wang <jasowang@redhat.com>

We don't validate the backend queue numbers against bus limitation,
this will easily crash qemu if it exceeds the limitation which will
hit the abort() in virtio_del_queue(). An example is trying to
starting a virtio-net device with 256 queues. E.g:

./qemu-system-x86_64 -netdev tap,id=hn0,queues=256 -device
virtio-net-pci,netdev=hn0

Fixing this by doing the validation and fail early.

Cc: Michael S. Tsirkin <mst@redhat.com>
Cc: qemu-stable <qemu-stable@nongnu.org>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
---
 hw/net/virtio-net.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
index 27adcc5..59f76bc 100644
--- a/hw/net/virtio-net.c
+++ b/hw/net/virtio-net.c
@@ -1588,6 +1588,13 @@ static void virtio_net_device_realize(DeviceState *dev, Error **errp)
     virtio_init(vdev, "virtio-net", VIRTIO_ID_NET, n->config_size);
 
     n->max_queues = MAX(n->nic_conf.peers.queues, 1);
+    if (n->max_queues * 2 + 1 > VIRTIO_PCI_QUEUE_MAX) {
+        error_setg(errp, "Invalid number of queues (= %" PRIu32 "), "
+                   "must be a postive integer less than %d.",
+                   n->max_queues, (VIRTIO_PCI_QUEUE_MAX - 1) / 2);
+        virtio_cleanup(vdev);
+        return;
+    }
     n->vqs = g_malloc0(sizeof(VirtIONetQueue) * n->max_queues);
     n->vqs[0].rx_vq = virtio_add_queue(vdev, 256, virtio_net_handle_rx);
     n->curr_queues = 1;
-- 
MST

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [Qemu-devel] [PULL 0/3] pc, virtio bugfixes for 2.3
  2015-03-25 15:30 [Qemu-devel] [PULL 0/3] pc, virtio bugfixes for 2.3 Michael S. Tsirkin
                   ` (2 preceding siblings ...)
  2015-03-25 15:30 ` [Qemu-devel] [PULL 3/3] virtio-net: validate backend queue numbers against bus limitation Michael S. Tsirkin
@ 2015-03-26 13:30 ` Peter Maydell
  3 siblings, 0 replies; 5+ messages in thread
From: Peter Maydell @ 2015-03-26 13:30 UTC (permalink / raw)
  To: Michael S. Tsirkin; +Cc: QEMU Developers

On 25 March 2015 at 15:30, Michael S. Tsirkin <mst@redhat.com> wrote:
> The following changes since commit 054903a832b865eb5432d79b5c9d1e1ff31b58d7:
>
>   Update version for v2.3.0-rc1 release (2015-03-24 16:34:16 +0000)
>
> are available in the git repository at:
>
>   git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git tags/for_upstream
>
> for you to fetch changes up to 7e0e736ecdfeac6d3517513d3a702304e4f6cf59:
>
>   virtio-net: validate backend queue numbers against bus limitation (2015-03-25 13:39:25 +0100)
>
> ----------------------------------------------------------------
> pc, virtio bugfixes for 2.3
>
> Several bugfixes, nothing stands out especially.
>
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>

Applied, thanks.

-- PMM

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-03-26 13:30 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-03-25 15:30 [Qemu-devel] [PULL 0/3] pc, virtio bugfixes for 2.3 Michael S. Tsirkin
2015-03-25 15:30 ` [Qemu-devel] [PULL 1/3] acpi: Add missing GCC_FMT_ATTR to local function Michael S. Tsirkin
2015-03-25 15:30 ` [Qemu-devel] [PULL 2/3] virtio-serial: fix virtio config size Michael S. Tsirkin
2015-03-25 15:30 ` [Qemu-devel] [PULL 3/3] virtio-net: validate backend queue numbers against bus limitation Michael S. Tsirkin
2015-03-26 13:30 ` [Qemu-devel] [PULL 0/3] pc, virtio bugfixes for 2.3 Peter Maydell

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.