All of lore.kernel.org
 help / color / mirror / Atom feed
From: Borislav Petkov <borislav.petkov@amd.com>
To: Hugh Dickins <hughd@google.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	"Roedel, Joerg" <Joerg.Roedel@amd.com>,
	"x86@kernel.org" <x86@kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] x86: fix CONFIG_VMSPLIT_1G and 2G_OPT trampoline
Date: Wed, 25 Aug 2010 08:30:41 +0200	[thread overview]
Message-ID: <20100825063041.GA25259@aftab> (raw)
In-Reply-To: <alpine.LSU.2.00.1008242235120.2515@sister.anvils>

From: Hugh Dickins <hughd@google.com>
Date: Wed, Aug 25, 2010 at 01:44:12AM -0400

> rc2 kernel crashes when booting second cpu on this CONFIG_VMSPLIT_2G_OPT
> laptop: whereas cloning from kernel to low mappings pgd range does need
> to limit by both KERNEL_PGD_PTRS and KERNEL_PGD_BOUNDARY, cloning kernel
> pgd range itself must not be limited by the smaller KERNEL_PGD_BOUNDARY.

Yep, makes sense.

In looking around for other swapper_pg_dir manipulations, there's this
piece in <arch/x86/kernel/reboot.c:machine_real_restart()>:

       /* Remap the kernel at virtual address zero, as well as offset zero
          from the kernel segment.  This assumes the kernel segment starts at
          virtual address PAGE_OFFSET. */
       memcpy(swapper_pg_dir, swapper_pg_dir + KERNEL_PGD_BOUNDARY,
               sizeof(swapper_pg_dir [0]) * KERNEL_PGD_PTRS);

and we're cloning to low mappings here but still take KERNEL_PGD_PTRS.

In the CONFIG_VMSPLIT_2G_OPT case, KERNEL_PGD_BOUNDARY and
KERNEL_PGD_PTRS are 480 and 544, respectively, and IINM, and we end up
overwriting the virtual mappings beginning at PAGE_OFFSET.

I guess this doesn't matter on reboot or am I missing something else?

> 
> Signed-off-by: Hugh Dickins <hughd@google.com>

Acked-by: Borislav Petkov <borislav.petkov@amd.com>

> ---
> 
>  arch/x86/kernel/trampoline.c |    3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> --- 2.6.36-rc2/arch/x86/kernel/trampoline.c.0	2010-08-22 18:56:44.000000000 -0700
> +++ linux/arch/x86/kernel/trampoline.c	2010-08-24 22:11:08.000000000 -0700
> @@ -45,8 +45,7 @@ void __init setup_trampoline_page_table(
>  	/* Copy kernel address range */
>  	clone_pgd_range(trampoline_pg_dir + KERNEL_PGD_BOUNDARY,
>  			swapper_pg_dir + KERNEL_PGD_BOUNDARY,
> -			min_t(unsigned long, KERNEL_PGD_PTRS,
> -			      KERNEL_PGD_BOUNDARY));
> +			KERNEL_PGD_PTRS);
>  
>  	/* Initialize low mappings */
>  	clone_pgd_range(trampoline_pg_dir,
> 

-- 
Regards/Gruss,
Boris.

Advanced Micro Devices GmbH
Einsteinring 24, 85609 Dornach
General Managers: Alberto Bozzo, Andrew Bowd
Registration: Dornach, Gemeinde Aschheim, Landkreis Muenchen
Registergericht Muenchen, HRB Nr. 43632


  reply	other threads:[~2010-08-25  6:34 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-25  5:44 [PATCH] x86: fix CONFIG_VMSPLIT_1G and 2G_OPT trampoline Hugh Dickins
2010-08-25  6:30 ` Borislav Petkov [this message]
2010-08-25  7:06   ` H. Peter Anvin
2010-08-25  7:13     ` Borislav Petkov
2010-08-25  7:13 ` [tip:x86/urgent] x86, mm: Fix " tip-bot for Hugh Dickins

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=20100825063041.GA25259@aftab \
    --to=borislav.petkov@amd.com \
    --cc=Joerg.Roedel@amd.com \
    --cc=akpm@linux-foundation.org \
    --cc=hpa@zytor.com \
    --cc=hughd@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    --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.