From: Pavel Machek <pavel@denx.de>
To: "Rafael J. Wysocki" <rjw@rjwysocki.net>
Cc: the arch/x86 maintainers <x86@kernel.org>,
Linux PM list <linux-pm@vger.kernel.org>,
"Rafael J. Wysocki" <rafael@kernel.org>,
Thomas Garnier <thgarnie@google.com>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, "H . Peter Anvin" <hpa@zytor.com>,
Kees Cook <keescook@chromium.org>,
Yinghai Lu <yinghai@kernel.org>,
LKML <linux-kernel@vger.kernel.org>,
kernel-hardening@lists.openwall.com
Subject: [kernel-hardening] Re: [PATCH] x86/power/64: Do not refer to __PAGE_OFFSET from assembly code
Date: Fri, 5 Aug 2016 12:37:13 +0200 [thread overview]
Message-ID: <20160805103713.GA8106@amd> (raw)
In-Reply-To: <2464745.UmGP58NeXC@vostro.rjw.lan>
On Wed 2016-08-03 01:19:26, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
>
> When CONFIG_RANDOMIZE_MEMORY is set on x86-64, __PAGE_OFFSET becomes
> a variable and using it as a symbol in the image memory restoration
> assembly code under core_restore_code is not correct any more.
On a related note... we should really have page_offset variable in
such case, and use that -- having __FOO_BAR not being a constant is
ugly/confusing/dangerous.
> To avoid that problem, modify set_up_temporary_mappings() to compute
> the physical address of the temporary page tables and store it in
> temp_level4_pgt, so that the value of that variable is ready to be
> written into CR3. Then, the assembly code doesn't have to worry
> about converting that value into a physical address and things work
> regardless of whether or not CONFIG_RANDOMIZE_MEMORY is set.
>
> Reported-and-tested-by: Thomas Garnier <thgarnie@google.com>
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Pavel Machek <pavel@ucw.cz>
Is similar patch needed for i386?
Best regards,
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
WARNING: multiple messages have this Message-ID (diff)
From: Pavel Machek <pavel@denx.de>
To: "Rafael J. Wysocki" <rjw@rjwysocki.net>
Cc: the arch/x86 maintainers <x86@kernel.org>,
Linux PM list <linux-pm@vger.kernel.org>,
"Rafael J. Wysocki" <rafael@kernel.org>,
Thomas Garnier <thgarnie@google.com>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, "H . Peter Anvin" <hpa@zytor.com>,
Kees Cook <keescook@chromium.org>,
Yinghai Lu <yinghai@kernel.org>,
LKML <linux-kernel@vger.kernel.org>,
kernel-hardening@lists.openwall.com
Subject: Re: [PATCH] x86/power/64: Do not refer to __PAGE_OFFSET from assembly code
Date: Fri, 5 Aug 2016 12:37:13 +0200 [thread overview]
Message-ID: <20160805103713.GA8106@amd> (raw)
In-Reply-To: <2464745.UmGP58NeXC@vostro.rjw.lan>
On Wed 2016-08-03 01:19:26, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
>
> When CONFIG_RANDOMIZE_MEMORY is set on x86-64, __PAGE_OFFSET becomes
> a variable and using it as a symbol in the image memory restoration
> assembly code under core_restore_code is not correct any more.
On a related note... we should really have page_offset variable in
such case, and use that -- having __FOO_BAR not being a constant is
ugly/confusing/dangerous.
> To avoid that problem, modify set_up_temporary_mappings() to compute
> the physical address of the temporary page tables and store it in
> temp_level4_pgt, so that the value of that variable is ready to be
> written into CR3. Then, the assembly code doesn't have to worry
> about converting that value into a physical address and things work
> regardless of whether or not CONFIG_RANDOMIZE_MEMORY is set.
>
> Reported-and-tested-by: Thomas Garnier <thgarnie@google.com>
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Pavel Machek <pavel@ucw.cz>
Is similar patch needed for i386?
Best regards,
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
next prev parent reply other threads:[~2016-08-05 10:37 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-01 17:07 [kernel-hardening] [PATCH v1 0/2] x86/power/64: Make KASLR memory randomization compatible with hibernation Thomas Garnier
2016-08-01 17:07 ` Thomas Garnier
2016-08-01 17:07 ` [kernel-hardening] [PATCH v1 1/2] x86/power/64: Support unaligned addresses for temporary mapping Thomas Garnier
2016-08-01 17:07 ` Thomas Garnier
2016-08-02 0:36 ` [kernel-hardening] " Rafael J. Wysocki
2016-08-02 0:36 ` Rafael J. Wysocki
2016-08-02 18:01 ` [kernel-hardening] " Yinghai Lu
2016-08-02 18:01 ` Yinghai Lu
2016-08-02 17:36 ` [kernel-hardening] " Yinghai Lu
2016-08-02 17:36 ` Yinghai Lu
2016-08-02 17:48 ` [kernel-hardening] " Thomas Garnier
2016-08-02 17:48 ` Thomas Garnier
2016-08-02 19:55 ` [kernel-hardening] " Yinghai Lu
2016-08-02 19:55 ` Yinghai Lu
2016-08-03 15:29 ` [kernel-hardening] " Thomas Garnier
2016-08-03 15:29 ` Thomas Garnier
2016-08-03 18:23 ` [kernel-hardening] [PATCH v2] " Yinghai Lu
2016-08-03 18:23 ` Yinghai Lu
2016-08-03 21:28 ` [kernel-hardening] " Rafael J. Wysocki
2016-08-03 21:28 ` Rafael J. Wysocki
2016-08-07 1:03 ` [kernel-hardening] " Rafael J. Wysocki
2016-08-07 1:03 ` Rafael J. Wysocki
2016-08-07 4:53 ` [kernel-hardening] " Yinghai Lu
2016-08-07 4:53 ` Yinghai Lu
2016-08-07 23:23 ` [kernel-hardening] " Rafael J. Wysocki
2016-08-07 23:23 ` Rafael J. Wysocki
2016-08-08 7:06 ` [kernel-hardening] " Yinghai Lu
2016-08-08 7:06 ` Yinghai Lu
2016-08-08 7:23 ` [kernel-hardening] " Yinghai Lu
2016-08-08 7:23 ` Yinghai Lu
2016-08-08 13:16 ` [kernel-hardening] " Rafael J. Wysocki
2016-08-08 13:16 ` Rafael J. Wysocki
2016-08-01 17:08 ` [kernel-hardening] [PATCH v1 2/2] x86/power/64: Fix __PAGE_OFFSET usage on restore Thomas Garnier
2016-08-01 17:08 ` Thomas Garnier
2016-08-02 0:38 ` [kernel-hardening] " Rafael J. Wysocki
2016-08-02 0:38 ` Rafael J. Wysocki
2016-08-02 14:34 ` [kernel-hardening] " Thomas Garnier
2016-08-02 14:34 ` Thomas Garnier
2016-08-02 20:47 ` [kernel-hardening] " Rafael J. Wysocki
2016-08-02 20:47 ` Rafael J. Wysocki
2016-08-02 20:59 ` [kernel-hardening] " Thomas Garnier
2016-08-02 20:59 ` Thomas Garnier
2016-08-02 21:08 ` [kernel-hardening] " Rafael J. Wysocki
2016-08-02 21:08 ` Rafael J. Wysocki
2016-08-02 23:19 ` [kernel-hardening] [PATCH] x86/power/64: Do not refer to __PAGE_OFFSET from assembly code Rafael J. Wysocki
2016-08-02 23:19 ` Rafael J. Wysocki
2016-08-05 10:37 ` Pavel Machek [this message]
2016-08-05 10:37 ` Pavel Machek
2016-08-05 14:44 ` [kernel-hardening] " Rafael J. Wysocki
2016-08-05 14:44 ` Rafael J. Wysocki
2016-08-05 15:21 ` [kernel-hardening] " Thomas Garnier
2016-08-05 15:21 ` Thomas Garnier
2016-08-05 23:12 ` [kernel-hardening] " Rafael J. Wysocki
2016-08-05 23:12 ` Rafael J. Wysocki
2016-08-06 19:41 ` [kernel-hardening] " Pavel Machek
2016-08-06 19:41 ` Pavel Machek
2016-08-01 23:48 ` [kernel-hardening] Re: [PATCH v1 0/2] x86/power/64: Make KASLR memory randomization compatible with hibernation Rafael J. Wysocki
2016-08-01 23:48 ` Rafael J. Wysocki
2016-08-02 0:47 ` [kernel-hardening] " Rafael J. Wysocki
2016-08-02 0:47 ` Rafael J. Wysocki
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=20160805103713.GA8106@amd \
--to=pavel@denx.de \
--cc=hpa@zytor.com \
--cc=keescook@chromium.org \
--cc=kernel-hardening@lists.openwall.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=rafael@kernel.org \
--cc=rjw@rjwysocki.net \
--cc=tglx@linutronix.de \
--cc=thgarnie@google.com \
--cc=x86@kernel.org \
--cc=yinghai@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.