plain text document attachment (lguest64-hvc.patch)
This is a start to try to get HVC working for x86_64.

Signed-off-by: Steven Rostedt <[EMAIL PROTECTED]>
Signed-off-by: Glauber de Oliveira Costa <[EMAIL PROTECTED]>
Cc: Chris Wright <[EMAIL PROTECTED]>


Index: work-pv/drivers/char/Kconfig
===================================================================
--- work-pv.orig/drivers/char/Kconfig
+++ work-pv/drivers/char/Kconfig
@@ -595,6 +595,12 @@ config HVC_CONSOLE
          pSeries machines when partitioned support a hypervisor virtual
          console. This driver allows each pSeries partition to have a console
          which is accessed via the HMC.
+config HVC_LGUEST
+       bool "lguest hypervisor console"
+       depends on LGUEST_GUEST
+       select HVC_DRIVER
+       help
+         Totally fubar
 
 config HVC_ISERIES
        bool "iSeries Hypervisor Virtual Console support"
Index: work-pv/drivers/char/Makefile
===================================================================
--- work-pv.orig/drivers/char/Makefile
+++ work-pv/drivers/char/Makefile
@@ -43,7 +43,7 @@ obj-$(CONFIG_AMIGA_BUILTIN_SERIAL) += am
 obj-$(CONFIG_SX)               += sx.o generic_serial.o
 obj-$(CONFIG_RIO)              += rio/ generic_serial.o
 obj-$(CONFIG_HVC_CONSOLE)      += hvc_vio.o hvsi.o
-obj-$(CONFIG_LGUEST_GUEST)     += hvc_lguest.o
+obj-$(CONFIG_HVC_GUEST)                += hvc_lguest.o
 obj-$(CONFIG_HVC_ISERIES)      += hvc_iseries.o
 obj-$(CONFIG_HVC_RTAS)         += hvc_rtas.o
 obj-$(CONFIG_HVC_DRIVER)       += hvc_console.o
Index: work-pv/drivers/char/hvc_lguest.c
===================================================================
--- work-pv.orig/drivers/char/hvc_lguest.c
+++ work-pv/drivers/char/hvc_lguest.c
@@ -25,7 +25,6 @@ static int cons_irq;
 static int cons_offset;
 static char inbuf[256];
 static struct lguest_dma cons_input = { .used_len = 0,
-                                       .addr[0] = __pa(inbuf),
                                        .len[0] = sizeof(inbuf),
                                        .len[1] = 0 };
 
@@ -66,6 +65,12 @@ struct hv_ops lguest_cons = {
 
 static int __init cons_init(void)
 {
+       /*
+        * Can't initialize this in the const declarations,
+        * since __pa(inbuf) does not evaluate into a constant.
+        */
+       cons_input.addr[0] = __pa(inbuf);
+
        if (strcmp(paravirt_ops.name, "lguest") != 0)
                return 0;
 

--

_______________________________________________
Virtualization mailing list
[email protected]
https://lists.osdl.org/mailman/listinfo/virtualization

Reply via email to