1. 20 3月, 2014 3 次提交
    • S
      virtio-rng: Avoid default_backend refcount leak · abdffd1f
      Stefan Hajnoczi 提交于
      QOM child properties take a reference to the object and release it when
      the property is deleted.  Therefore we should unref the default_backend
      after we have added it as a child property.
      
      Cc: KONRAD Frederic <fred.konrad@greensocs.com>
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      Reviewed-by: NPaolo Bonzini <pbonzini@redhat.com>
      Signed-off-by: NAndreas Färber <afaerber@suse.de>
      abdffd1f
    • S
      qom: Add check() argument to object_property_add_link() · 39f72ef9
      Stefan Hajnoczi 提交于
      There are currently three types of object_property_add_link() callers:
      
      1. The link property may be set at any time.
      2. The link property of a DeviceState instance may only be set before
         realize.
      3. The link property may never be set, it is read-only.
      
      Something similar can already be achieved with
      object_property_add_str()'s set() argument.  Follow its example and add
      a check() argument to object_property_add_link().
      
      Also provide default check() functions for case #1 and #2.  Case #3 is
      covered by passing a NULL function pointer.
      
      Cc: Peter Crosthwaite <peter.crosthwaite@petalogix.com>
      Cc: Alexander Graf <agraf@suse.de>
      Cc: Anthony Liguori <aliguori@amazon.com>
      Cc: "Michael S. Tsirkin" <mst@redhat.com>
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      Reviewed-by: NPaolo Bonzini <pbonzini@redhat.com>
      [AF: Tweaked documentation comment]
      Signed-off-by: NAndreas Färber <afaerber@suse.de>
      39f72ef9
    • S
      qom: Make QOM link property unref optional · 9561fda8
      Stefan Hajnoczi 提交于
      Some object_property_add_link() callers expect property deletion to
      unref the link property object.  Other callers expect to manage the
      refcount themselves.  The former are currently broken and therefore leak
      the link property object.
      
      This patch adds a flags argument to object_property_add_link() so the
      caller can specify which refcount behavior they require.  The new
      OBJ_PROP_LINK_UNREF_ON_RELEASE flag causes the link pointer to be
      unreferenced when the property is deleted.
      
      This fixes refcount leaks in qdev.c, xilinx_axidma.c, xilinx_axienet.c,
      s390-virtio-bus.c, virtio-pci.c, virtio-rng.c, and ui/console.c.
      
      Rationale for refcount behavior:
      
       * hw/core/qdev.c
         - bus children are explicitly unreferenced, don't interfere
         - parent_bus is essentially a read-only property that doesn't hold a
           refcount, don't unref
         - hotplug_handler is leaked, do unref
      
       * hw/dma/xilinx_axidma.c
         - rx stream "dma" links are set using set_link, therefore they
           need unref
         - tx streams are set using set_link, therefore they need unref
      
       * hw/net/xilinx_axienet.c
         - same reasoning as hw/dma/xilinx_axidma.c
      
       * hw/pcmcia/pxa2xx.c
         - pxa2xx bypasses set_link and therefore does not use refcounts
      
       * hw/s390x/s390-virtio-bus.c
       * hw/virtio/virtio-pci.c
       * hw/virtio/virtio-rng.c
       * ui/console.c
         - set_link is used and there is no explicit unref, do unref
      
      Cc: Peter Crosthwaite <peter.crosthwaite@petalogix.com>
      Cc: Alexander Graf <agraf@suse.de>
      Cc: Anthony Liguori <aliguori@amazon.com>
      Cc: "Michael S. Tsirkin" <mst@redhat.com>
      Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
      Reviewed-by: NPaolo Bonzini <pbonzini@redhat.com>
      Signed-off-by: NAndreas Färber <afaerber@suse.de>
      9561fda8
  2. 19 3月, 2014 5 次提交
  3. 18 3月, 2014 9 次提交
    • P
      ui/vnc: fix vmware VGA incompatiblities · 2f487a3d
      Peter Lieven 提交于
      this fixes invalid rectangle updates observed after commit 12b316d4
      with the vmware VGA driver. The issues occured because the server
      and client surface update seems to be out of sync at some points
      and the max width of the surface is not dividable by
      VNC_DIRTY_BITS_PER_PIXEL (16).
      Reported-by: NSerge Hallyn <serge.hallyn@ubuntu.com>
      Signed-off-by: NPeter Lieven <pl@kamp.de>
      Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
      2f487a3d
    • C
      s390x/sclpconsole-lm: Fix and simplify irq setup · 4f3ed190
      Christian Borntraeger 提交于
      valgrind complains about a memory leak in irq setup of sclpconsole:
      
      ==42117== 8 bytes in 1 blocks are definitely lost in loss record 89of 833
      ==42117==    at 0x4031AFE: malloc (vg_replace_malloc.c:292)
      ==42117==    by 0x8022F855: malloc_and_trace (vl.c:2715)
      ==42117==    by 0x4145569: g_malloc (in /usr/lib64/libglib-2.0.so.0.3400.2)
      ==42117==    by 0x800F696D: qemu_extend_irqs (irq.c:51)
      ==42117==    by 0x800F6AF7: qemu_allocate_irqs (irq.c:68)
      ==42117==    by 0x800F5685: console_init (sclpconsole.c:235)
      ==42117==    by 0x80297C79: event_realize (event-facility.c:386)
      ==42117==    by 0x80105071: device_set_realized (qdev.c:693)
      ==42117==    by 0x801CDC4B: property_set_bool (object.c:1337)
       ==42117==    by 0x801CBD7F: object_property_set (object.c:819)
      [...]
      
      We dont need the indirection of an qemu irq to inject an slcp interrupt.
      Fixes a valgrind error and makes the code simpler.
      Signed-off-by: NChristian Borntraeger <borntraeger@de.ibm.com>
      Acked-by: NHeinz Graalfs <graalfs@linux.vnet.ibm.com>
      4f3ed190
    • C
      s390x/sclpconsole: Fix and simplify interrupt injection · b074e622
      Christian Borntraeger 提交于
      valgrind complains about a memory leak in irq setup of sclpconsole:
      
      ==42117== 8 bytes in 1 blocks are definitely lost in loss record 89 of 833
      ==42117==    at 0x4031AFE: malloc (vg_replace_malloc.c:292)
      ==42117==    by 0x8022F855: malloc_and_trace (vl.c:2715)
      ==42117==    by 0x4145569: g_malloc (in /usr/lib64/libglib-2.0.so.0.3400.2)
      ==42117==    by 0x800F696D: qemu_extend_irqs (irq.c:51)
      ==42117==    by 0x800F6AF7: qemu_allocate_irqs (irq.c:68)
      ==42117==    by 0x800F5685: console_init (sclpconsole.c:235)
      ==42117==    by 0x80297C79: event_realize (event-facility.c:386)
      ==42117==    by 0x80105071: device_set_realized (qdev.c:693)
      ==42117==    by 0x801CDC4B: property_set_bool (object.c:1337)
      ==42117==    by 0x801CBD7F: object_property_set (object.c:819)
      [...]
      
      Turns out that we actually dont need the indirection, so trigger the
      sclp interrupt directly.
      Signed-off-by: NChristian Borntraeger <borntraeger@de.ibm.com>
      Acked-by: NHeinz Graalfs <graalfs@linux.vnet.ibm.com>
      b074e622
    • C
      s390x/cpu hotplug: Fix memory leak · 7b53f294
      Christian Borntraeger 提交于
      valgrind complains about the following:
      ==42117== 8 bytes in 1 blocks are definitely lost in loss record 88 of 833
      ==42117==    at 0x4031AFE: malloc (vg_replace_malloc.c:292)
      ==42117==    by 0x8022F855: malloc_and_trace (vl.c:2715)
      ==42117==    by 0x4145569: g_malloc (in /usr/lib64/libglib-2.0.so.0.3400.2)
      ==42117==    by 0x800F696D: qemu_extend_irqs (irq.c:51)
      ==42117==    by 0x800F6AF7: qemu_allocate_irqs (irq.c:68)
      ==42117==    by 0x8029FA4B: irq_cpu_hotplug_init (sclpcpu.c:84)
      ==42117==    by 0x80297C79: event_realize (event-facility.c:386)
      ==42117==    by 0x80105071: device_set_realized (qdev.c:693)
      [...]
      
      Right it is. Don't drop the pointer of the irq.
      Signed-off-by: NChristian Borntraeger <borntraeger@de.ibm.com>
      Reviewed-by: NJason J. Herne <jjherne@us.ibm.com>
      7b53f294
    • C
      s390/ipl: Fix error path on BIOS loading · 0a1bec8a
      Christian Borntraeger 提交于
      commit 18674b26
      (elf-loader: add more return codes) enabled the elf loader to return
      other errors than -1.
      
      Lets also handle that case for our "BIOS" on s390.
      Signed-off-by: NChristian Borntraeger <borntraeger@de.ibm.com>
      CC: Alexey Kardashevskiy <aik@ozlabs.ru>
      CC: Alexander Graf <agraf@suse.de>
      0a1bec8a
    • P
      virt: Set reset-cbar on CPUs · ba750085
      Peter Maydell 提交于
      Set the reset-cbar property on CPUs used by the virt board,
      if they have it. This isn't necessary for correct functioning
      under Linux (since the A9 isn't a valid CPU for the virt board),
      but it is the correct behaviour.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Reviewed-by: NPeter Crosthwaite <peter.crosthwaite@xilinx.com>
      Message-id: 1394462692-8871-5-git-send-email-peter.maydell@linaro.org
      ba750085
    • P
      exynos4210: Set reset-cbar property of Cortex-A9 CPUs · 4719ab91
      Peter Maydell 提交于
      Set the reset-cbar property of the Exynos4210 SoC's Cortex-A9
      CPUs, so that Linux doesn't misrecognize them as a broken
      uniprocessor SoC.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Reviewed-by: NPeter Crosthwaite <peter.crosthwaite@xilinx.com>
      Message-id: 1394462692-8871-4-git-send-email-peter.maydell@linaro.org
      4719ab91
    • P
      realview-pbx-a9: Set reset-cbar property for CPUs · b5a3ca3e
      Peter Maydell 提交于
      If the CPU is a Cortex-A9 then we should set its reset-cbar property
      so that the guest can read the correct PERIPHBASE/CBAR register value;
      newer versions of the Linux kernel (as of commit bc41b8724 in 3.12)
      will otherwise assume the CPU is a buggy single core A9 SoC. The
      realview-pbx-a9 is the only one of the cluster of boards in realview.c
      which works with the Cortex-A9 (ie which gets an a9mpcore_priv device);
      make sure it also has reset-cbar set correctly.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Reviewed-by: NPeter Crosthwaite <peter.crosthwaite@xilinx.com>
      Message-id: 1394462692-8871-3-git-send-email-peter.maydell@linaro.org
      b5a3ca3e
    • P
      vexpress: Set reset-cbar property for CPUs · 9948c38b
      Peter Maydell 提交于
      Newer versions of the Linux kernel (as of commit bc41b8724 in 3.12)
      now assume that if the CPU is a Cortex-A9 and the reset value of the
      PERIPHBASE/CBAR register is zero then the CPU is a specific buggy
      single core A9 SoC, and will not try to start other cores. Since we
      now have a CPU property for the reset value of the CBAR, we can
      just fix the vexpress board model to correctly set CBAR so SMP
      works again. To avoid duplicate boilerplate code in both the A9
      and A15 daughterboard init functions, we split out the CPU and
      private memory region init to its own function.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Reported-by: NRob Herring <rob.herring@linaro.org>
      Reviewed-by: NPeter Crosthwaite <peter.crosthwaite@xilinx.com>
      Message-id: 1394462692-8871-2-git-send-email-peter.maydell@linaro.org
      9948c38b
  4. 15 3月, 2014 4 次提交
  5. 14 3月, 2014 15 次提交
  6. 13 3月, 2014 4 次提交