From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:56791) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R601S-00019C-1o for qemu-devel@nongnu.org; Tue, 20 Sep 2011 09:06:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1R601I-0000Q2-57 for qemu-devel@nongnu.org; Tue, 20 Sep 2011 09:06:01 -0400 Received: from e2.ny.us.ibm.com ([32.97.182.142]:57495) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R601I-0000PQ-2c for qemu-devel@nongnu.org; Tue, 20 Sep 2011 09:05:52 -0400 Received: from /spool/local by us.ibm.com with XMail ESMTP for from ; Tue, 20 Sep 2011 09:05:11 -0400 Received: from d01av04.pok.ibm.com (d01av04.pok.ibm.com [9.56.224.64]) by d01relay06.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p8KD4ZkV749718 for ; Tue, 20 Sep 2011 09:04:35 -0400 Received: from d01av04.pok.ibm.com (loopback [127.0.0.1]) by d01av04.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p8KD4Q2P022394 for ; Tue, 20 Sep 2011 09:04:33 -0400 Message-ID: <4E788F57.40305@us.ibm.com> Date: Tue, 20 Sep 2011 08:04:23 -0500 From: Anthony Liguori MIME-Version: 1.0 References: <1316188834-13675-1-git-send-email-aliguori@us.ibm.com> <1316188834-13675-5-git-send-email-aliguori@us.ibm.com> <4E76F074.4030801@redhat.com> <4E776D6D.2040702@codemonkey.ws> <4E78345E.5080300@redhat.com> In-Reply-To: <4E78345E.5080300@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 04/14] qdev: take ownership of id pointer List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Gerd Hoffmann Cc: Peter Maydell , Jan Kiszka , Markus Armbruster , qemu-devel@nongnu.org, Paolo Bonzini On 09/20/2011 01:36 AM, Gerd Hoffmann wrote: > On 09/19/11 18:27, Anthony Liguori wrote: >> On 09/19/2011 02:34 AM, Gerd Hoffmann wrote: >>> FYI: Keeping the pointer to the QemuOpts has one more reason: It will >>> free the >>> QemuOpts on hot-unplug, which is needed to free the id from QemuOpts >>> point of >>> view, which in turn allows to re-use the id when hot-plugging the same >>> (or >>> another) device later on. >> >> You mean, tie QemuOpts life cycle to devices life cycle > > Yes. > >> such that you >> cannot accidentally create a non-device QemuOpts that conflicts with the >> id of a device? > > Device QemuOpts have their own id namespace, so this is just about conflicts > within devices. This ... > > device_add e1000,id=nic1 > device_del nic1 > device_add e1000,id=nic1 > > ... will work only if you free the QemuOpts when deleting a device, otherwise > QemuOpts will complain that nic1 is used already. But we can just verify that the id specified for qdev is unique at creation time and fail creation if it isn't, no? Since not all devices are assigned names via qemuopts, that seems like a safer approach anyway. Regards, Anthony Liguori > > cheers, > Gerd