RE: [PATCH 1/3] arm64:add missing CONFIG_STRICT_KERNEL_RWX for mark_rodata_ro
Because CONFIG_STRICT_KERNEL_RWX=n cannot be set by make menuconfig on arm64/x86/s390 architecture So, these three patches should not be necessary Sorry to disturb everyone Thank you for your guidance Thanks -Original Message- From: Mark Rutland [mailto:mark.rutl...@arm.com] Sent: Wednesday, May 30, 2018 4:08 PM To: Nixiaoming Cc: Will Deacon ; catalin.mari...@arm.com; ard.biesheu...@linaro.org; marc.zyng...@arm.com; james.mo...@arm.com; kristina.martse...@arm.com; steve.cap...@arm.com; t...@linutronix.de; mi...@redhat.com; h...@zytor.com; a...@linux-foundation.org; vba...@suse.cz; mho...@suse.com; dave.han...@linux.intel.com; dan.j.willi...@intel.com; kirill.shute...@linux.intel.com; zhang@linux.alibaba.com; schwidef...@de.ibm.com; heiko.carst...@de.ibm.com; gre...@linuxfoundation.org; linux-kernel@vger.kernel.org; linux-arm-ker...@lists.infradead.org; x...@kernel.org; linux-s...@vger.kernel.org Subject: Re: [PATCH 1/3] arm64:add missing CONFIG_STRICT_KERNEL_RWX for mark_rodata_ro On Wed, May 30, 2018 at 03:31:38AM +, Nixiaoming wrote: > Unable to set CONFIG_STRICT_KERNEL_RWX=n by make menuconfig ARCH=arm64 Indeed. Making this mandatory was a deliberate decision, in part because this allows simplification of code (e.g. removal of #ifdef guards). > When reading the code, I feel it is more appropriate to add macro control > here. I must disagree. I do not think it makes sense to add an #ifdef for a configuration option that is mandatory. There are other places in the kernel that should behave differently if CONFIG_STRICT_KERNEL_RWX were disabled, so this wouldn't be sufficient even if we were to make CONFIG_STRICT_KERNEL_RWX optional. i.e. the #ifdef would give the misleading impression that STRICT_KERNEL_RWX *could* be made optional, even though this might not function correctly. Having an #ifdef here makes the code more complicated and confusing, for the benefit of a case which cannot occur. Thanks, Mark. > -Original Message- > From: Will Deacon [mailto:will.dea...@arm.com] > Sent: Tuesday, May 29, 2018 11:45 PM > To: Nixiaoming > Cc: catalin.mari...@arm.com; ard.biesheu...@linaro.org; marc.zyng...@arm.com; > james.mo...@arm.com; kristina.martse...@arm.com; steve.cap...@arm.com; > t...@linutronix.de; mi...@redhat.com; h...@zytor.com; > a...@linux-foundation.org; vba...@suse.cz; mho...@suse.com; > dave.han...@linux.intel.com; dan.j.willi...@intel.com; > kirill.shute...@linux.intel.com; zhang@linux.alibaba.com; > schwidef...@de.ibm.com; heiko.carst...@de.ibm.com; > gre...@linuxfoundation.org; linux-kernel@vger.kernel.org; > linux-arm-ker...@lists.infradead.org; x...@kernel.org; > linux-s...@vger.kernel.org > Subject: Re: [PATCH 1/3] arm64:add missing CONFIG_STRICT_KERNEL_RWX for > mark_rodata_ro > > On Tue, May 29, 2018 at 09:36:15PM +0800, nixiaoming wrote: > > mark_rodata_ro is only called by the function mark_readonly when > > CONFIG_STRICT_KERNEL_RWX=y, > > if CONFIG_STRICT_KERNEL_RWX is not set > > a compile warning may be triggered: unused function > > How are you achieving this configuration? In our Kconfig we select this > unconditionally. > > Will
RE: [PATCH 1/3] arm64:add missing CONFIG_STRICT_KERNEL_RWX for mark_rodata_ro
Because CONFIG_STRICT_KERNEL_RWX=n cannot be set by make menuconfig on arm64/x86/s390 architecture So, these three patches should not be necessary Sorry to disturb everyone Thank you for your guidance Thanks -Original Message- From: Mark Rutland [mailto:mark.rutl...@arm.com] Sent: Wednesday, May 30, 2018 4:08 PM To: Nixiaoming Cc: Will Deacon ; catalin.mari...@arm.com; ard.biesheu...@linaro.org; marc.zyng...@arm.com; james.mo...@arm.com; kristina.martse...@arm.com; steve.cap...@arm.com; t...@linutronix.de; mi...@redhat.com; h...@zytor.com; a...@linux-foundation.org; vba...@suse.cz; mho...@suse.com; dave.han...@linux.intel.com; dan.j.willi...@intel.com; kirill.shute...@linux.intel.com; zhang@linux.alibaba.com; schwidef...@de.ibm.com; heiko.carst...@de.ibm.com; gre...@linuxfoundation.org; linux-kernel@vger.kernel.org; linux-arm-ker...@lists.infradead.org; x...@kernel.org; linux-s...@vger.kernel.org Subject: Re: [PATCH 1/3] arm64:add missing CONFIG_STRICT_KERNEL_RWX for mark_rodata_ro On Wed, May 30, 2018 at 03:31:38AM +, Nixiaoming wrote: > Unable to set CONFIG_STRICT_KERNEL_RWX=n by make menuconfig ARCH=arm64 Indeed. Making this mandatory was a deliberate decision, in part because this allows simplification of code (e.g. removal of #ifdef guards). > When reading the code, I feel it is more appropriate to add macro control > here. I must disagree. I do not think it makes sense to add an #ifdef for a configuration option that is mandatory. There are other places in the kernel that should behave differently if CONFIG_STRICT_KERNEL_RWX were disabled, so this wouldn't be sufficient even if we were to make CONFIG_STRICT_KERNEL_RWX optional. i.e. the #ifdef would give the misleading impression that STRICT_KERNEL_RWX *could* be made optional, even though this might not function correctly. Having an #ifdef here makes the code more complicated and confusing, for the benefit of a case which cannot occur. Thanks, Mark. > -Original Message- > From: Will Deacon [mailto:will.dea...@arm.com] > Sent: Tuesday, May 29, 2018 11:45 PM > To: Nixiaoming > Cc: catalin.mari...@arm.com; ard.biesheu...@linaro.org; marc.zyng...@arm.com; > james.mo...@arm.com; kristina.martse...@arm.com; steve.cap...@arm.com; > t...@linutronix.de; mi...@redhat.com; h...@zytor.com; > a...@linux-foundation.org; vba...@suse.cz; mho...@suse.com; > dave.han...@linux.intel.com; dan.j.willi...@intel.com; > kirill.shute...@linux.intel.com; zhang@linux.alibaba.com; > schwidef...@de.ibm.com; heiko.carst...@de.ibm.com; > gre...@linuxfoundation.org; linux-kernel@vger.kernel.org; > linux-arm-ker...@lists.infradead.org; x...@kernel.org; > linux-s...@vger.kernel.org > Subject: Re: [PATCH 1/3] arm64:add missing CONFIG_STRICT_KERNEL_RWX for > mark_rodata_ro > > On Tue, May 29, 2018 at 09:36:15PM +0800, nixiaoming wrote: > > mark_rodata_ro is only called by the function mark_readonly when > > CONFIG_STRICT_KERNEL_RWX=y, > > if CONFIG_STRICT_KERNEL_RWX is not set > > a compile warning may be triggered: unused function > > How are you achieving this configuration? In our Kconfig we select this > unconditionally. > > Will
Re: [PATCH 1/3] arm64:add missing CONFIG_STRICT_KERNEL_RWX for mark_rodata_ro
On Wed, May 30, 2018 at 03:31:38AM +, Nixiaoming wrote: > Unable to set CONFIG_STRICT_KERNEL_RWX=n by make menuconfig ARCH=arm64 Indeed. Making this mandatory was a deliberate decision, in part because this allows simplification of code (e.g. removal of #ifdef guards). > When reading the code, I feel it is more appropriate to add macro control > here. I must disagree. I do not think it makes sense to add an #ifdef for a configuration option that is mandatory. There are other places in the kernel that should behave differently if CONFIG_STRICT_KERNEL_RWX were disabled, so this wouldn't be sufficient even if we were to make CONFIG_STRICT_KERNEL_RWX optional. i.e. the #ifdef would give the misleading impression that STRICT_KERNEL_RWX *could* be made optional, even though this might not function correctly. Having an #ifdef here makes the code more complicated and confusing, for the benefit of a case which cannot occur. Thanks, Mark. > -Original Message- > From: Will Deacon [mailto:will.dea...@arm.com] > Sent: Tuesday, May 29, 2018 11:45 PM > To: Nixiaoming > Cc: catalin.mari...@arm.com; ard.biesheu...@linaro.org; marc.zyng...@arm.com; > james.mo...@arm.com; kristina.martse...@arm.com; steve.cap...@arm.com; > t...@linutronix.de; mi...@redhat.com; h...@zytor.com; > a...@linux-foundation.org; vba...@suse.cz; mho...@suse.com; > dave.han...@linux.intel.com; dan.j.willi...@intel.com; > kirill.shute...@linux.intel.com; zhang@linux.alibaba.com; > schwidef...@de.ibm.com; heiko.carst...@de.ibm.com; > gre...@linuxfoundation.org; linux-kernel@vger.kernel.org; > linux-arm-ker...@lists.infradead.org; x...@kernel.org; > linux-s...@vger.kernel.org > Subject: Re: [PATCH 1/3] arm64:add missing CONFIG_STRICT_KERNEL_RWX for > mark_rodata_ro > > On Tue, May 29, 2018 at 09:36:15PM +0800, nixiaoming wrote: > > mark_rodata_ro is only called by the function mark_readonly when > > CONFIG_STRICT_KERNEL_RWX=y, > > if CONFIG_STRICT_KERNEL_RWX is not set > > a compile warning may be triggered: unused function > > How are you achieving this configuration? In our Kconfig we select this > unconditionally. > > Will
Re: [PATCH 1/3] arm64:add missing CONFIG_STRICT_KERNEL_RWX for mark_rodata_ro
On Wed, May 30, 2018 at 03:31:38AM +, Nixiaoming wrote: > Unable to set CONFIG_STRICT_KERNEL_RWX=n by make menuconfig ARCH=arm64 Indeed. Making this mandatory was a deliberate decision, in part because this allows simplification of code (e.g. removal of #ifdef guards). > When reading the code, I feel it is more appropriate to add macro control > here. I must disagree. I do not think it makes sense to add an #ifdef for a configuration option that is mandatory. There are other places in the kernel that should behave differently if CONFIG_STRICT_KERNEL_RWX were disabled, so this wouldn't be sufficient even if we were to make CONFIG_STRICT_KERNEL_RWX optional. i.e. the #ifdef would give the misleading impression that STRICT_KERNEL_RWX *could* be made optional, even though this might not function correctly. Having an #ifdef here makes the code more complicated and confusing, for the benefit of a case which cannot occur. Thanks, Mark. > -Original Message- > From: Will Deacon [mailto:will.dea...@arm.com] > Sent: Tuesday, May 29, 2018 11:45 PM > To: Nixiaoming > Cc: catalin.mari...@arm.com; ard.biesheu...@linaro.org; marc.zyng...@arm.com; > james.mo...@arm.com; kristina.martse...@arm.com; steve.cap...@arm.com; > t...@linutronix.de; mi...@redhat.com; h...@zytor.com; > a...@linux-foundation.org; vba...@suse.cz; mho...@suse.com; > dave.han...@linux.intel.com; dan.j.willi...@intel.com; > kirill.shute...@linux.intel.com; zhang@linux.alibaba.com; > schwidef...@de.ibm.com; heiko.carst...@de.ibm.com; > gre...@linuxfoundation.org; linux-kernel@vger.kernel.org; > linux-arm-ker...@lists.infradead.org; x...@kernel.org; > linux-s...@vger.kernel.org > Subject: Re: [PATCH 1/3] arm64:add missing CONFIG_STRICT_KERNEL_RWX for > mark_rodata_ro > > On Tue, May 29, 2018 at 09:36:15PM +0800, nixiaoming wrote: > > mark_rodata_ro is only called by the function mark_readonly when > > CONFIG_STRICT_KERNEL_RWX=y, > > if CONFIG_STRICT_KERNEL_RWX is not set > > a compile warning may be triggered: unused function > > How are you achieving this configuration? In our Kconfig we select this > unconditionally. > > Will
RE: [PATCH 1/3] arm64:add missing CONFIG_STRICT_KERNEL_RWX for mark_rodata_ro
Unable to set CONFIG_STRICT_KERNEL_RWX=n by make menuconfig ARCH=arm64 When reading the code, I feel it is more appropriate to add macro control here. -Original Message- From: Will Deacon [mailto:will.dea...@arm.com] Sent: Tuesday, May 29, 2018 11:45 PM To: Nixiaoming Cc: catalin.mari...@arm.com; ard.biesheu...@linaro.org; marc.zyng...@arm.com; james.mo...@arm.com; kristina.martse...@arm.com; steve.cap...@arm.com; t...@linutronix.de; mi...@redhat.com; h...@zytor.com; a...@linux-foundation.org; vba...@suse.cz; mho...@suse.com; dave.han...@linux.intel.com; dan.j.willi...@intel.com; kirill.shute...@linux.intel.com; zhang@linux.alibaba.com; schwidef...@de.ibm.com; heiko.carst...@de.ibm.com; gre...@linuxfoundation.org; linux-kernel@vger.kernel.org; linux-arm-ker...@lists.infradead.org; x...@kernel.org; linux-s...@vger.kernel.org Subject: Re: [PATCH 1/3] arm64:add missing CONFIG_STRICT_KERNEL_RWX for mark_rodata_ro On Tue, May 29, 2018 at 09:36:15PM +0800, nixiaoming wrote: > mark_rodata_ro is only called by the function mark_readonly when > CONFIG_STRICT_KERNEL_RWX=y, > if CONFIG_STRICT_KERNEL_RWX is not set > a compile warning may be triggered: unused function How are you achieving this configuration? In our Kconfig we select this unconditionally. Will
RE: [PATCH 1/3] arm64:add missing CONFIG_STRICT_KERNEL_RWX for mark_rodata_ro
Unable to set CONFIG_STRICT_KERNEL_RWX=n by make menuconfig ARCH=arm64 When reading the code, I feel it is more appropriate to add macro control here. -Original Message- From: Will Deacon [mailto:will.dea...@arm.com] Sent: Tuesday, May 29, 2018 11:45 PM To: Nixiaoming Cc: catalin.mari...@arm.com; ard.biesheu...@linaro.org; marc.zyng...@arm.com; james.mo...@arm.com; kristina.martse...@arm.com; steve.cap...@arm.com; t...@linutronix.de; mi...@redhat.com; h...@zytor.com; a...@linux-foundation.org; vba...@suse.cz; mho...@suse.com; dave.han...@linux.intel.com; dan.j.willi...@intel.com; kirill.shute...@linux.intel.com; zhang@linux.alibaba.com; schwidef...@de.ibm.com; heiko.carst...@de.ibm.com; gre...@linuxfoundation.org; linux-kernel@vger.kernel.org; linux-arm-ker...@lists.infradead.org; x...@kernel.org; linux-s...@vger.kernel.org Subject: Re: [PATCH 1/3] arm64:add missing CONFIG_STRICT_KERNEL_RWX for mark_rodata_ro On Tue, May 29, 2018 at 09:36:15PM +0800, nixiaoming wrote: > mark_rodata_ro is only called by the function mark_readonly when > CONFIG_STRICT_KERNEL_RWX=y, > if CONFIG_STRICT_KERNEL_RWX is not set > a compile warning may be triggered: unused function How are you achieving this configuration? In our Kconfig we select this unconditionally. Will
Re: [PATCH 1/3] arm64:add missing CONFIG_STRICT_KERNEL_RWX for mark_rodata_ro
On Tue, May 29, 2018 at 09:36:15PM +0800, nixiaoming wrote: > mark_rodata_ro is only called by the function mark_readonly when > CONFIG_STRICT_KERNEL_RWX=y, > if CONFIG_STRICT_KERNEL_RWX is not set > a compile warning may be triggered: unused function How are you achieving this configuration? In our Kconfig we select this unconditionally. Will
Re: [PATCH 1/3] arm64:add missing CONFIG_STRICT_KERNEL_RWX for mark_rodata_ro
On Tue, May 29, 2018 at 09:36:15PM +0800, nixiaoming wrote: > mark_rodata_ro is only called by the function mark_readonly when > CONFIG_STRICT_KERNEL_RWX=y, > if CONFIG_STRICT_KERNEL_RWX is not set > a compile warning may be triggered: unused function How are you achieving this configuration? In our Kconfig we select this unconditionally. Will
[PATCH 1/3] arm64:add missing CONFIG_STRICT_KERNEL_RWX for mark_rodata_ro
mark_rodata_ro is only called by the function mark_readonly when CONFIG_STRICT_KERNEL_RWX=y, if CONFIG_STRICT_KERNEL_RWX is not set a compile warning may be triggered: unused function Signed-off-by: nixiaoming --- arch/arm64/mm/mmu.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c index 2dbb2c9..849f326 100644 --- a/arch/arm64/mm/mmu.c +++ b/arch/arm64/mm/mmu.c @@ -491,6 +491,7 @@ static void __init map_mem(pgd_t *pgdp) #endif } +#ifdef CONFIG_STRICT_KERNEL_RWX void mark_rodata_ro(void) { unsigned long section_size; @@ -505,6 +506,7 @@ void mark_rodata_ro(void) debug_checkwx(); } +#endif static void __init map_kernel_segment(pgd_t *pgdp, void *va_start, void *va_end, pgprot_t prot, struct vm_struct *vma, -- 2.10.1
[PATCH 1/3] arm64:add missing CONFIG_STRICT_KERNEL_RWX for mark_rodata_ro
mark_rodata_ro is only called by the function mark_readonly when CONFIG_STRICT_KERNEL_RWX=y, if CONFIG_STRICT_KERNEL_RWX is not set a compile warning may be triggered: unused function Signed-off-by: nixiaoming --- arch/arm64/mm/mmu.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c index 2dbb2c9..849f326 100644 --- a/arch/arm64/mm/mmu.c +++ b/arch/arm64/mm/mmu.c @@ -491,6 +491,7 @@ static void __init map_mem(pgd_t *pgdp) #endif } +#ifdef CONFIG_STRICT_KERNEL_RWX void mark_rodata_ro(void) { unsigned long section_size; @@ -505,6 +506,7 @@ void mark_rodata_ro(void) debug_checkwx(); } +#endif static void __init map_kernel_segment(pgd_t *pgdp, void *va_start, void *va_end, pgprot_t prot, struct vm_struct *vma, -- 2.10.1
Re: [PATCH 1/3] arm64:add missing CONFIG_STRICT_KERNEL_RWX for mark_rodata_ro
On Mon, May 28, 2018 at 11:33:53AM +0800, nixiaoming wrote: > Signed-off-by: nixiaoming Please can you write a commit message explaining what this fixes and also give me a pointer to patches 2 and 3 from this series? Will > --- > arch/arm64/mm/mmu.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c > index 2dbb2c9..849f326 100644 > --- a/arch/arm64/mm/mmu.c > +++ b/arch/arm64/mm/mmu.c > @@ -491,6 +491,7 @@ static void __init map_mem(pgd_t *pgdp) > #endif > } > > +#ifdef CONFIG_STRICT_KERNEL_RWX > void mark_rodata_ro(void) > { > unsigned long section_size; > @@ -505,6 +506,7 @@ void mark_rodata_ro(void) > > debug_checkwx(); > } > +#endif > > static void __init map_kernel_segment(pgd_t *pgdp, void *va_start, void > *va_end, > pgprot_t prot, struct vm_struct *vma, > -- > 2.10.1 >
Re: [PATCH 1/3] arm64:add missing CONFIG_STRICT_KERNEL_RWX for mark_rodata_ro
On Mon, May 28, 2018 at 11:33:53AM +0800, nixiaoming wrote: > Signed-off-by: nixiaoming Please can you write a commit message explaining what this fixes and also give me a pointer to patches 2 and 3 from this series? Will > --- > arch/arm64/mm/mmu.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c > index 2dbb2c9..849f326 100644 > --- a/arch/arm64/mm/mmu.c > +++ b/arch/arm64/mm/mmu.c > @@ -491,6 +491,7 @@ static void __init map_mem(pgd_t *pgdp) > #endif > } > > +#ifdef CONFIG_STRICT_KERNEL_RWX > void mark_rodata_ro(void) > { > unsigned long section_size; > @@ -505,6 +506,7 @@ void mark_rodata_ro(void) > > debug_checkwx(); > } > +#endif > > static void __init map_kernel_segment(pgd_t *pgdp, void *va_start, void > *va_end, > pgprot_t prot, struct vm_struct *vma, > -- > 2.10.1 >
[PATCH 1/3] arm64:add missing CONFIG_STRICT_KERNEL_RWX for mark_rodata_ro
Signed-off-by: nixiaoming--- arch/arm64/mm/mmu.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c index 2dbb2c9..849f326 100644 --- a/arch/arm64/mm/mmu.c +++ b/arch/arm64/mm/mmu.c @@ -491,6 +491,7 @@ static void __init map_mem(pgd_t *pgdp) #endif } +#ifdef CONFIG_STRICT_KERNEL_RWX void mark_rodata_ro(void) { unsigned long section_size; @@ -505,6 +506,7 @@ void mark_rodata_ro(void) debug_checkwx(); } +#endif static void __init map_kernel_segment(pgd_t *pgdp, void *va_start, void *va_end, pgprot_t prot, struct vm_struct *vma, -- 2.10.1
[PATCH 1/3] arm64:add missing CONFIG_STRICT_KERNEL_RWX for mark_rodata_ro
Signed-off-by: nixiaoming --- arch/arm64/mm/mmu.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c index 2dbb2c9..849f326 100644 --- a/arch/arm64/mm/mmu.c +++ b/arch/arm64/mm/mmu.c @@ -491,6 +491,7 @@ static void __init map_mem(pgd_t *pgdp) #endif } +#ifdef CONFIG_STRICT_KERNEL_RWX void mark_rodata_ro(void) { unsigned long section_size; @@ -505,6 +506,7 @@ void mark_rodata_ro(void) debug_checkwx(); } +#endif static void __init map_kernel_segment(pgd_t *pgdp, void *va_start, void *va_end, pgprot_t prot, struct vm_struct *vma, -- 2.10.1