All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] tpm: adapt sysfs cancel path for new TPM driver
@ 2015-11-17  2:15 Stefan Berger
  0 siblings, 0 replies; only message in thread
From: Stefan Berger @ 2015-11-17  2:15 UTC (permalink / raw)
  To: qemu-devel, mst; +Cc: Stefan Berger, Stefan Berger, crobinso

Adapt the sysfs TPM command cancel path for the TPM driver that
does not use a miscdevice anymore since Linux 4.0. Support old
and new paths.

Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
---
 hw/tpm/tpm_passthrough.c | 23 +++++++++++++++--------
 1 file changed, 15 insertions(+), 8 deletions(-)

diff --git a/hw/tpm/tpm_passthrough.c b/hw/tpm/tpm_passthrough.c
index 8d8523a..424d7e3 100644
--- a/hw/tpm/tpm_passthrough.c
+++ b/hw/tpm/tpm_passthrough.c
@@ -353,6 +353,8 @@ static int tpm_passthrough_open_sysfs_cancel(TPMBackend *tb)
     int fd = -1;
     char *dev;
     char path[PATH_MAX];
+    const char *prefix[] = {"misc/", "tpm/"};
+    int i;
 
     if (tb->cancel_path) {
         fd = qemu_open(tb->cancel_path, O_WRONLY);
@@ -366,16 +368,21 @@ static int tpm_passthrough_open_sysfs_cancel(TPMBackend *tb)
     dev = strrchr(tpm_pt->tpm_dev, '/');
     if (dev) {
         dev++;
-        if (snprintf(path, sizeof(path), "/sys/class/misc/%s/device/cancel",
-                     dev) < sizeof(path)) {
-            fd = qemu_open(path, O_WRONLY);
-            if (fd >= 0) {
-                tb->cancel_path = g_strdup(path);
-            } else {
-                error_report("tpm_passthrough: Could not open TPM cancel "
-                             "path %s : %s", path, strerror(errno));
+        for (i = 0; i < ARRAY_SIZE(prefix); i++) {
+            if (snprintf(path, sizeof(path),
+                         "/sys/class/%s%s/device/cancel",
+                         prefix[i], dev) < sizeof(path)) {
+                fd = qemu_open(path, O_WRONLY);
+                if (fd >= 0) {
+                    tb->cancel_path = g_strdup(path);
+                    break;
+                }
             }
         }
+        if (fd < 0) {
+            error_report("tpm_passthrough: Could not open TPM cancel "
+                         "path %s : %s", path, strerror(errno));
+        }
     } else {
        error_report("tpm_passthrough: Bad TPM device path %s",
                     tpm_pt->tpm_dev);
-- 
2.4.3

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2015-11-17  2:15 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-11-17  2:15 [Qemu-devel] [PATCH] tpm: adapt sysfs cancel path for new TPM driver Stefan Berger

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.