WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] Fix bugs related to the virtual TPM. Also make the vTPM

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] Fix bugs related to the virtual TPM. Also make the vTPM
From: Xen patchbot -unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Fri, 17 Feb 2006 01:04:08 +0000
Delivery-date: Fri, 17 Feb 2006 01:17:44 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User kaf24@xxxxxxxxxxxxxxxxxxxx
# Node ID 201d48272a57a650a264b9672c14fb6caa86d8e7
# Parent  b85d62caa347c0cca4f7edc54517887fd109c089
Fix bugs related to the virtual TPM. Also make the vTPM
manager listen on /dev/vtpm.

Signed-off-by: Stefan Berger <stefanb@xxxxxxxxxx>

diff -r b85d62caa347 -r 201d48272a57 
linux-2.6-xen-sparse/drivers/char/tpm/tpm_xen.c
--- a/linux-2.6-xen-sparse/drivers/char/tpm/tpm_xen.c   Thu Feb 16 21:57:29 2006
+++ b/linux-2.6-xen-sparse/drivers/char/tpm/tpm_xen.c   Thu Feb 16 22:00:00 2006
@@ -469,6 +469,9 @@
 {
        int rc;
 
+       if ((xen_start_info->flags & SIF_INITDOMAIN)) {
+               return -EPERM;
+       }
        /*
         * Register device with the low lever front-end
         * driver
diff -r b85d62caa347 -r 201d48272a57 
linux-2.6-xen-sparse/drivers/xen/tpmfront/tpmfront.c
--- a/linux-2.6-xen-sparse/drivers/xen/tpmfront/tpmfront.c      Thu Feb 16 
21:57:29 2006
+++ b/linux-2.6-xen-sparse/drivers/xen/tpmfront/tpmfront.c      Thu Feb 16 
22:00:00 2006
@@ -129,17 +129,18 @@
 static struct tpm_private *tpm_private_get(void)
 {
        if (!my_priv) {
-               my_priv = kzalloc(sizeof(struct tpm_private), GFP_KERNEL);
-               if (my_priv) {
-                       tpm_private_init(my_priv);
-               }
-        }
-        return my_priv;
-}
-
-static inline void tpm_private_free(struct tpm_private *tp)
-{
-       kfree(tp);
+               my_priv = kzalloc(sizeof(struct tpm_private), GFP_KERNEL);
+               if (my_priv) {
+                       tpm_private_init(my_priv);
+               }
+       }
+       return my_priv;
+}
+
+static inline void tpm_private_free(void)
+{
+       kfree(my_priv);
+       my_priv = NULL;
 }
 
 /**************************************************************
@@ -158,7 +159,7 @@
  */
 int tpm_fe_send(struct tpm_private *tp, const u8 * buf, size_t count, void 
*ptr)
 {
-       int sent = 0;
+       int sent;
 
        down(&suspend_lock);
        sent = tpm_xmit(tp, buf, count, 0, ptr);
@@ -180,6 +181,9 @@
                upperlayer_tpmfe = tpmfe_dev;
                tpmfe_dev->max_tx_size = TPMIF_TX_RING_SIZE * PAGE_SIZE;
                tpmfe_dev->tpm_private = tpm_private_get();
+               if (!tpmfe_dev->tpm_private) {
+                       rc = -ENOMEM;
+               }
        } else {
                rc = -EBUSY;
        }
@@ -355,10 +359,10 @@
                break;
 
        case XenbusStateClosed:
-               if (tp->is_suspended == 0) {
-                       device_unregister(&dev->dev);
-               }
-               break;
+               if (tp->is_suspended == 0) {
+                       device_unregister(&dev->dev);
+               }
+               break;
        }
 }
 
@@ -380,12 +384,12 @@
                return err;
        }
 
-        tp->dev = dev;
-        dev->data = tp;
+       tp->dev = dev;
+       dev->data = tp;
 
        err = talk_to_backend(dev, tp);
        if (err) {
-                tpm_private_free(tp);
+               tpm_private_free();
                dev->data = NULL;
                return err;
        }
@@ -395,7 +399,7 @@
 
 static int tpmfront_remove(struct xenbus_device *dev)
 {
-        struct tpm_private *tp = dev->data;
+       struct tpm_private *tp = dev->data;
        destroy_tpmring(tp);
        return 0;
 }
@@ -433,7 +437,7 @@
 static int
 tpmfront_resume(struct xenbus_device *dev)
 {
-        struct tpm_private *tp = dev->data;
+       struct tpm_private *tp = dev->data;
        return talk_to_backend(dev, tp);
 }
 
diff -r b85d62caa347 -r 201d48272a57 tools/vtpm/Makefile
--- a/tools/vtpm/Makefile       Thu Feb 16 21:57:29 2006
+++ b/tools/vtpm/Makefile       Thu Feb 16 22:00:00 2006
@@ -40,16 +40,18 @@
 
 # Create vtpm and TPM emulator dirs
 # apply patches for 1) used as dom0 tpm driver 2) used as vtpm device instance
-$(TPM_EMULATOR_DIR): $(TPM_EMULATOR_TARFILE) 
-       tar -xzf $(TPM_EMULATOR_TARFILE);  
+$(TPM_EMULATOR_DIR): $(TPM_EMULATOR_TARFILE) tpm_emulator.patch 
tpm_emulator-0.2b-x86_64.patch
+       tar -xzf $(TPM_EMULATOR_TARFILE);
+       rm -rf $(TPM_EMULATOR_DIR)
        mv tpm_emulator-0.2 $(TPM_EMULATOR_DIR); 
        
        -cd $(TPM_EMULATOR_DIR); \
        patch -p1 < ../tpm_emulator-0.2b-x86_64.patch; \
        patch -p1 <../tpm_emulator.patch
 
-$(VTPM_DIR): $(TPM_EMULATOR_TARFILE)
+$(VTPM_DIR): $(TPM_EMULATOR_TARFILE) tpm_emulator-0.2b-x86_64.patch vtpm.patch
        tar -xzf $(TPM_EMULATOR_TARFILE);  
+       rm -rf $(VTPM_DIR)
        mv tpm_emulator-0.2 $(VTPM_DIR); 
 
        -cd $(VTPM_DIR); \
diff -r b85d62caa347 -r 201d48272a57 tools/vtpm/tpm_emulator.patch
--- a/tools/vtpm/tpm_emulator.patch     Thu Feb 16 21:57:29 2006
+++ b/tools/vtpm/tpm_emulator.patch     Thu Feb 16 22:00:00 2006
@@ -37,7 +37,7 @@
 diff -uprN orig/tpm_emulator-0.2-x86_64/Makefile tpm_emulator/Makefile
 --- orig/tpm_emulator-0.2-x86_64/Makefile      2005-09-15 19:21:14.845078568 
-0700
 +++ tpm_emulator/Makefile      2005-09-14 20:27:22.000000000 -0700
-@@ -1,16 +1,20 @@
+@@ -1,16 +1,22 @@
  # Software-Based Trusted Platform Module (TPM) Emulator for Linux
  # Copyright (C) 2004 Mario Strasser <mast@xxxxxxx>
 +# Copyright (C) 2005 INTEL Corp.
@@ -50,7 +50,9 @@
  # kernel settings
  KERNEL_RELEASE := $(shell uname -r)
 -KERNEL_BUILD   := /lib/modules/$(KERNEL_RELEASE)/build
-+KERNEL_BUILD   := $(XEN_ROOT)/linux-2.6.12-xen0
++CUR_DIR        := $(shell pwd)
++LINUX_VERSION  := $(shell cat 
$(CUR_DIR)/$(XEN_ROOT)/buildconfigs/mk.linux-2.6-xen | grep "LINUX_VER" | grep 
"2.6" | gawk '{ print $$3 }' )
++KERNEL_BUILD   := $(XEN_ROOT)/linux-$(LINUX_VERSION)-xen0
  MOD_SUBDIR     := misc
  COMPILE_ARCH    ?= $(shell uname -m | sed -e s/i.86/x86_32/)
  
diff -r b85d62caa347 -r 201d48272a57 tools/vtpm_manager/manager/vtpmpriv.h
--- a/tools/vtpm_manager/manager/vtpmpriv.h     Thu Feb 16 21:57:29 2006
+++ b/tools/vtpm_manager/manager/vtpmpriv.h     Thu Feb 16 22:00:00 2006
@@ -47,7 +47,7 @@
 
 #define STATE_FILE    "/var/vtpm/VTPM"
 #define DMI_NVM_FILE  "/var/vtpm/vtpm_dm_%d.data"
-#define VTPM_BE_DEV   "/dev/vtpm0"
+#define VTPM_BE_DEV   "/dev/vtpm"
 #define VTPM_CTL_DM   0
 
 #ifndef VTPM_MUTLI_VM

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] Fix bugs related to the virtual TPM. Also make the vTPM, Xen patchbot -unstable <=