All of lore.kernel.org
 help / color / mirror / Atom feed
From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
	xen-devel@lists.xensource.com
Cc: linux-kernel@vger.kernel.org, david.vrabel@citrix.com,
	konrad.wilk@oracle.com
Subject: Re: [PATCH v2 2/3] hvc_xen: fix xenboot for DomUs
Date: Thu, 25 Feb 2016 10:04:52 -0500	[thread overview]
Message-ID: <56CF1814.5040807@oracle.com> (raw)
In-Reply-To: <1456402239-4179-2-git-send-email-stefano.stabellini@eu.citrix.com>

On 02/25/2016 07:10 AM, Stefano Stabellini wrote:
> The xenboot early console has been partially broken for DomU for a long
> time: the output would only go to the hypervisor via hypercall
> (HYPERVISOR_console_io), while it wouldn't actually go to the DomU
> console. The reason is that domU_write_console would return early as no
> xencons structs are configured for it.
>
> Add an appropriate xencons struct for xenboot from the xenboot setup
> callback.
>
> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
>
> ---
> Changes in v2:
> - add return to xenboot_setup_console
> ---
>   drivers/tty/hvc/hvc_xen.c |   32 ++++++++++++++++++++++++++------
>   1 file changed, 26 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/tty/hvc/hvc_xen.c b/drivers/tty/hvc/hvc_xen.c
> index 68b8ec8..bf787aa 100644
> --- a/drivers/tty/hvc/hvc_xen.c
> +++ b/drivers/tty/hvc/hvc_xen.c
> @@ -246,6 +246,18 @@ err:
>   	return -ENODEV;
>   }
>   
> +static int xen_early_pv_console_init(struct xencons_info *info, int vtermno)

Nit: not sure whether "early" is the right word to use here: when called 
from xen_pv_console_init() it's not really on the early path.

Other than that:
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>

> +{
> +	info->evtchn = xen_start_info->console.domU.evtchn;
> +	/* GFN == MFN for PV guest */
> +	info->intf = gfn_to_virt(xen_start_info->console.domU.mfn);
> +	info->vtermno = vtermno;
> +
> +	list_add_tail(&info->list, &xenconsoles);
> +
> +	return 0;
> +}
> +
>   static int xen_pv_console_init(void)
>   {
>   	struct xencons_info *info;
> @@ -265,13 +277,8 @@ static int xen_pv_console_init(void)
>   		/* already configured */
>   		return 0;
>   	}
> -	info->evtchn = xen_start_info->console.domU.evtchn;
> -	/* GFN == MFN for PV guest */
> -	info->intf = gfn_to_virt(xen_start_info->console.domU.mfn);
> -	info->vtermno = HVC_COOKIE;
> -
>   	spin_lock(&xencons_lock);
> -	list_add_tail(&info->list, &xenconsoles);
> +	xen_early_pv_console_init(info, HVC_COOKIE);
>   	spin_unlock(&xencons_lock);
>   
>   	return 0;
> @@ -599,6 +606,18 @@ static int xen_cons_init(void)
>   console_initcall(xen_cons_init);
>   
>   #ifdef CONFIG_EARLY_PRINTK
> +static int __init xenboot_setup_console(struct console *console, char *string)
> +{
> +	static struct xencons_info xenboot;
> +
> +	if (xen_initial_domain())
> +		return 0;
> +	if (!xen_pv_domain())
> +		return -ENODEV;
> +
> +	return xen_early_pv_console_init(&xenboot, 0);
> +}
> +
>   static void xenboot_write_console(struct console *console, const char *string,
>   				  unsigned len)
>   {
> @@ -629,6 +648,7 @@ static void xenboot_write_console(struct console *console, const char *string,
>   struct console xenboot_console = {
>   	.name		= "xenboot",
>   	.write		= xenboot_write_console,
> +	.setup		= xenboot_setup_console,
>   	.flags		= CON_PRINTBUFFER | CON_BOOT | CON_ANYTIME,
>   	.index		= -1,
>   };

  reply	other threads:[~2016-02-25 15:04 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-25 12:09 [PATCH v2 0/3] hvc_xen: fix xenboot on x86 and export to ARM Stefano Stabellini
2016-02-25 12:09 ` Stefano Stabellini
2016-02-25 12:10 ` [PATCH v2 1/3] hvc_xen: add earlycon support Stefano Stabellini
2016-02-25 12:10   ` Stefano Stabellini
2016-02-25 15:00   ` Boris Ostrovsky
2016-02-25 12:10 ` [PATCH v2 2/3] hvc_xen: fix xenboot for DomUs Stefano Stabellini
2016-02-25 12:10   ` Stefano Stabellini
2016-02-25 15:04   ` Boris Ostrovsky [this message]
2016-02-26 15:39     ` Stefano Stabellini
2016-02-26 15:39       ` Stefano Stabellini
2016-02-26 16:09       ` Boris Ostrovsky
2016-02-26 16:57         ` Stefano Stabellini
2016-02-26 16:57           ` Stefano Stabellini
2016-02-25 12:10 ` [PATCH v2 3/3] hvc_xen: make early_printk work with HVM guests Stefano Stabellini
2016-02-25 12:10   ` Stefano Stabellini
2016-02-25 15:13   ` Boris Ostrovsky
2016-02-26 14:28 ` [PATCH v2 0/3] hvc_xen: fix xenboot on x86 and export to ARM Stefano Stabellini
2016-02-26 14:28   ` Stefano Stabellini
2016-02-26 14:41   ` David Vrabel
2016-02-26 14:41     ` David Vrabel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=56CF1814.5040807@oracle.com \
    --to=boris.ostrovsky@oracle.com \
    --cc=david.vrabel@citrix.com \
    --cc=konrad.wilk@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=xen-devel@lists.xensource.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.