[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] Fix TPM support in HVM domains
# HG changeset patch # User kfraser@xxxxxxxxxxxxxxxxxxxxx # Date 1179222609 -3600 # Node ID 5f09e34f56d7c3b77fc87dcb9310e05946b82670 # Parent fbce94a9feaac121ebb51a8f50e1f233d532ddd6 Fix TPM support in HVM domains Signed-off-by: Joseph Cihula <joseph.cihula@xxxxxxxxx> Signed-off-by: Peter Yang <peisen.yang@xxxxxxxxx> --- tools/examples/vtpm-impl | 2 +- tools/ioemu/hw/tpm_tis.c | 25 ++++++++++++++++++++----- 2 files changed, 21 insertions(+), 6 deletions(-) diff -r fbce94a9feaa -r 5f09e34f56d7 tools/examples/vtpm-impl --- a/tools/examples/vtpm-impl Tue May 15 10:49:10 2007 +0100 +++ b/tools/examples/vtpm-impl Tue May 15 10:50:09 2007 +0100 @@ -83,7 +83,7 @@ function vtpm_manager_cmd() { release_lock vtpm_mgr #return whether the command was successful - if [ $resp_hex ne $TPM_SUCCESS ]; then + if [ $resp_hex -ne $TPM_SUCCESS ]; then vtpm_fatal_error=1 false else diff -r fbce94a9feaa -r 5f09e34f56d7 tools/ioemu/hw/tpm_tis.c --- a/tools/ioemu/hw/tpm_tis.c Tue May 15 10:49:10 2007 +0100 +++ b/tools/ioemu/hw/tpm_tis.c Tue May 15 10:50:09 2007 +0100 @@ -148,7 +148,7 @@ static int read_local_socket(tpmState *s static int read_local_socket(tpmState *s, tpmBuffer *); static int close_local_socket(tpmState *s, int force); static int has_channel_local_socket(tpmState *s); -#define LOCAL_SOCKET_PATH "/var/vtpm/vtpm_all.socket" +#define LOCAL_SOCKET_PATH "/var/vtpm/socks/%d.socket" #define NUM_TRANSPORTS 1 @@ -238,18 +238,33 @@ static int create_local_socket(tpmState if (s->tpmTx.fd[0] < 0) { s->tpmTx.fd[0] = socket(PF_LOCAL, SOCK_STREAM, 0); +#ifdef DEBUG_TPM + fprintf(logfile," SOCKET FD %d errno %d \n", s->tpmTx.fd[0], errno ); +#endif if (has_channel_local_socket(s)) { + int ret; struct sockaddr_un addr; memset(&addr, 0x0, sizeof(addr)); addr.sun_family = AF_LOCAL; - strcpy(addr.sun_path, LOCAL_SOCKET_PATH); - if (connect(s->tpmTx.fd[0], - (struct sockaddr *)&addr, - sizeof(addr)) != 0) { + snprintf(addr.sun_path, sizeof(addr.sun_path)-1, + LOCAL_SOCKET_PATH, (uint32_t) vtpm_instance); +#ifdef DEBUG_TPM + fprintf(logfile," SOCKET NAME %s \n", addr.sun_path ); +#endif + + if ((ret = connect(s->tpmTx.fd[0], (struct sockaddr *)&addr, + sizeof(addr))) != 0) { close_local_socket(s, 1); +#ifdef DEBUG_TPM + fprintf(logfile," RET %d errno %d\n", ret, errno ); +#endif success = 0; } else { /* put filedescriptor in non-blocking mode for polling */ +#ifdef DEBUG_TPM + fprintf(logfile," put filedescriptor in non-blocking mode " + "for polling \n"); +#endif int flags = fcntl(s->tpmTx.fd[0], F_GETFL); fcntl(s->tpmTx.fd[0], F_SETFL, flags | O_NONBLOCK); } _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |