mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 10:11:27 +01:00
Some fine-tuning in the virtual TPM scripts for hotpluging. The changes
enable a virtual TPM to save its state between reboots of the virtual TPM implementation. Signed-off-by: Stefan Berger <stefanb@us.ibm.com> Signed-off-by: Vincent Scarlata <vincent.r.scarlata@intel.com>
This commit is contained in:
1 parent
936acab9fc
commit
3cd179cf27
2 files changed
+15
-23
No files matched your search
@@ -9,15 +9,9 @@ case "$command" in
|
||||
add)
|
||||
vtpm_create_instance
|
||||
;;
|
||||
online)
|
||||
vtpm_create_instance
|
||||
;;
|
||||
remove)
|
||||
vtpm_remove_instance
|
||||
;;
|
||||
offline)
|
||||
vtpm_remove_instance
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ $vtpm_fatal_error -eq 0 ]; then
|
||||
|
||||
@@ -23,7 +23,7 @@ dir=$(dirname "$0")
|
||||
VTPMDB="/etc/xen/vtpm.db"
|
||||
|
||||
#In the vtpm-impl file some commands should be defined:
|
||||
# vtpm_create, vtpm_setup, vtpm_reset, etc. (see below)
|
||||
# vtpm_create, vtpm_setup, vtpm_start, etc. (see below)
|
||||
#This should be indicated by setting VTPM_IMPL_DEFINED.
|
||||
if [ -r "$dir/vtpm-impl" ]; then
|
||||
. "$dir/vtpm-impl"
|
||||
@@ -36,7 +36,7 @@ if [ -z "$VTPM_IMPL_DEFINED" ]; then
|
||||
function vtpm_setup() {
|
||||
true
|
||||
}
|
||||
function vtpm_reset() {
|
||||
function vtpm_start() {
|
||||
true
|
||||
}
|
||||
function vtpm_suspend() {
|
||||
@@ -256,22 +256,22 @@ function vtpm_create_instance () {
|
||||
else
|
||||
instance=$(vtpmdb_get_free_instancenum)
|
||||
fi
|
||||
if [ "$reason" == "create" ]; then
|
||||
vtpm_create $instance
|
||||
else
|
||||
vtpm_resume $instance $domname
|
||||
fi
|
||||
|
||||
vtpm_create $instance
|
||||
|
||||
if [ $vtpm_fatal_error -eq 0 ]; then
|
||||
vtpmdb_add_instance $domname $instance
|
||||
fi
|
||||
else
|
||||
if [ "$reason" == "resume" ]; then
|
||||
vtpm_resume $instance
|
||||
else
|
||||
vtpm_start $instance
|
||||
fi
|
||||
fi
|
||||
|
||||
release_lock vtpmdb
|
||||
|
||||
if [ $vtpm_fatal_error -eq 0 -a \
|
||||
"$reason" == "create" ]; then
|
||||
vtpm_reset $instance
|
||||
fi
|
||||
xenstore_write $XENBUS_PATH/instance $instance
|
||||
}
|
||||
|
||||
@@ -283,19 +283,17 @@ function vtpm_remove_instance () {
|
||||
local instance reason domname
|
||||
domname=$(xenstore_read "$XENBUS_PATH"/domain)
|
||||
|
||||
if [ "$doname" != "" ]; then
|
||||
if [ "$domname" != "" ]; then
|
||||
claim_lock vtpmdb
|
||||
|
||||
instance=$(vtpmdb_find_instance $domname)
|
||||
|
||||
if [ "$instance" != "0" ]; then
|
||||
if [ "$reason" == "suspend" ]; then
|
||||
vtpm_suspend $instance
|
||||
fi
|
||||
vtpm_suspend $instance
|
||||
fi
|
||||
fi
|
||||
|
||||
release_lock vtpmdb
|
||||
release_lock vtpmdb
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
|
||||