From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:53860) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TwdI9-0007cx-Hh for qemu-devel@nongnu.org; Sat, 19 Jan 2013 13:37:23 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TwdI8-0001gz-7q for qemu-devel@nongnu.org; Sat, 19 Jan 2013 13:37:21 -0500 Received: from e8.ny.us.ibm.com ([32.97.182.138]:45601) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TwdI8-0001gs-3p for qemu-devel@nongnu.org; Sat, 19 Jan 2013 13:37:20 -0500 Received: from /spool/local by e8.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Sat, 19 Jan 2013 13:37:19 -0500 Received: from d01relay04.pok.ibm.com (d01relay04.pok.ibm.com [9.56.227.236]) by d01dlp03.pok.ibm.com (Postfix) with ESMTP id CE7C4C90041 for ; Sat, 19 Jan 2013 13:37:15 -0500 (EST) Received: from d03av04.boulder.ibm.com (d03av04.boulder.ibm.com [9.17.195.170]) by d01relay04.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id r0JIbF03340392 for ; Sat, 19 Jan 2013 13:37:15 -0500 Received: from d03av04.boulder.ibm.com (loopback [127.0.0.1]) by d03av04.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id r0JIbEPE020234 for ; Sat, 19 Jan 2013 11:37:14 -0700 Message-ID: <50FAE7D9.7090309@linux.vnet.ibm.com> Date: Sat, 19 Jan 2013 13:37:13 -0500 From: Stefan Berger MIME-Version: 1.0 References: <1358524968-22297-1-git-send-email-stefanb@linux.vnet.ibm.com> <1358524968-22297-9-git-send-email-stefanb@linux.vnet.ibm.com> <50F991FE.3000901@redhat.com> <50F9E580.2000602@linux.vnet.ibm.com> <50F9EEED.5020702@linux.vnet.ibm.com> <50FABC50.6090507@redhat.com> In-Reply-To: <50FABC50.6090507@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH V20 8/8] Add fd parameter for TPM passthrough driver List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eric Blake Cc: mst@redhat.com, qemu-devel@nongnu.org, anthony@codemonkey.ws, andreas.niederl@iaik.tugraz.at On 01/19/2013 10:31 AM, Eric Blake wrote: > On 01/18/2013 05:55 PM, Stefan Berger wrote: >> On 01/18/2013 07:14 PM, Stefan Berger wrote: >>> On 01/18/2013 01:18 PM, Eric Blake wrote: >>>> On 01/18/2013 09:02 AM, Stefan Berger wrote: >>> When libvirt forks, the child process inherits the file descriptors, >>> among them those of the taps and /dev/tpm0. The subsequent execve >>> keeps the file descriptor open. QEMU then reads the TPM file >>> descriptor from the command line into above TPMInfo->fd. This also >>> works with 'exec 100<>/dev/tpm0' via command line. >>> Similar to the SELinux labeling of all the other file descriptors I >>> also use the one for the TPM device for SELinux labeling. >>> >> I have to correct this: The libvirt patches for this use path= on the >> command line and also apply the SELinux label on the path rather than >> the fd. So, this patch then adds file descriptor passing support to have >> equivalent functionality to other devices. > You _still_ don't need extra handling for fd passing; neither on the > command line, nor in QMP. Remember, we added --add-fd to the command > line, precisely so we could use: > > qemu -add-fd set=1,fd=100 -tpmdev passthrough,path=/dev/fdset/1 \ > 100<>/dev/tpm0 This helps. /dev/fdset/1 is just a string and not a real device following what I see in the code. Then the problem seems to be solved by replacing open() with qemu_open() and we can drop this patch. Thanks for the hint. Obviously I don't follow all the developments in QEMU close enough... Regards, Stefan