From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kouichi Yasaki Subject: Re: [PATCH][BIOS]Fix TPMD and QEMU connection Date: Thu, 20 Dec 2007 12:12:51 +0900 Message-ID: <4769DDB3.7050804@jp.fujitsu.com> References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------020909050106000302050200" Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Stefan Berger Cc: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --------------020909050106000302050200 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Hi Stefan-san, Thank you for correcting my patch. I also think that it should not try to connect endlessly in a busy loop. attached file is the corrected patch. Thanks Kouichi YASAKI > > xen-devel-bounces@lists.xensource.com wrote on 12/19/2007 07:53:11 PM: > > > Hi, > > > > In HVM domain, MA_Transmit function in tcgbios sometimes become an error > > (TCG_NO_RESPONSE). The cause of the error is not to make connection of > > QEMU and TPMD instance within a timeout of MA_Transmit function. > > > > Before the MA_Transmit function was called, the attached patch > corrected so > > that connection of QEMU and TPMD might be completed. > > > > Signed-off-by: Kouichi YASAKI > > > > Thanks > > Kouichi YASAKI > > > > diff -r d9ab9eb2bfee tools/ioemu/hw/tpm_tis.c > > --- a/tools/ioemu/hw/tpm_tis.c Sat Dec 15 18:29:27 2007 +0000 > > +++ b/tools/ioemu/hw/tpm_tis.c Mon Dec 17 19:46:42 2007 +0900 > > @@ -904,6 +904,10 @@ void tpm_tis_init(SetIRQFunc *set_irq, v > > memset(s->buffer.buf,0,sizeof(s->buffer.buf)); > > > > register_savevm("tpm-tis", 0, 1, tpm_save, tpm_load, s); > > + > > + while(!IS_COMM_WITH_VTPM(s)){ > > + open_vtpm_channel(s); > > + } > > } > > I'll have a look at this. The problem probably stems from the vTPM > manager starting the vTPM up too late while qemu is already up and > running, so it's a timing problem between the two processes. I don't > think it should try to connect endlessly in a busy loop. At least there > should be a counter that tries this for maybe 5 times followed by a > [u]sleep() in the loop. > > int ctr = 0; > while(!IS_COMM_WITH_VTPM(s) && ctr < 5){ > open_vtpm_channel(s); > ctr ++; > sleep(1); > } > > > Stefan > > > > > > > > /****************************************************************************/ > > _______________________________________________ > > Xen-devel mailing list > > Xen-devel@lists.xensource.com > > http://lists.xensource.com/xen-devel --------------020909050106000302050200 Content-Type: text/x-patch; name="tpm_tis_fix.diff" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="tpm_tis_fix.diff" diff -r 966a6d3b7408 tools/ioemu/hw/tpm_tis.c --- a/tools/ioemu/hw/tpm_tis.c Fri Dec 14 11:50:24 2007 +0000 +++ b/tools/ioemu/hw/tpm_tis.c Thu Dec 20 11:56:24 2007 +0900 @@ -904,6 +904,13 @@ void tpm_tis_init(SetIRQFunc *set_irq, v memset(s->buffer.buf,0,sizeof(s->buffer.buf)); register_savevm("tpm-tis", 0, 1, tpm_save, tpm_load, s); + + int ctr = 0; + while(!IS_COMM_WITH_VTPM(s) && ctr < 5){ + open_vtpm_channel(s); + ctr++; + sleep(1); + } } /****************************************************************************/ --------------020909050106000302050200 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --------------020909050106000302050200--