* Re: [PATCH] mm: provide a fallback for PAGE_KERNEL_RO for architectures [not found] <20180428001526.22475-1-mcgrof@kernel.org> @ 2018-04-28 3:18 ` Matthew Wilcox 2018-05-09 1:04 ` Luis R. Rodriguez 0 siblings, 1 reply; 4+ messages in thread From: Matthew Wilcox @ 2018-04-28 3:18 UTC (permalink / raw) To: Luis R. Rodriguez Cc: arnd, gregkh, linux-arch, linux-fsdevel, linux-mm, linux-kernel, Tony Luck, Fenghua Yu, linux-ia64 On Fri, Apr 27, 2018 at 05:15:26PM -0700, Luis R. Rodriguez wrote: > Some architectures do not define PAGE_KERNEL_RO, best we can do > for them is to provide a fallback onto PAGE_KERNEL. Remove the > hack from the firmware loader and move it onto the asm-generic > header, and document while at it the affected architectures > which do not have a PAGE_KERNEL_RO: > > o alpha > o ia64 > o m68k > o mips > o sparc64 > o sparc ia64 doesn't have it? *fx: riffles through architecture book* That seems like an oversight of the Linux port. Tony, Fenghua, any thoughts? (also, Luis, maybe move the PAGE_KERNEL_EXEC fallback the same way you moved the PAGE_KERNEL_RO fallback?) --- >8 --- ia64: Add PAGE_KERNEL_RO and PAGE_KERNEL_EXEC The rest of the kernel was falling back to simple PAGE_KERNEL pages; using PAGE_KERNEL_RO and PAGE_KERNEL_EXEC provide better protection against unintended writes. Signed-off-by: Matthew Wilcox <mawilcox@microsoft.com> diff --git a/arch/ia64/include/asm/pgtable.h b/arch/ia64/include/asm/pgtable.h index 165827774bea..041a32a7960d 100644 --- a/arch/ia64/include/asm/pgtable.h +++ b/arch/ia64/include/asm/pgtable.h @@ -23,7 +23,7 @@ /* * First, define the various bits in a PTE. Note that the PTE format - * matches the VHPT short format, the firt doubleword of the VHPD long + * matches the VHPT short format, the first doubleword of the VHPD long * format, and the first doubleword of the TLB insertion format. */ #define _PAGE_P_BIT 0 @@ -142,9 +142,11 @@ #define PAGE_COPY_EXEC __pgprot(__ACCESS_BITS | _PAGE_PL_3 | _PAGE_AR_RX) #define PAGE_GATE __pgprot(__ACCESS_BITS | _PAGE_PL_0 | _PAGE_AR_X_RX) #define PAGE_KERNEL __pgprot(__DIRTY_BITS | _PAGE_PL_0 | _PAGE_AR_RWX) -#define PAGE_KERNELRX __pgprot(__ACCESS_BITS | _PAGE_PL_0 | _PAGE_AR_RX) +#define PAGE_KERNEL_RO __pgprot(__ACCESS_BITS | _PAGE_PL_0 | _PAGE_AR_R) +#define PAGE_KERNEL_RX __pgprot(__ACCESS_BITS | _PAGE_PL_0 | _PAGE_AR_RX) #define PAGE_KERNEL_UC __pgprot(__DIRTY_BITS | _PAGE_PL_0 | _PAGE_AR_RWX | \ _PAGE_MA_UC) +#define PAGE_KERNEL_EXEC PAGE_KERNEL_RX # ifndef __ASSEMBLY__ ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] mm: provide a fallback for PAGE_KERNEL_RO for architectures 2018-04-28 3:18 ` [PATCH] mm: provide a fallback for PAGE_KERNEL_RO for architectures Matthew Wilcox @ 2018-05-09 1:04 ` Luis R. Rodriguez 2018-05-09 1:39 ` Matthew Wilcox 0 siblings, 1 reply; 4+ messages in thread From: Luis R. Rodriguez @ 2018-05-09 1:04 UTC (permalink / raw) To: Matthew Wilcox, Tony Luck Cc: Luis R. Rodriguez, arnd, gregkh, linux-arch, linux-fsdevel, linux-mm, linux-kernel, Fenghua Yu, linux-ia64 On Fri, Apr 27, 2018 at 08:18:10PM -0700, Matthew Wilcox wrote: > On Fri, Apr 27, 2018 at 05:15:26PM -0700, Luis R. Rodriguez wrote: > > Some architectures do not define PAGE_KERNEL_RO, best we can do > > for them is to provide a fallback onto PAGE_KERNEL. Remove the > > hack from the firmware loader and move it onto the asm-generic > > header, and document while at it the affected architectures > > which do not have a PAGE_KERNEL_RO: > > > > o alpha > > o ia64 > > o m68k > > o mips > > o sparc64 > > o sparc > > ia64 doesn't have it? > > *fx: riffles through architecture book* > > That seems like an oversight of the Linux port. Tony, Fenghua, any thoughts? Poke *Tony, Fenghua* ? > (also, Luis, maybe move the PAGE_KERNEL_EXEC fallback the same way you > moved the PAGE_KERNEL_RO fallback?) Done. Will queue in the generic PAGE_KERNEL_EXEC patch to my series. > --- >8 --- > > ia64: Add PAGE_KERNEL_RO and PAGE_KERNEL_EXEC > > The rest of the kernel was falling back to simple PAGE_KERNEL pages; using > PAGE_KERNEL_RO and PAGE_KERNEL_EXEC provide better protection against > unintended writes. > > Signed-off-by: Matthew Wilcox <mawilcox@microsoft.com> Nice, should I queue this into my series as well? Luis ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] mm: provide a fallback for PAGE_KERNEL_RO for architectures 2018-05-09 1:04 ` Luis R. Rodriguez @ 2018-05-09 1:39 ` Matthew Wilcox 2018-05-10 1:15 ` Luis R. Rodriguez 0 siblings, 1 reply; 4+ messages in thread From: Matthew Wilcox @ 2018-05-09 1:39 UTC (permalink / raw) To: Luis R. Rodriguez Cc: Tony Luck, arnd, gregkh, linux-arch, linux-fsdevel, linux-mm, linux-kernel, Fenghua Yu, linux-ia64 On Wed, May 09, 2018 at 01:04:38AM +0000, Luis R. Rodriguez wrote: > On Fri, Apr 27, 2018 at 08:18:10PM -0700, Matthew Wilcox wrote: > > ia64: Add PAGE_KERNEL_RO and PAGE_KERNEL_EXEC > > > > The rest of the kernel was falling back to simple PAGE_KERNEL pages; using > > PAGE_KERNEL_RO and PAGE_KERNEL_EXEC provide better protection against > > unintended writes. > > > > Signed-off-by: Matthew Wilcox <mawilcox@microsoft.com> > > Nice, should I queue this into my series as well? A little reluctant to queue it without anyone having tested it. Heck, I didn't even check it compiled ;-) We used to just break architectures and let them fix it up for this kind of thing. That's not really acceptable nowadays, but I don't know how we get arch maintainers to fix up their ports now. ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] mm: provide a fallback for PAGE_KERNEL_RO for architectures 2018-05-09 1:39 ` Matthew Wilcox @ 2018-05-10 1:15 ` Luis R. Rodriguez 0 siblings, 0 replies; 4+ messages in thread From: Luis R. Rodriguez @ 2018-05-10 1:15 UTC (permalink / raw) To: Matthew Wilcox Cc: Luis R. Rodriguez, Tony Luck, arnd, gregkh, linux-arch, linux-fsdevel, linux-mm, linux-kernel, Fenghua Yu, linux-ia64 On Tue, May 08, 2018 at 06:39:35PM -0700, Matthew Wilcox wrote: > On Wed, May 09, 2018 at 01:04:38AM +0000, Luis R. Rodriguez wrote: > > On Fri, Apr 27, 2018 at 08:18:10PM -0700, Matthew Wilcox wrote: > > > ia64: Add PAGE_KERNEL_RO and PAGE_KERNEL_EXEC > > > > > > The rest of the kernel was falling back to simple PAGE_KERNEL pages; using > > > PAGE_KERNEL_RO and PAGE_KERNEL_EXEC provide better protection against > > > unintended writes. > > > > > > Signed-off-by: Matthew Wilcox <mawilcox@microsoft.com> > > > > Nice, should I queue this into my series as well? > > A little reluctant to queue it without anyone having tested it. Heck, > I didn't even check it compiled ;-) > > We used to just break architectures and let them fix it up for this kind > of thing. History is wonderful. > That's not really acceptable nowadays, but I don't know how > we get arch maintainers to fix up their ports now. OK then in that case I'll proceed with my patches for now and just document they don't have it. Once and folks test the patch we can consider it. Luis ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2018-05-10 1:15 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20180428001526.22475-1-mcgrof@kernel.org>
2018-04-28 3:18 ` [PATCH] mm: provide a fallback for PAGE_KERNEL_RO for architectures Matthew Wilcox
2018-05-09 1:04 ` Luis R. Rodriguez
2018-05-09 1:39 ` Matthew Wilcox
2018-05-10 1:15 ` Luis R. Rodriguez
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox