From: Borislav Petkov <bp@alien8.de>
To: Ralf Ramsauer <ralf.ramsauer@oth-regensburg.de>
Cc: Jan Kiszka <jan.kiszka@siemens.com>,
x86@kernel.org, jailhouse-dev@googlegroups.com,
linux-kernel@vger.kernel.org, Ingo Molnar <mingo@redhat.com>,
"H . Peter Anvin" <hpa@zytor.com>
Subject: Re: [PATCH v5 2/2] x86/jailhouse: Only enable platform UARTs if available
Date: Mon, 7 Oct 2019 18:26:36 +0200 [thread overview]
Message-ID: <20191007162636.GD24289@zn.tnic> (raw)
In-Reply-To: <20191007123819.161432-3-ralf.ramsauer@oth-regensburg.de>
On Mon, Oct 07, 2019 at 02:38:19PM +0200, Ralf Ramsauer wrote:
> ACPI tables aren't available if Linux runs as guest of the hypervisor
> Jailhouse. This makes the 8250 driver probe for all platform UARTs as
> it assumes that all platform are present in case of !ACPI. Jailhouse
I think you mean s/platform/UARTs/ here.
> will stop execution of Linux guest due to port access violation.
>
> So far, these access violations could be solved by tuning the
> 8250.nr_uarts parameter but it has limitations: We can, e.g., only map
Another "We" you can get rid of.
> consecutive platform UARTs to Linux, and only in the sequence 0x3f8,
> 0x2f8, 0x3e8, 0x2e8.
>
> Beginning from setup_data version 2, Jailhouse will place information of
> available platform UARTs in setup_data. This allows for selective
> activation of platform UARTs.
>
> This patch queries the setup_data version and activates only available
s/This patch queries/Query/
> UARTS. It comes with backward compatibility, and will still support
> older setup_data versions. In this case, Linux falls back to the old
> behaviour.
>
> Signed-off-by: Ralf Ramsauer <ralf.ramsauer@oth-regensburg.de>
> ---
> arch/x86/include/uapi/asm/bootparam.h | 3 +
> arch/x86/kernel/jailhouse.c | 83 +++++++++++++++++++++++----
> 2 files changed, 74 insertions(+), 12 deletions(-)
...
> @@ -138,6 +147,53 @@ static int __init jailhouse_pci_arch_init(void)
> return 0;
> }
>
> +#ifdef CONFIG_SERIAL_8250
> +static bool jailhouse_uart_enabled(unsigned int uart_nr)
> +{
> + return setup_data.v2.flags & BIT(uart_nr);
> +}
> +
> +static void jailhouse_serial_fixup(int port, struct uart_port *up,
> + u32 *capabilities)
> +{
> + static const u16 pcuart_base[] = {0x3f8, 0x2f8, 0x3e8, 0x2e8};
> + unsigned int n;
> +
> + for (n = 0; n < ARRAY_SIZE(pcuart_base); n++) {
> + if (pcuart_base[n] != up->iobase)
> + continue;
> +
> + if (jailhouse_uart_enabled(n)) {
> + pr_info("Enabling UART%u (port 0x%lx)\n", n,
> + up->iobase);
> + jailhouse_setup_irq(up->irq);
> + } else {
> + /* Deactivate UART if access isn't allowed */
> + up->iobase = 0;
> + }
> + break;
> + }
> +}
WARNING: vmlinux.o(.text+0x4fdb0): Section mismatch in reference from the function jailhouse_serial_fixup() to the variable .init.data:can_use_brk_pgt
The function jailhouse_serial_fixup() references
the variable __initdata can_use_brk_pgt.
This is often because jailhouse_serial_fixup lacks a __initdata
annotation or the annotation of can_use_brk_pgt is wrong.
--
Regards/Gruss,
Boris.
https://people.kernel.org/tglx/notes-about-netiquette
next prev parent reply other threads:[~2019-10-07 16:26 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-07 12:38 [PATCH v5 0/2] x86/jailhouse: improve probing of platform UARTs Ralf Ramsauer
2019-10-07 12:38 ` [PATCH v5 1/2] x86/jailhouse: improve setup data version comparison Ralf Ramsauer
2019-10-07 16:25 ` Borislav Petkov
2019-10-07 18:25 ` [tip: x86/platform] x86/jailhouse: Improve " tip-bot2 for Ralf Ramsauer
2019-10-07 12:38 ` [PATCH v5 2/2] x86/jailhouse: Only enable platform UARTs if available Ralf Ramsauer
2019-10-07 15:20 ` Jan Kiszka
2019-10-07 16:26 ` Borislav Petkov [this message]
2019-10-07 16:44 ` Ralf Ramsauer
2019-10-07 16:59 ` Borislav Petkov
2019-10-07 18:25 ` [tip: x86/platform] x86/jailhouse: Enable platform UARTs only " tip-bot2 for Ralf Ramsauer
2019-10-07 18:27 ` Ingo Molnar
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=20191007162636.GD24289@zn.tnic \
--to=bp@alien8.de \
--cc=hpa@zytor.com \
--cc=jailhouse-dev@googlegroups.com \
--cc=jan.kiszka@siemens.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=ralf.ramsauer@oth-regensburg.de \
--cc=x86@kernel.org \
/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.