qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH] qemu/pci: clarify pci config load routine


From: Michael S. Tsirkin
Subject: [Qemu-devel] [PATCH] qemu/pci: clarify pci config load routine
Date: Mon, 5 Oct 2009 22:46:11 +0200
User-agent: Mutt/1.5.19 (2009-01-05)

PCI load routine has to be called with size equal to 256 (otherwise it
will crash in weird ways).  So assert this, making code clearer.
Also avoid dynamically sized array on stack - good for portability.

Signed-off-by: Michael S. Tsirkin <address@hidden>
Cc: Juan Quintela <address@hidden>
---
 hw/pci.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/hw/pci.c b/hw/pci.c
index ade778f..196297a 100644
--- a/hw/pci.c
+++ b/hw/pci.c
@@ -193,14 +193,15 @@ int pci_bus_num(PCIBus *s)
 static int get_pci_config_device(QEMUFile *f, void *pv, size_t size)
 {
     PCIDevice *s = container_of(pv, PCIDevice, config);
-    uint8_t config[size];
+    uint8_t config[PCI_CONFIG_SPACE_SIZE];
     int i;
 
-    qemu_get_buffer(f, config, size);
-    for (i = 0; i < size; ++i)
+    assert(size == sizeof config);
+    qemu_get_buffer(f, config, sizeof config);
+    for (i = 0; i < sizeof config; ++i)
         if ((config[i] ^ s->config[i]) & s->cmask[i] & ~s->wmask[i])
             return -EINVAL;
-    memcpy(s->config, config, size);
+    memcpy(s->config, config, sizeof config);
 
     pci_update_mappings(s);
 
-- 
1.6.5.rc2




reply via email to

[Prev in Thread] Current Thread [Next in Thread]