From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59812) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WLIoa-0005c5-LN for qemu-devel@nongnu.org; Wed, 05 Mar 2014 15:53:26 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WLIoU-0003sp-Im for qemu-devel@nongnu.org; Wed, 05 Mar 2014 15:53:20 -0500 Received: from mx1.redhat.com ([209.132.183.28]:15569) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WLIoU-0003sj-8w for qemu-devel@nongnu.org; Wed, 05 Mar 2014 15:53:14 -0500 From: Stefan Hajnoczi Date: Wed, 5 Mar 2014 21:51:19 +0100 Message-Id: <1394052684-14362-1-git-send-email-stefanha@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Subject: [Qemu-devel] [PATCH v3 0/5] qom: link property fixes List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Andreas Faerber , Anthony Liguori , Peter Maydell v3: * Split first commit for easier reviewing [afaerber] * Turn bool argument into flags bitmask [pbonzini] * Rename set() callback to check() [pbonzini] * Rename object_property_default_set_link() to object_property_allow_set_link() * Rename qdev_prop_default_set_link() to qdev_prop_allow_set_link_before_realize() v2: * A NULL set() callback should make the property read-only There are two problems with QOM link properties: 1. There are refcount leaks in many object_property_add_link() callers. 2. There is no way to prevent link properties from being set after a device is realized. This patch series fixes these issues by extending the object_property_add_link() function. Stefan Hajnoczi (5): qom: split object_property_set_link() qom: don't make link NULL on object_property_set_link() failure qom: make QOM link property unref optional qom: add check() argument to object_property_add_link() virtio-rng: avoid default_backend refcount leak hw/core/qdev-properties.c | 12 ++++ hw/core/qdev.c | 10 +++- hw/dma/xilinx_axidma.c | 20 +++++-- hw/net/xilinx_axienet.c | 20 +++++-- hw/pcmcia/pxa2xx.c | 4 +- hw/s390x/s390-virtio-bus.c | 4 +- hw/s390x/virtio-ccw.c | 4 +- hw/virtio/virtio-pci.c | 4 +- hw/virtio/virtio-rng.c | 7 ++- include/hw/qdev-properties.h | 11 ++++ include/qom/object.h | 29 +++++++++- qom/object.c | 130 ++++++++++++++++++++++++++++++++----------- ui/console.c | 5 +- 13 files changed, 211 insertions(+), 49 deletions(-) -- 1.8.5.3