[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] Allow tpmfront/tpmback to be built as modules.



# HG changeset patch
# User kaf24@xxxxxxxxxxxxxxxxxxxx
# Node ID a66763eb86fee0a215712245be4f49e871d74ac4
# Parent  271cb04a4f2b74a7f7d3baa68868ef6f8c159525
Allow tpmfront/tpmback to be built as modules.

From: Jan Beulich

Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>

diff -r 271cb04a4f2b -r a66763eb86fe linux-2.6-xen-sparse/drivers/xen/Kconfig
--- a/linux-2.6-xen-sparse/drivers/xen/Kconfig  Tue Feb 28 17:59:24 2006
+++ b/linux-2.6-xen-sparse/drivers/xen/Kconfig  Tue Feb 28 18:00:15 2006
@@ -118,7 +118,7 @@
          connection.
 
 config XEN_TPMDEV_BACKEND
-       bool "TPM-device backend driver"
+       tristate "TPM-device backend driver"
        default n
        help
          The TPM-device backend driver
@@ -162,7 +162,7 @@
          space.  Odds are that you want to say N here.
 
 config XEN_TPMDEV_FRONTEND
-       bool "TPM-device frontend driver"
+       tristate "TPM-device frontend driver"
        default n
        select TCG_TPM
        select TCG_XEN
diff -r 271cb04a4f2b -r a66763eb86fe 
linux-2.6-xen-sparse/drivers/xen/tpmback/common.h
--- a/linux-2.6-xen-sparse/drivers/xen/tpmback/common.h Tue Feb 28 17:59:24 2006
+++ b/linux-2.6-xen-sparse/drivers/xen/tpmback/common.h Tue Feb 28 18:00:15 2006
@@ -54,9 +54,11 @@
 void tpmif_disconnect_complete(tpmif_t * tpmif);
 tpmif_t *tpmif_find(domid_t domid, long int instance);
 void tpmif_interface_init(void);
+void tpmif_interface_exit(void);
 void tpmif_schedule_work(tpmif_t * tpmif);
 void tpmif_deschedule_work(tpmif_t * tpmif);
 void tpmif_xenbus_init(void);
+void tpmif_xenbus_exit(void);
 int tpmif_map(tpmif_t *tpmif, unsigned long shared_page, unsigned int evtchn);
 irqreturn_t tpmif_be_int(int irq, void *dev_id, struct pt_regs *regs);
 int tpmif_vtpm_open(tpmif_t *tpmif, domid_t domain, u32 instance);
diff -r 271cb04a4f2b -r a66763eb86fe 
linux-2.6-xen-sparse/drivers/xen/tpmback/interface.c
--- a/linux-2.6-xen-sparse/drivers/xen/tpmback/interface.c      Tue Feb 28 
17:59:24 2006
+++ b/linux-2.6-xen-sparse/drivers/xen/tpmback/interface.c      Tue Feb 28 
18:00:15 2006
@@ -186,6 +186,12 @@
                                         0, 0, NULL, NULL);
 }
 
+void __init
+tpmif_interface_exit(void)
+{
+       kmem_cache_destroy(tpmif_cachep);
+}
+
 /*
  * Local variables:
  *  c-file-style: "linux"
diff -r 271cb04a4f2b -r a66763eb86fe 
linux-2.6-xen-sparse/drivers/xen/tpmback/tpmback.c
--- a/linux-2.6-xen-sparse/drivers/xen/tpmback/tpmback.c        Tue Feb 28 
17:59:24 2006
+++ b/linux-2.6-xen-sparse/drivers/xen/tpmback/tpmback.c        Tue Feb 28 
18:00:15 2006
@@ -1092,7 +1092,20 @@
        return 0;
 }
 
-__initcall(tpmback_init);
+module_init(tpmback_init);
+
+static void __exit
+tpmback_exit(void)
+{
+
+       tpmif_xenbus_exit();
+       tpmif_interface_exit();
+       misc_deregister(&ibmvtpms_miscdevice);
+}
+
+module_exit(tpmback_exit);
+
+MODULE_LICENSE("Dual BSD/GPL");
 
 /*
  * Local variables:
diff -r 271cb04a4f2b -r a66763eb86fe 
linux-2.6-xen-sparse/drivers/xen/tpmback/xenbus.c
--- a/linux-2.6-xen-sparse/drivers/xen/tpmback/xenbus.c Tue Feb 28 17:59:24 2006
+++ b/linux-2.6-xen-sparse/drivers/xen/tpmback/xenbus.c Tue Feb 28 18:00:15 2006
@@ -317,6 +317,11 @@
        xenbus_register_backend(&tpmback);
 }
 
+void tpmif_xenbus_exit(void)
+{
+       xenbus_unregister_driver(&tpmback);
+}
+
 /*
  * Local variables:
  *  c-file-style: "linux"
diff -r 271cb04a4f2b -r a66763eb86fe 
linux-2.6-xen-sparse/drivers/xen/tpmfront/tpmfront.c
--- a/linux-2.6-xen-sparse/drivers/xen/tpmfront/tpmfront.c      Tue Feb 28 
17:59:24 2006
+++ b/linux-2.6-xen-sparse/drivers/xen/tpmfront/tpmfront.c      Tue Feb 28 
18:00:15 2006
@@ -480,6 +480,11 @@
        xenbus_register_frontend(&tpmfront);
 }
 
+static void __exit exit_tpm_xenbus(void)
+{
+       xenbus_unregister_driver(&tpmfront);
+}
+
 
 static int
 tpm_allocate_buffers(struct tpm_private *tp)
@@ -700,7 +705,18 @@
        return 0;
 }
 
-__initcall(tpmif_init);
+module_init(tpmif_init);
+
+static void __exit
+tpmif_exit(void)
+{
+       exit_tpm_xenbus();
+       gnttab_free_grant_references(gref_head);
+}
+
+module_exit(tpmif_exit);
+
+MODULE_LICENSE("Dual BSD/GPL");
 
 /*
  * Local variables:

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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.