Messages in this thread Patch in this message | | | Date | Mon, 3 May 2021 14:05:16 +0100 | From | Matthew Wilcox <> | Subject | Re: [PATCH] nommu: remove __GFP_HIGHMEM in vmalloc/vzalloc |
| |
On Mon, May 03, 2021 at 08:44:51PM +0800, Chen Li wrote: > > From mm/nommu.c: > void *__vmalloc(unsigned long size, gfp_t gfp_mask) > { > /* > * You can't specify __GFP_HIGHMEM with kmalloc() since kmalloc() > * returns only a logical address. > */ > return kmalloc(size, (gfp_mask | __GFP_COMP) & ~__GFP_HIGHMEM); > } > > nommu's __vmalloc just uses kmalloc internally and elimitates __GFP_HIGHMEM, > so it makes no sense to add __GFP_HIGHMEM for nommu's vmalloc/vzalloc.
I think this was originally [1] a copy of vmalloc() from vmalloc.c, but of course the two have drifted apart over time. At the time, vmalloc.c's vmalloc() looked like this:
+void * vmalloc (unsigned long size) +{ + return __vmalloc(size, GFP_KERNEL | __GFP_HIGHMEM, PAGE_KERNEL); +}
[1] And I do mean originally; this was present in Alan Cox's original submission of mm/nommu.c in 2002.
This patch makes sense to me, although I don't imagine it makes much difference.
Reviewed-by: Matthew Wilcox (Oracle) <willy@infradead.org>
> Signed-off-by: Chen Li <chenli@uniontech.com> > --- > mm/nommu.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/mm/nommu.c b/mm/nommu.c > index 5c9ab799c0e6..339a2f2eb1aa 100644 > --- a/mm/nommu.c > +++ b/mm/nommu.c > @@ -233,7 +233,7 @@ long vwrite(char *buf, char *addr, unsigned long count) > */ > void *vmalloc(unsigned long size) > { > - return __vmalloc(size, GFP_KERNEL | __GFP_HIGHMEM); > + return __vmalloc(size, GFP_KERNEL); > } > EXPORT_SYMBOL(vmalloc); > > @@ -251,7 +251,7 @@ EXPORT_SYMBOL(vmalloc); > */ > void *vzalloc(unsigned long size) > { > - return __vmalloc(size, GFP_KERNEL | __GFP_HIGHMEM | __GFP_ZERO); > + return __vmalloc(size, GFP_KERNEL | __GFP_ZERO); > } > EXPORT_SYMBOL(vzalloc); > > -- > 2.31.1 > > > >
| |