[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] xen/hvc: If we use xen_raw_printk let it also work on HVM guests.
Ian Campbell <ian.campbell@xxxxxxxxxx> wrote: >On Tue, 2013-08-20 at 15:35 -0400, Konrad Rzeszutek Wilk wrote: >> void xen_raw_console_write(const char *str) >> { >> - dom0_write_console(0, str, strlen(str)); >> + ssize_t len = strlen(str); >> + int rc = 0; >> + >> + if (xen_domain()) { >> + rc = dom0_write_console(0, str, len); >> + if (rc != len && xen_hvm_domain()) /* -ENOSYS */ > >If you want to catch ENOSYS then I suggest doing so explicitly, rather >that relying on len != -ENOSYS. > >> + goto outb_print; > >How about reversing this into > if (rc == len) return; > if (rc != -ENOSYS) panic(...) /* yes, this won't get far... *. > >Then fall through to the following block as a plain if not an else if. >Maybe with a xen_hvm_domain && added. > >That avoids the yucky goto I think. > >> + } else if (xen_cpuid_base()) { >> + int i; >> +outb_print: >> + for (i = 0; i < len; i++) >> + outb(str[i], 0xe9); >> + } >> } >> >> void xen_raw_printk(const char *fmt, ...) B/c the function dom0_write_console never returns negative values. Instead it converts it to a zero return value. Perhaps it can return negative values - will have to look. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |