All of lore.kernel.org
 help / color / mirror / Atom feed
From: "H. Peter Anvin" <hpa@zytor.com>
To: Rakib Mullick <rakib.mullick@gmail.com>,
	"Cihula, Joseph" <joseph.cihula@intel.com>,
	Shane Wang <shane.wang@intel.com>
Cc: Ingo Molnar <mingo@elte.hu>, Thomas Gleixner <tglx@linutronix.de>,
	LKML <linux-kernel@vger.kernel.org>,
	x86@kernel.org
Subject: Re: [PATCH] x86: Call __va() to get trampoline_base.
Date: Fri, 04 Dec 2009 17:25:20 -0800	[thread overview]
Message-ID: <4B19B680.9050700@zytor.com> (raw)
In-Reply-To: <b9df5fa10912040826s52e82f2cpd53604835be50c27@mail.gmail.com>

On 12/04/2009 08:26 AM, Rakib Mullick wrote:
>  x86, tboot: Call __va() to get trampoline_base.
> 
>  Do not pass trampoline_base as parameter of virt_to_phys.
> Because trampoline_base is in .cpuinit.data section, but its
> called from non-cpuinit function. So use __va(TRAMPOLINE_BASE)
> instead of trampoline_base, which helps to fix section mismatch.
> 
> We were warned by the following warning:
> 
>   LD      arch/x86/kernel/built-in.o
> WARNING: arch/x86/kernel/built-in.o(.text+0x13c5f): Section mismatch
> in reference from the function tboot_setup_sleep() to the variable
> .cpuinit.data:trampoline_base
> The function tboot_setup_sleep() references
> the variable __cpuinitdata trampoline_base.
> This is often because tboot_setup_sleep lacks a __cpuinitdata
> annotation or the annotation of trampoline_base is wrong.
> 
> Signed-off-by: Rakib Mullick <rakib.mullick@gmail.com>

This is a bug, but this isn't the right fix.

trampoline.c has:

#if defined(CONFIG_X86_64) && defined(CONFIG_ACPI_SLEEP)
#define __trampinit
#define __trampinitdata
#else
#define __trampinit __cpuinit
#define __trampinitdata __cpuinitdata
#endif

... because on i386 we don't use the trampoline for ACPI return.

This means one of these is true:

- Either we need the AP trampoline for tboot on i386, and the above
definition in trampoline.c needs to be fixed; or
- The CONFIG_X86_TRAMPOLINE in tboot.c is too generous, and in fact it
needs to be set to defined(CONFIG_X86_64) && defined(CONFIG_ACPI_SLEEP)
just like the above code.

Sending to Joseph and Shane to figure out...

	-hpa

      reply	other threads:[~2009-12-05  1:26 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-12-04 16:26 [PATCH] x86: Call __va() to get trampoline_base Rakib Mullick
2009-12-05  1:25 ` H. Peter Anvin [this message]

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=4B19B680.9050700@zytor.com \
    --to=hpa@zytor.com \
    --cc=joseph.cihula@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=rakib.mullick@gmail.com \
    --cc=shane.wang@intel.com \
    --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 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.