From: Jason Yan <yanaijie@huawei.com>
To: Michael Ellerman <mpe@ellerman.id.au>,
<linuxppc-dev@lists.ozlabs.org>, <diana.craciun@nxp.com>,
<christophe.leroy@c-s.fr>, <benh@kernel.crashing.org>,
<paulus@samba.org>, <npiggin@gmail.com>, <keescook@chromium.org>,
<kernel-hardening@lists.openwall.com>
Cc: <linux-kernel@vger.kernel.org>, <wangkefeng.wang@huawei.com>,
<yebin10@huawei.com>, <thunder.leizhen@huawei.com>,
<jingxiangfeng@huawei.com>, <fanchengyang@huawei.com>,
<zhaohongjiang@huawei.com>
Subject: Re: [PATCH v5 06/10] powerpc/fsl_booke/32: implement KASLR infrastructure
Date: Thu, 8 Aug 2019 14:19:58 +0800 [thread overview]
Message-ID: <9a47e042-8994-273f-0622-bdb4d7661668@huawei.com> (raw)
In-Reply-To: <87wofpt9dm.fsf@concordia.ellerman.id.au>
On 2019/8/7 21:04, Michael Ellerman wrote:
> Jason Yan <yanaijie@huawei.com> writes:
>> This patch add support to boot kernel from places other than KERNELBASE.
>> Since CONFIG_RELOCATABLE has already supported, what we need to do is
>> map or copy kernel to a proper place and relocate. Freescale Book-E
>> parts expect lowmem to be mapped by fixed TLB entries(TLB1). The TLB1
>> entries are not suitable to map the kernel directly in a randomized
>> region, so we chose to copy the kernel to a proper place and restart to
>> relocate.
>
> So to be 100% clear you are randomising the location of the kernel in
> virtual and physical space, by the same amount, and retaining the 1:1
> linear mapping.
>
100% right :)
>> diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
>> index 77f6ebf97113..755378887912 100644
>> --- a/arch/powerpc/Kconfig
>> +++ b/arch/powerpc/Kconfig
>> @@ -548,6 +548,17 @@ config RELOCATABLE
>> setting can still be useful to bootwrappers that need to know the
>> load address of the kernel (eg. u-boot/mkimage).
>>
>> +config RANDOMIZE_BASE
>> + bool "Randomize the address of the kernel image"
>> + depends on (FSL_BOOKE && FLATMEM && PPC32)
>> + select RELOCATABLE
>
> I think this should depend on RELOCATABLE, rather than selecting it.
>
>> diff --git a/arch/powerpc/kernel/kaslr_booke.c b/arch/powerpc/kernel/kaslr_booke.c
>> new file mode 100644
>> index 000000000000..30f84c0321b2
>> --- /dev/null
>> +++ b/arch/powerpc/kernel/kaslr_booke.c
>> @@ -0,0 +1,84 @@
>> +// SPDX-License-Identifier: GPL-2.0-only
>> +/*
>> + * Copyright (C) 2019 Jason Yan <yanaijie@huawei.com>
>> + *
>> + * This program is free software; you can redistribute it and/or modify
>> + * it under the terms of the GNU General Public License version 2 as
>> + * published by the Free Software Foundation.
>
> You don't need that paragraph now that you have the SPDX tag.
>
> Rather than using a '//' comment followed by a single line block comment
> you can format it as:
>
> // SPDX-License-Identifier: GPL-2.0-only
> //
> // Copyright (C) 2019 Jason Yan <yanaijie@huawei.com>
> >
>> +#include <linux/signal.h>
>> +#include <linux/sched.h>
>> +#include <linux/kernel.h>
>> +#include <linux/errno.h>
>> +#include <linux/string.h>
>> +#include <linux/types.h>
>> +#include <linux/ptrace.h>
>> +#include <linux/mman.h>
>> +#include <linux/mm.h>
>> +#include <linux/swap.h>
>> +#include <linux/stddef.h>
>> +#include <linux/vmalloc.h>
>> +#include <linux/init.h>
>> +#include <linux/delay.h>
>> +#include <linux/highmem.h>
>> +#include <linux/memblock.h>
>> +#include <asm/pgalloc.h>
>> +#include <asm/prom.h>
>> +#include <asm/io.h>
>> +#include <asm/mmu_context.h>
>> +#include <asm/pgtable.h>
>> +#include <asm/mmu.h>
>> +#include <linux/uaccess.h>
>> +#include <asm/smp.h>
>> +#include <asm/machdep.h>
>> +#include <asm/setup.h>
>> +#include <asm/paca.h>
>> +#include <mm/mmu_decl.h>
>
> Do you really need all those headers?
>
I will remove useless headers.
>> +extern int is_second_reloc;
>
> That should be in a header.
>
> Any reason why it isn't a bool?
>
Oh yes, it should be in a header. This variable is already defined
before and also used in assembly code. I think it was not defined as a
bool just because there is no 'bool' in assembly code.
> cheers
>
>
> .
>
next prev parent reply other threads:[~2019-08-08 6:20 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-07 6:56 [PATCH v5 00/10] implement KASLR for powerpc/fsl_booke/32 Jason Yan
2019-08-07 6:56 ` [PATCH v5 01/10] powerpc: unify definition of M_IF_NEEDED Jason Yan
2019-08-07 13:13 ` Michael Ellerman
2019-08-08 3:25 ` Jason Yan
2019-08-07 6:56 ` [PATCH v5 02/10] powerpc: move memstart_addr and kernstart_addr to init-common.c Jason Yan
2019-08-07 13:02 ` Michael Ellerman
2019-08-08 3:32 ` Jason Yan
2019-08-07 6:56 ` [PATCH v5 03/10] powerpc: introduce kimage_vaddr to store the kernel base Jason Yan
2019-08-07 13:03 ` Michael Ellerman
2019-08-08 4:29 ` Jason Yan
2019-08-07 6:57 ` [PATCH v5 04/10] powerpc/fsl_booke/32: introduce create_tlb_entry() helper Jason Yan
2019-08-07 6:57 ` [PATCH v5 05/10] powerpc/fsl_booke/32: introduce reloc_kernel_entry() helper Jason Yan
2019-08-07 6:57 ` [PATCH v5 06/10] powerpc/fsl_booke/32: implement KASLR infrastructure Jason Yan
2019-08-07 13:04 ` Michael Ellerman
2019-08-08 6:19 ` Jason Yan [this message]
2019-08-07 6:57 ` [PATCH v5 07/10] powerpc/fsl_booke/32: randomize the kernel image offset Jason Yan
2019-08-07 13:03 ` Michael Ellerman
2019-08-08 7:08 ` Jason Yan
2019-08-07 6:57 ` [PATCH v5 08/10] powerpc/fsl_booke/kaslr: clear the original kernel if randomized Jason Yan
2019-08-07 6:57 ` [PATCH v5 09/10] powerpc/fsl_booke/kaslr: support nokaslr cmdline parameter Jason Yan
2019-08-07 13:03 ` Michael Ellerman
2019-08-08 8:19 ` Jason Yan
2019-08-07 6:57 ` [PATCH v5 10/10] powerpc/fsl_booke/kaslr: dump out kernel offset information on panic Jason Yan
2019-08-07 13:03 ` Michael Ellerman
2019-08-08 8:39 ` Jason Yan
2019-08-07 13:12 ` [PATCH v5 00/10] implement KASLR for powerpc/fsl_booke/32 Michael Ellerman
2019-08-08 3:19 ` Jason Yan
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=9a47e042-8994-273f-0622-bdb4d7661668@huawei.com \
--to=yanaijie@huawei.com \
--cc=benh@kernel.crashing.org \
--cc=christophe.leroy@c-s.fr \
--cc=diana.craciun@nxp.com \
--cc=fanchengyang@huawei.com \
--cc=jingxiangfeng@huawei.com \
--cc=keescook@chromium.org \
--cc=kernel-hardening@lists.openwall.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mpe@ellerman.id.au \
--cc=npiggin@gmail.com \
--cc=paulus@samba.org \
--cc=thunder.leizhen@huawei.com \
--cc=wangkefeng.wang@huawei.com \
--cc=yebin10@huawei.com \
--cc=zhaohongjiang@huawei.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®