Check if i8042 is supported only within the initialization call itself, so that
builtin-run won't need to know which archs are supported by it.

Signed-off-by: Sasha Levin <levinsasha...@gmail.com>
---
 tools/kvm/builtin-run.c       | 8 +++++---
 tools/kvm/hw/i8042.c          | 8 +++++++-
 tools/kvm/include/kvm/i8042.h | 2 +-
 3 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/tools/kvm/builtin-run.c b/tools/kvm/builtin-run.c
index ac03b75..96a3d70 100644
--- a/tools/kvm/builtin-run.c
+++ b/tools/kvm/builtin-run.c
@@ -818,9 +818,11 @@ static int kvm_cmd_run_init(int argc, const char **argv)
 
        kvm__init_ram(kvm);
 
-#ifdef CONFIG_X86
-       kbd__init(kvm);
-#endif
+       r = kbd__init(kvm);
+       if (r < 0) {
+               pr_err("kbd__init() failed with error %d\n", r);
+               goto fail;
+       }
 
        r = pci_shmem__init(kvm);
        if (r < 0) {
diff --git a/tools/kvm/hw/i8042.c b/tools/kvm/hw/i8042.c
index 40f8a38..fac54ca 100644
--- a/tools/kvm/hw/i8042.c
+++ b/tools/kvm/hw/i8042.c
@@ -339,10 +339,16 @@ static struct ioport_operations kbd_ops = {
        .io_out         = kbd_out,
 };
 
-void kbd__init(struct kvm *kvm)
+int kbd__init(struct kvm *kvm)
 {
+#ifndef CONFIG_X86
+       return 0;
+#endif
+
        kbd_reset();
        state.kvm = kvm;
        ioport__register(I8042_DATA_REG, &kbd_ops, 2, NULL);
        ioport__register(I8042_COMMAND_REG, &kbd_ops, 2, NULL);
+
+       return 0;
 }
diff --git a/tools/kvm/include/kvm/i8042.h b/tools/kvm/include/kvm/i8042.h
index 13f18e2..3b4ab68 100644
--- a/tools/kvm/include/kvm/i8042.h
+++ b/tools/kvm/include/kvm/i8042.h
@@ -7,6 +7,6 @@ struct kvm;
 
 void mouse_queue(u8 c);
 void kbd_queue(u8 c);
-void kbd__init(struct kvm *kvm);
+int kbd__init(struct kvm *kvm);
 
 #endif
-- 
1.7.12

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to