From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934352AbeBMKAN (ORCPT ); Tue, 13 Feb 2018 05:00:13 -0500 Received: from mail-wm0-f65.google.com ([74.125.82.65]:37843 "EHLO mail-wm0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933416AbeBMKAK (ORCPT ); Tue, 13 Feb 2018 05:00:10 -0500 X-Google-Smtp-Source: AH8x2261cFqKtool5BKWOASWe614nHASef9eiKGboEl8vGi4oB3p/EbjD/upk3jkwW96aQ20RcYMrA== Date: Tue, 13 Feb 2018 13:00:05 +0300 From: "Kirill A. Shutemov" To: Ingo Molnar Cc: Andrei Vagin , tip-bot for Jacob Shin , kirill.shutemov@linux.intel.com, linux-tip-commits@vger.kernel.org, tglx@linutronix.de, willy@infradead.org, gorcunov@openvz.org, bp@suse.de, peterz@infradead.org, torvalds@linux-foundation.org, hpa@zytor.com, linux-kernel@vger.kernel.org, luto@amacapital.net Subject: Re: [tip:x86/boot] x86/boot/compressed/64: Handle 5-level paging boot if kernel is above 4G Message-ID: <20180213100005.53exytg5sqlk7kh4@node.shutemov.name> References: <20180213065155.GA14087@outlook.office365.com> <20180213080816.vwh64jiz23frjiot@node.shutemov.name> <20180213084121.GA19906@outlook.office365.com> <20180213090249.vnjwitt657jabnlt@node.shutemov.name> <20180213094355.jodz6cuh3n3brfmc@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180213094355.jodz6cuh3n3brfmc@gmail.com> User-Agent: NeoMutt/20171215 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Feb 13, 2018 at 10:43:56AM +0100, Ingo Molnar wrote: > > * Kirill A. Shutemov wrote: > > > On Tue, Feb 13, 2018 at 12:41:22AM -0800, Andrei Vagin wrote: > > > On Tue, Feb 13, 2018 at 11:08:16AM +0300, Kirill A. Shutemov wrote: > > > > On Mon, Feb 12, 2018 at 10:51:56PM -0800, Andrei Vagin wrote: > > > > > Hi Kirill, > > > > > > > > > > Something is wrong in this patch. > > > > Could you please check if this makes a difference? > > > > diff --git a/arch/x86/boot/compressed/head_64.S b/arch/x86/boot/compressed/head_64.S > > index 70b30f2bc9e0..99a0e7993252 100644 > > --- a/arch/x86/boot/compressed/head_64.S > > +++ b/arch/x86/boot/compressed/head_64.S > > @@ -332,7 +332,7 @@ ENTRY(startup_64) > > > > /* Make sure we have GDT with 32-bit code segment */ > > leaq gdt(%rip), %rax > > - movl %eax, gdt64+2(%rip) > > + movq %rax, gdt64+2(%rip) > > lgdt gdt64(%rip) > > There's another suspicious looking pattern as well: > > leaq startup_32(%rip), %rax > movl %eax, BP_code32_start(%rsi) > ... > movl BP_code32_start(%esi), %eax > leaq startup_64(%rax), %rax > ... code32_start is 4-byte field as described in the boot protocol, so the truncation is intentional I think. -- Kirill A. Shutemov