[S390] kvm: use console_initcall() to initialize s390 virtio console
authorHendrik Brueckner <brueckner@linux.vnet.ibm.com>
Fri, 11 Sep 2009 08:28:56 +0000 (10:28 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Fri, 11 Sep 2009 08:29:52 +0000 (10:29 +0200)
Use a console_initcall() to initialize the s390 virtio console and
clean up s390 console initialization in setup.c.

Signed-off-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
Tested-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/include/asm/kvm_virtio.h
arch/s390/kernel/setup.c
drivers/s390/kvm/kvm_virtio.c

index 0503936..acdfdff 100644 (file)
@@ -54,14 +54,4 @@ struct kvm_vqconfig {
  * This is pagesize for historical reasons. */
 #define KVM_S390_VIRTIO_RING_ALIGN     4096
 
-#ifdef __KERNEL__
-/* early virtio console setup */
-#ifdef CONFIG_S390_GUEST
-extern void s390_virtio_console_init(void);
-#else
-static inline void s390_virtio_console_init(void)
-{
-}
-#endif /* CONFIG_VIRTIO_CONSOLE */
-#endif /* __KERNEL__ */
 #endif
index cbb897b..9ed13a1 100644 (file)
@@ -156,15 +156,11 @@ __setup("condev=", condev_setup);
 
 static void __init set_preferred_console(void)
 {
-       if (MACHINE_IS_KVM) {
+       if (MACHINE_IS_KVM)
                add_preferred_console("hvc", 0, NULL);
-               s390_virtio_console_init();
-               return;
-       }
-
-       if (CONSOLE_IS_3215 || CONSOLE_IS_SCLP)
+       else if (CONSOLE_IS_3215 || CONSOLE_IS_SCLP)
                add_preferred_console("ttyS", 0, NULL);
-       if (CONSOLE_IS_3270)
+       else if (CONSOLE_IS_3270)
                add_preferred_console("tty3270", 0, NULL);
 }
 
index e38e5d3..2930fc7 100644 (file)
@@ -403,10 +403,14 @@ static __init int early_put_chars(u32 vtermno, const char *buf, int count)
        return len;
 }
 
-void __init s390_virtio_console_init(void)
+static int __init s390_virtio_console_init(void)
 {
-       virtio_cons_early_init(early_put_chars);
+       if (!MACHINE_IS_KVM)
+               return -ENODEV;
+       return virtio_cons_early_init(early_put_chars);
 }
+console_initcall(s390_virtio_console_init);
+
 
 /*
  * We do this after core stuff, but before the drivers.