All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrey Ryabinin <a.ryabinin@samsung.com>
To: Ingo Molnar <mingo@kernel.org>, Alexander Popov <alpopov@ptsecurity.com>
Cc: Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
	Andrey Konovalov <adech.fo@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Kees Cook <keescook@chromium.org>,
	"Peter Zijlstra (Intel)" <peterz@infradead.org>,
	Andy Lutomirski <luto@amacapital.net>,
	Alexander Kuleshov <kuleshovmail@gmail.com>,
	Borislav Petkov <bp@suse.de>,
	Denys Vlasenko <dvlasenk@redhat.com>,
	x86@kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4 1/1] x86_64: fix KASan shadow region page tables
Date: Wed, 03 Jun 2015 11:44:49 +0300	[thread overview]
Message-ID: <556EBE81.4030408@samsung.com> (raw)
In-Reply-To: <20150603074427.GA1598@gmail.com>

On 06/03/2015 10:44 AM, Ingo Molnar wrote:
> 
> * Alexander Popov <alpopov@ptsecurity.com> wrote:
> 
>>  #ifdef CONFIG_KASAN
>>  void __init kasan_map_early_shadow(pgd_t *pgd);
>> +void __init kasan_early_init(void);
>>  void __init kasan_init(void);
>>  #else
>>  static inline void kasan_map_early_shadow(pgd_t *pgd) { }
>> +static inline void kasan_early_init(void) { }
>>  static inline void kasan_init(void) { }
>>  #endif
>>  
>> diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c
>> index 2b55ee6..e9a84a1 100644
>> --- a/arch/x86/kernel/head64.c
>> +++ b/arch/x86/kernel/head64.c
>> @@ -161,11 +161,15 @@ asmlinkage __visible void __init x86_64_start_kernel(char * real_mode_data)
>>  	/* Kill off the identity-map trampoline */
>>  	reset_early_page_tables();
>>  
>> -	kasan_map_early_shadow(early_level4_pgt);
>> -
>> -	/* clear bss before set_intr_gate with early_idt_handler */
>> +	/*
>> +	 * Clear bss before kasan_early_init and set_intr_gate
>> +	 * with early_idt_handler
>> +	 */
>>  	clear_bss();
>>  
>> +	kasan_early_init();
>> +	kasan_map_early_shadow(early_level4_pgt);
> 
> So why isn't kasan_map_early_shadow() called in kasan_early_init()?
> 
> High level x86 init code should not be polluted with too many low level details.
> 

Agreed. Eventually, with the patch bellow, we could get rid of the second
kasan_map_early_shadow(init_level4_pgt) call in x86_64_start_kernel().
Make it static, and call it from kasan_early_init() only.

------------------------------------------------------
From: Andrey Ryabinin <a.ryabinin@samsung.com>
Subject: [PATCH] x86_64: remove not needed clear_page for init_level4_page

Commit 8170e6bed465 ("x86, 64bit: Use a #PF handler to materialize
early mappings on demand") introduced clear_page(init_level4_pgt);
call in x86_64_start_kernel(). However, this clear_page is useless
because init_level4_page already filled with zeroes in head_64.S

Commit message in 8170e6bed465 says that this clear_page() was
dropped in v7, but it accidentally reappeared in later versions
of that patchset.

Signed-off-by: Andrey Ryabinin <a.ryabinin@samsung.com>
---
 arch/x86/kernel/head64.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c
index 5a46681..6a6eefd 100644
--- a/arch/x86/kernel/head64.c
+++ b/arch/x86/kernel/head64.c
@@ -177,7 +177,6 @@ asmlinkage __visible void __init x86_64_start_kernel(char * real_mode_data)
 	 */
 	load_ucode_bsp();

-	clear_page(init_level4_pgt);
 	/* set init_level4_pgt kernel high mapping*/
 	init_level4_pgt[511] = early_level4_pgt[511];



  parent reply	other threads:[~2015-06-03  8:45 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-02 12:57 [PATCH v4 1/1] x86_64: fix KASan shadow region page tables Alexander Popov
2015-06-03  7:44 ` Ingo Molnar
2015-06-03  8:37   ` Alexander Popov
2015-06-03  8:44   ` Andrey Ryabinin [this message]
2015-06-03 14:10     ` Alexander Popov
2015-06-03 16:33       ` Andrey Ryabinin

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=556EBE81.4030408@samsung.com \
    --to=a.ryabinin@samsung.com \
    --cc=adech.fo@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=alpopov@ptsecurity.com \
    --cc=bp@suse.de \
    --cc=dvlasenk@redhat.com \
    --cc=hpa@zytor.com \
    --cc=keescook@chromium.org \
    --cc=kuleshovmail@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@amacapital.net \
    --cc=mingo@kernel.org \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.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 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.