help
The TPM-device backend driver
-config XEN_TPMDEV_CLOSE_IF_VTPM_FAILS
- bool "TPM backend closes upon vTPM failure"
- depends on XEN_TPMDEV_BACKEND
- default n
- help
- The TPM backend closes the channel if the vTPM in userspace indicates
- a failure. The corresponding domain's channel will be closed.
- Say Y if you want this feature.
-
config XEN_BLKDEV_FRONTEND
tristate "Block-device frontend driver"
depends on XEN
enum {
PACKET_FLAG_DISCARD_RESPONSE = 1,
- PACKET_FLAG_CHECK_RESPONSESTATUS = 2,
};
/* local variables */
kfree(pak);
}
-static int packet_set(struct packet *pak,
- const unsigned char *buffer, u32 size)
-{
- int rc = 0;
- unsigned char *buf = kmalloc(size, GFP_KERNEL);
-
- if (buf) {
- pak->data_buffer = buf;
- memcpy(buf, buffer, size);
- pak->data_len = size;
- } else {
- rc = -ENOMEM;
- }
- return rc;
-}
/*
* Write data to the shared memory and send it to the FE.
{
int rc = 0;
- if ((pak->flags & PACKET_FLAG_CHECK_RESPONSESTATUS)) {
-#ifdef CONFIG_XEN_TPMDEV_CLOSE_IF_VTPM_FAILS
- u32 res;
-
- if (copy_from_buffer(&res,
- &data[2 + 4], sizeof (res),
- isuserbuffer)) {
- return -EFAULT;
- }
-
- if (res != 0) {
- /*
- * Close down this device. Should have the
- * FE notified about closure.
- */
- if (!pak->tpmif) {
- return -EFAULT;
- }
- pak->tpmif->status = DISCONNECTING;
- }
-#endif
- }
-
if (0 != (pak->flags & PACKET_FLAG_DISCARD_RESPONSE)) {
/* Don't send a respone to this packet. Just acknowledge it. */
rc = size;