mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
To: Dmitry Malkin <d.malkin@real-time-systems.com>
Cc: linux-x86_64@vger.kernel.org, linux-kernel@vger.kernel.org,
	Ingo Molnar <mingo@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	"H. Peter Anvin" <hpa@zytor.com>,
	x86@kernel.org
Subject: Re: 4.17.x won't boot due to "x86/boot/compressed/64: Handle 5-level paging boot if kernel is above 4G"
Date: Thu, 26 Jul 2018 00:21:22 +0300	[thread overview]
Message-ID: <20180725212122.f2m3cfiqb4az3cb7@black.fi.intel.com> (raw)
In-Reply-To: <f1fb3e5e-f18a-9f89-84c5-1dc73e08ceef@real-time-systems.com>

On Wed, Jul 25, 2018 at 05:26:02PM +0000, Dmitry Malkin wrote:
> there may be some other reasons which may cause undefined behavior (reboot
> for example):
> 
> in arch/x86/boot/compressed/pgtable_64.c in function paging_prepare():
> 
> 1. structure "paging_config" allocated on stack without setting default
> value for flag "l5_required":
> >>struct paging_config paging_config = {};
> l5_required is set only if CONFIG_X86_5LEVEL is defined

Hm? C99 initializer zeros the structure.

> 2. reading from memory which may be reserved in case of EFI systems:
> >>    ebda_start = *(unsigned short *)0x40e << 4;
> >>    bios_start = *(unsigned short *)0x413 << 10;
> Also, on EFI system without CSM it will results in all zeros. Which will
> place trampoline_start to 0x9d000. And it also may be reserved memory. In
> fact I have such system and it is causes instant reboot (when code starts
> copying to "trampoline_start").

Could you show dmesg from such system?

> 3. paging_prepare(void) returns "struct paging_config". Copy by value. Is it
> really specified by ABI or GCC itself that the second field (which is flag
> "l5_required") will go to RDX register?

https://github.com/hjl-tools/x86-psABI/wiki/x86-64-psABI-1.0.pdf

3.2.3 Parameter Passing

...

Returning of Values
The returning of values is done according to the following algorithm:

...

3.  If the class is INTEGER, the next available register of the sequence
%rax, %rdx is used.

-- 
 Kirill A. Shutemov

  reply	other threads:[~2018-07-25 21:21 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-25 17:26 Dmitry Malkin
2018-07-25 21:21 ` Kirill A. Shutemov [this message]
2018-07-26  8:10   ` Dmitry Malkin
2018-07-26 14:50     ` Kirill A. Shutemov
2018-07-26 16:21       ` Dmitry Malkin
2018-07-27 13:46         ` Kirill A. Shutemov
     [not found] <CAF=P+=5c-baQp-CK1ViG8h=mMRv6d3EgEsN_U4rbBx-Pwv_Krw@mail.gmail.com>
2018-07-01 21:32 ` Benjamin Gilbert
2018-07-02  9:34   ` Kirill A. Shutemov
2018-07-02 19:01     ` Benjamin Gilbert
2018-07-03  8:30       ` Kirill A. Shutemov
2018-07-03  8:59         ` Thomas Gleixner
2018-07-03 11:01           ` Kirill A. Shutemov
2018-07-03 11:24   ` Gabriel C
2018-07-03 12:44     ` Kirill A. Shutemov
2018-07-03 14:02       ` Thomas Gleixner
2018-07-03 14:07         ` Bernhard Rosenkraenzer
2018-07-03 14:19           ` Thomas Gleixner
2018-07-03 14:21       ` Kirill A. Shutemov
2018-07-03 14:27         ` Thomas Gleixner
2018-07-03 18:03         ` Andi Kleen
2018-07-03 20:26           ` Kirill A. Shutemov
2018-07-03 21:00             ` Andi Kleen
2018-07-04  3:10         ` Benjamin Gilbert
2018-07-04 13:21           ` Kirill A. Shutemov
2018-07-04 15:08         ` Kirill A. Shutemov
2018-07-04 20:42           ` Benjamin Gilbert
2018-07-06  6:37           ` Masahiro Yamada
2018-07-06 10:41             ` Kirill A. Shutemov
2018-07-06 14:13               ` Masahiro Yamada
2018-07-06 14:39                 ` Gabriel C
2018-07-06 16:33                   ` Kirill A. Shutemov
2018-07-06 17:31                     ` Gabriel C
2018-07-07  0:55                   ` Masahiro Yamada
2018-07-06 16:29                 ` Kirill A. Shutemov
2018-07-06 18:11                   ` Andi Kleen
2018-07-06 19:34                     ` Benjamin Gilbert
2018-07-07  1:21                   ` Masahiro Yamada
2018-07-09 10:10                     ` Kirill A. Shutemov
2018-07-09 10:37                       ` Masahiro Yamada

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=20180725212122.f2m3cfiqb4az3cb7@black.fi.intel.com \
    --to=kirill.shutemov@linux.intel.com \
    --cc=d.malkin@real-time-systems.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-x86_64@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=tglx@linutronix.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®