LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [PATCH v3 0/2] mm: PAGE_KERNEL_* fallbacks
@ 2018-05-10 18:55 Luis R. Rodriguez
2018-05-10 18:55 ` [PATCH v3 1/2] mm: provide a fallback for PAGE_KERNEL_RO for architectures Luis R. Rodriguez
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Luis R. Rodriguez @ 2018-05-10 18:55 UTC (permalink / raw)
To: arnd
Cc: gregkh, willy, geert, linux-m68k, linux-arch, linux-mm,
linux-kernel, Luis R. Rodriguez
This is the 3rd iteration for moving PAGE_KERNEL_* fallback
definitions into asm-generic headers. Greg asked for a Changelog
for patch iteration changes, its below.
All these patches have been tested by 0-day.
Questions, and specially flames are greatly appreciated.
v3:
Removed documentation effort to keep tabs on which architectures
currently don't defint the respective PAGE_* flags. Keeping tabs
on this is just not worth it.
Ran a spell checker on all patches :)
v2:
I added a patch for PAGE_KERNEL_EXEC as suggested by Matthew Wilcox.
v1:
I sent out a patch just for dealing witht he fallback mechanism for
PAGE_KERNEL_RO.
Luis R. Rodriguez (2):
mm: provide a fallback for PAGE_KERNEL_RO for architectures
mm: provide a fallback for PAGE_KERNEL_EXEC for architectures
drivers/base/firmware_loader/fallback.c | 5 -----
include/asm-generic/pgtable.h | 18 ++++++++++++++++++
mm/nommu.c | 4 ----
mm/vmalloc.c | 4 ----
4 files changed, 18 insertions(+), 13 deletions(-)
--
2.17.0
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v3 1/2] mm: provide a fallback for PAGE_KERNEL_RO for architectures
2018-05-10 18:55 [PATCH v3 0/2] mm: PAGE_KERNEL_* fallbacks Luis R. Rodriguez
@ 2018-05-10 18:55 ` Luis R. Rodriguez
2018-05-10 18:55 ` [PATCH v3 2/2] mm: provide a fallback for PAGE_KERNEL_EXEC " Luis R. Rodriguez
2018-05-16 16:44 ` [PATCH v3 0/2] mm: PAGE_KERNEL_* fallbacks Luis R. Rodriguez
2 siblings, 0 replies; 8+ messages in thread
From: Luis R. Rodriguez @ 2018-05-10 18:55 UTC (permalink / raw)
To: arnd
Cc: gregkh, willy, geert, linux-m68k, linux-arch, linux-mm,
linux-kernel, Luis R. Rodriguez
Some architectures do not define certain PAGE_KERNEL_* flags, this is
either because:
a) The way to implement some of these flags is *not yet ported*, or
b) The architecture *has no way* to describe them
Over time we have accumulated a few PAGE_KERNEL_* fallback work arounds
for architectures in the kernel which do not define them using *relatively
safe* equivalents. Move these scattered fallback hacks into asm-generic.
We start off with PAGE_KERNEL_RO using PAGE_KERNEL as a fallback. This
has been in place on the firmware loader for years. Move the fallback
into the respective asm-generic header.
Signed-off-by: Luis R. Rodriguez <mcgrof@kernel.org>
---
drivers/base/firmware_loader/fallback.c | 5 -----
include/asm-generic/pgtable.h | 14 ++++++++++++++
2 files changed, 14 insertions(+), 5 deletions(-)
diff --git a/drivers/base/firmware_loader/fallback.c b/drivers/base/firmware_loader/fallback.c
index 358354148dec..36f016b753e0 100644
--- a/drivers/base/firmware_loader/fallback.c
+++ b/drivers/base/firmware_loader/fallback.c
@@ -219,11 +219,6 @@ static ssize_t firmware_loading_show(struct device *dev,
return sprintf(buf, "%d\n", loading);
}
-/* Some architectures don't have PAGE_KERNEL_RO */
-#ifndef PAGE_KERNEL_RO
-#define PAGE_KERNEL_RO PAGE_KERNEL
-#endif
-
/* one pages buffer should be mapped/unmapped only once */
static int map_fw_priv_pages(struct fw_priv *fw_priv)
{
diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h
index f59639afaa39..4e310e543fc8 100644
--- a/include/asm-generic/pgtable.h
+++ b/include/asm-generic/pgtable.h
@@ -1083,6 +1083,20 @@ int phys_mem_access_prot_allowed(struct file *file, unsigned long pfn,
static inline void init_espfix_bsp(void) { }
#endif
+/*
+ * Architecture PAGE_KERNEL_* fallbacks
+ *
+ * Some architectures don't define certain PAGE_KERNEL_* flags. This is either
+ * because they really don't support them, or the port needs to be updated to
+ * reflect the required functionality. Below are a set of relatively safe
+ * fallbacks, as best effort, which we can count on in lieu of the architectures
+ * not defining them on their own yet.
+ */
+
+#ifndef PAGE_KERNEL_RO
+# define PAGE_KERNEL_RO PAGE_KERNEL
+#endif
+
#endif /* !__ASSEMBLY__ */
#ifndef io_remap_pfn_range
--
2.17.0
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v3 2/2] mm: provide a fallback for PAGE_KERNEL_EXEC for architectures
2018-05-10 18:55 [PATCH v3 0/2] mm: PAGE_KERNEL_* fallbacks Luis R. Rodriguez
2018-05-10 18:55 ` [PATCH v3 1/2] mm: provide a fallback for PAGE_KERNEL_RO for architectures Luis R. Rodriguez
@ 2018-05-10 18:55 ` Luis R. Rodriguez
2018-05-16 16:44 ` [PATCH v3 0/2] mm: PAGE_KERNEL_* fallbacks Luis R. Rodriguez
2 siblings, 0 replies; 8+ messages in thread
From: Luis R. Rodriguez @ 2018-05-10 18:55 UTC (permalink / raw)
To: arnd
Cc: gregkh, willy, geert, linux-m68k, linux-arch, linux-mm,
linux-kernel, Luis R. Rodriguez
Some architectures just don't have PAGE_KERNEL_EXEC. The mm/nommu.c
and mm/vmalloc.c code have been using PAGE_KERNEL as a fallback for
years. Move this fallback to asm-generic.
Suggested-by: Matthew Wilcox <willy@infradead.org>
Signed-off-by: Luis R. Rodriguez <mcgrof@kernel.org>
---
include/asm-generic/pgtable.h | 4 ++++
mm/nommu.c | 4 ----
mm/vmalloc.c | 4 ----
3 files changed, 4 insertions(+), 8 deletions(-)
diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h
index 4e310e543fc8..81371468ed5a 100644
--- a/include/asm-generic/pgtable.h
+++ b/include/asm-generic/pgtable.h
@@ -1097,6 +1097,10 @@ static inline void init_espfix_bsp(void) { }
# define PAGE_KERNEL_RO PAGE_KERNEL
#endif
+#ifndef PAGE_KERNEL_EXEC
+# define PAGE_KERNEL_EXEC PAGE_KERNEL
+#endif
+
#endif /* !__ASSEMBLY__ */
#ifndef io_remap_pfn_range
diff --git a/mm/nommu.c b/mm/nommu.c
index 13723736d38f..08ad4dcd281d 100644
--- a/mm/nommu.c
+++ b/mm/nommu.c
@@ -364,10 +364,6 @@ void *vzalloc_node(unsigned long size, int node)
}
EXPORT_SYMBOL(vzalloc_node);
-#ifndef PAGE_KERNEL_EXEC
-# define PAGE_KERNEL_EXEC PAGE_KERNEL
-#endif
-
/**
* vmalloc_exec - allocate virtually contiguous, executable memory
* @size: allocation size
diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index ebff729cc956..89543d13e32a 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -1920,10 +1920,6 @@ void *vzalloc_node(unsigned long size, int node)
}
EXPORT_SYMBOL(vzalloc_node);
-#ifndef PAGE_KERNEL_EXEC
-# define PAGE_KERNEL_EXEC PAGE_KERNEL
-#endif
-
/**
* vmalloc_exec - allocate virtually contiguous, executable memory
* @size: allocation size
--
2.17.0
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v3 0/2] mm: PAGE_KERNEL_* fallbacks
2018-05-10 18:55 [PATCH v3 0/2] mm: PAGE_KERNEL_* fallbacks Luis R. Rodriguez
2018-05-10 18:55 ` [PATCH v3 1/2] mm: provide a fallback for PAGE_KERNEL_RO for architectures Luis R. Rodriguez
2018-05-10 18:55 ` [PATCH v3 2/2] mm: provide a fallback for PAGE_KERNEL_EXEC " Luis R. Rodriguez
@ 2018-05-16 16:44 ` Luis R. Rodriguez
2018-05-23 21:35 ` Luis R. Rodriguez
2 siblings, 1 reply; 8+ messages in thread
From: Luis R. Rodriguez @ 2018-05-16 16:44 UTC (permalink / raw)
To: arnd, gregkh, willy
Cc: mcgrof, geert, linux-m68k, linux-arch, linux-mm, linux-kernel
On Thu, May 10, 2018 at 11:55:05AM -0700, Luis R. Rodriguez wrote:
> This is the 3rd iteration for moving PAGE_KERNEL_* fallback
> definitions into asm-generic headers. Greg asked for a Changelog
> for patch iteration changes, its below.
>
> All these patches have been tested by 0-day.
>
> Questions, and specially flames are greatly appreciated.
*Poke*
Who's tree should this go through?
Luis
>
> v3:
>
> Removed documentation effort to keep tabs on which architectures
> currently don't defint the respective PAGE_* flags. Keeping tabs
> on this is just not worth it.
>
> Ran a spell checker on all patches :)
>
> v2:
>
> I added a patch for PAGE_KERNEL_EXEC as suggested by Matthew Wilcox.
>
> v1:
>
> I sent out a patch just for dealing witht he fallback mechanism for
> PAGE_KERNEL_RO.
>
> Luis R. Rodriguez (2):
> mm: provide a fallback for PAGE_KERNEL_RO for architectures
> mm: provide a fallback for PAGE_KERNEL_EXEC for architectures
>
> drivers/base/firmware_loader/fallback.c | 5 -----
> include/asm-generic/pgtable.h | 18 ++++++++++++++++++
> mm/nommu.c | 4 ----
> mm/vmalloc.c | 4 ----
> 4 files changed, 18 insertions(+), 13 deletions(-)
>
> --
> 2.17.0
>
>
--
Do not panic
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v3 0/2] mm: PAGE_KERNEL_* fallbacks
2018-05-16 16:44 ` [PATCH v3 0/2] mm: PAGE_KERNEL_* fallbacks Luis R. Rodriguez
@ 2018-05-23 21:35 ` Luis R. Rodriguez
2018-05-30 19:55 ` Luis R. Rodriguez
0 siblings, 1 reply; 8+ messages in thread
From: Luis R. Rodriguez @ 2018-05-23 21:35 UTC (permalink / raw)
To: gregkh
Cc: arnd, gregkh, willy, geert, linux-m68k, linux-arch, linux-mm,
linux-kernel, mcgrof
On Wed, May 16, 2018 at 06:44:03PM +0200, Luis R. Rodriguez wrote:
> On Thu, May 10, 2018 at 11:55:05AM -0700, Luis R. Rodriguez wrote:
> > This is the 3rd iteration for moving PAGE_KERNEL_* fallback
> > definitions into asm-generic headers. Greg asked for a Changelog
> > for patch iteration changes, its below.
> >
> > All these patches have been tested by 0-day.
> >
> > Questions, and specially flames are greatly appreciated.
>
> *Poke*
Greg, since this does touch the firmware loader as well, *poke*.
Luis
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v3 0/2] mm: PAGE_KERNEL_* fallbacks
2018-05-23 21:35 ` Luis R. Rodriguez
@ 2018-05-30 19:55 ` Luis R. Rodriguez
2018-05-30 20:06 ` Greg KH
0 siblings, 1 reply; 8+ messages in thread
From: Luis R. Rodriguez @ 2018-05-30 19:55 UTC (permalink / raw)
To: gregkh, arnd
Cc: gregkh, arnd, willy, geert, linux-m68k, linux-arch, linux-mm,
linux-kernel, mcgrof
On Wed, May 23, 2018 at 11:35:51PM +0200, Luis R. Rodriguez wrote:
> On Wed, May 16, 2018 at 06:44:03PM +0200, Luis R. Rodriguez wrote:
> > On Thu, May 10, 2018 at 11:55:05AM -0700, Luis R. Rodriguez wrote:
> > > This is the 3rd iteration for moving PAGE_KERNEL_* fallback
> > > definitions into asm-generic headers. Greg asked for a Changelog
> > > for patch iteration changes, its below.
> > >
> > > All these patches have been tested by 0-day.
> > >
> > > Questions, and specially flames are greatly appreciated.
> >
> > *Poke*
>
> Greg, since this does touch the firmware loader as well, *poke*.
*Re-re-poke*
Luis
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v3 0/2] mm: PAGE_KERNEL_* fallbacks
2018-05-30 19:55 ` Luis R. Rodriguez
@ 2018-05-30 20:06 ` Greg KH
2018-05-30 20:21 ` Luis R. Rodriguez
0 siblings, 1 reply; 8+ messages in thread
From: Greg KH @ 2018-05-30 20:06 UTC (permalink / raw)
To: Luis R. Rodriguez
Cc: arnd, willy, geert, linux-m68k, linux-arch, linux-mm, linux-kernel
On Wed, May 30, 2018 at 09:55:00PM +0200, Luis R. Rodriguez wrote:
> On Wed, May 23, 2018 at 11:35:51PM +0200, Luis R. Rodriguez wrote:
> > On Wed, May 16, 2018 at 06:44:03PM +0200, Luis R. Rodriguez wrote:
> > > On Thu, May 10, 2018 at 11:55:05AM -0700, Luis R. Rodriguez wrote:
> > > > This is the 3rd iteration for moving PAGE_KERNEL_* fallback
> > > > definitions into asm-generic headers. Greg asked for a Changelog
> > > > for patch iteration changes, its below.
> > > >
> > > > All these patches have been tested by 0-day.
> > > >
> > > > Questions, and specially flames are greatly appreciated.
> > >
> > > *Poke*
> >
> > Greg, since this does touch the firmware loader as well, *poke*.
>
> *Re-re-poke*
Hah, they are not for me to take, sorry, that's up to the mm maintainer.
good luck!
greg k-h
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v3 0/2] mm: PAGE_KERNEL_* fallbacks
2018-05-30 20:06 ` Greg KH
@ 2018-05-30 20:21 ` Luis R. Rodriguez
0 siblings, 0 replies; 8+ messages in thread
From: Luis R. Rodriguez @ 2018-05-30 20:21 UTC (permalink / raw)
To: Greg KH, Arnd Bergmann, Andrew Morton
Cc: Luis R. Rodriguez, arnd, willy, geert, linux-m68k, linux-arch,
linux-mm, linux-kernel
On Wed, May 30, 2018 at 10:06:08PM +0200, Greg KH wrote:
> On Wed, May 30, 2018 at 09:55:00PM +0200, Luis R. Rodriguez wrote:
> > On Wed, May 23, 2018 at 11:35:51PM +0200, Luis R. Rodriguez wrote:
> > > On Wed, May 16, 2018 at 06:44:03PM +0200, Luis R. Rodriguez wrote:
> > > > On Thu, May 10, 2018 at 11:55:05AM -0700, Luis R. Rodriguez wrote:
> > > > > This is the 3rd iteration for moving PAGE_KERNEL_* fallback
> > > > > definitions into asm-generic headers. Greg asked for a Changelog
> > > > > for patch iteration changes, its below.
> > > > >
> > > > > All these patches have been tested by 0-day.
> > > > >
> > > > > Questions, and specially flames are greatly appreciated.
> > > >
> > > > *Poke*
> > >
> > > Greg, since this does touch the firmware loader as well, *poke*.
> >
> > *Re-re-poke*
>
> Hah, they are not for me to take, sorry, that's up to the mm maintainer.
I'm not sure it is up to mm actually, since this is all
include/asm-generic/pgtable.h it seems this falls onto Arnd.
Its probably *best* mm folks decide though.
Arnd, are you OK if Andrew picks this up if he finds no issues with
the patches?
I'll bouncing copies to Andrew now.
Luis
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2018-05-30 20:21 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-10 18:55 [PATCH v3 0/2] mm: PAGE_KERNEL_* fallbacks Luis R. Rodriguez
2018-05-10 18:55 ` [PATCH v3 1/2] mm: provide a fallback for PAGE_KERNEL_RO for architectures Luis R. Rodriguez
2018-05-10 18:55 ` [PATCH v3 2/2] mm: provide a fallback for PAGE_KERNEL_EXEC " Luis R. Rodriguez
2018-05-16 16:44 ` [PATCH v3 0/2] mm: PAGE_KERNEL_* fallbacks Luis R. Rodriguez
2018-05-23 21:35 ` Luis R. Rodriguez
2018-05-30 19:55 ` Luis R. Rodriguez
2018-05-30 20:06 ` Greg KH
2018-05-30 20:21 ` 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;
as well as URLs for NNTP newsgroup(s).