Message ID | 20190724055850.6232-13-alex@ghiti.fr (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Provide generic top-down mmap layout functions | expand |
On Wed, Jul 24, 2019 at 01:58:48AM -0400, Alexandre Ghiti wrote: > Mips uses TASK_IS_32BIT_ADDR to determine if a task is 32bit, but > this define is mips specific and other arches do not have it: instead, > use !IS_ENABLED(CONFIG_64BIT) || is_compat_task() condition. > > Signed-off-by: Alexandre Ghiti <alex@ghiti.fr> > Reviewed-by: Kees Cook <keescook@chromium.org> > --- > arch/mips/mm/mmap.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/arch/mips/mm/mmap.c b/arch/mips/mm/mmap.c > index faa5aa615389..d4eafbb82789 100644 > --- a/arch/mips/mm/mmap.c > +++ b/arch/mips/mm/mmap.c > @@ -17,6 +17,7 @@ > #include <linux/sched/signal.h> > #include <linux/sched/mm.h> > #include <linux/sizes.h> > +#include <linux/compat.h> > > unsigned long shm_align_mask = PAGE_SIZE - 1; /* Sane caches */ > EXPORT_SYMBOL(shm_align_mask); > @@ -191,7 +192,7 @@ static inline unsigned long brk_rnd(void) > > rnd = rnd << PAGE_SHIFT; > /* 32MB for 32bit, 1GB for 64bit */ > - if (TASK_IS_32BIT_ADDR) > + if (!IS_ENABLED(CONFIG_64BIT) || is_compat_task()) > rnd = rnd & SZ_32M; > else > rnd = rnd & SZ_1G; > -- Since there are at least two users why not just create an inline for this which describes what we are looking for and remove the comments? Luis
On 7/24/19 7:16 PM, Luis Chamberlain wrote: > On Wed, Jul 24, 2019 at 01:58:48AM -0400, Alexandre Ghiti wrote: >> Mips uses TASK_IS_32BIT_ADDR to determine if a task is 32bit, but >> this define is mips specific and other arches do not have it: instead, >> use !IS_ENABLED(CONFIG_64BIT) || is_compat_task() condition. >> >> Signed-off-by: Alexandre Ghiti <alex@ghiti.fr> >> Reviewed-by: Kees Cook <keescook@chromium.org> >> --- >> arch/mips/mm/mmap.c | 3 ++- >> 1 file changed, 2 insertions(+), 1 deletion(-) >> >> diff --git a/arch/mips/mm/mmap.c b/arch/mips/mm/mmap.c >> index faa5aa615389..d4eafbb82789 100644 >> --- a/arch/mips/mm/mmap.c >> +++ b/arch/mips/mm/mmap.c >> @@ -17,6 +17,7 @@ >> #include <linux/sched/signal.h> >> #include <linux/sched/mm.h> >> #include <linux/sizes.h> >> +#include <linux/compat.h> >> >> unsigned long shm_align_mask = PAGE_SIZE - 1; /* Sane caches */ >> EXPORT_SYMBOL(shm_align_mask); >> @@ -191,7 +192,7 @@ static inline unsigned long brk_rnd(void) >> >> rnd = rnd << PAGE_SHIFT; >> /* 32MB for 32bit, 1GB for 64bit */ >> - if (TASK_IS_32BIT_ADDR) >> + if (!IS_ENABLED(CONFIG_64BIT) || is_compat_task()) >> rnd = rnd & SZ_32M; >> else >> rnd = rnd & SZ_1G; >> -- > Since there are at least two users why not just create an inline for > this which describes what we are looking for and remove the comments? Actually this is a preparatory patch, this will get merged with the generic version in the next patch. Alex > > Luis > > _______________________________________________ > linux-riscv mailing list > linux-riscv@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-riscv
diff --git a/arch/mips/mm/mmap.c b/arch/mips/mm/mmap.c index faa5aa615389..d4eafbb82789 100644 --- a/arch/mips/mm/mmap.c +++ b/arch/mips/mm/mmap.c @@ -17,6 +17,7 @@ #include <linux/sched/signal.h> #include <linux/sched/mm.h> #include <linux/sizes.h> +#include <linux/compat.h> unsigned long shm_align_mask = PAGE_SIZE - 1; /* Sane caches */ EXPORT_SYMBOL(shm_align_mask); @@ -191,7 +192,7 @@ static inline unsigned long brk_rnd(void) rnd = rnd << PAGE_SHIFT; /* 32MB for 32bit, 1GB for 64bit */ - if (TASK_IS_32BIT_ADDR) + if (!IS_ENABLED(CONFIG_64BIT) || is_compat_task()) rnd = rnd & SZ_32M; else rnd = rnd & SZ_1G;