Message ID | 20190808061756.19712-12-alex@ghiti.fr (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | Provide generic top-down mmap layout functions | expand |
Hello! On 08.08.2019 9:17, Alexandre Ghiti wrote: > This commit simply bumps up to 32MB and 1GB the random offset > of brk, compared to 8MB and 256MB, for 32bit and 64bit respectively. > > Suggested-by: Kees Cook <keescook@chromium.org> > Signed-off-by: Alexandre Ghiti <alex@ghiti.fr> > Acked-by: Paul Burton <paul.burton@mips.com> > Reviewed-by: Kees Cook <keescook@chromium.org> > Reviewed-by: Luis Chamberlain <mcgrof@kernel.org> > --- > arch/mips/mm/mmap.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/arch/mips/mm/mmap.c b/arch/mips/mm/mmap.c > index a7e84b2e71d7..ff6ab87e9c56 100644 > --- a/arch/mips/mm/mmap.c > +++ b/arch/mips/mm/mmap.c [...] > @@ -189,11 +190,11 @@ static inline unsigned long brk_rnd(void) > unsigned long rnd = get_random_long(); > > rnd = rnd << PAGE_SHIFT; > - /* 8MB for 32bit, 256MB for 64bit */ > + /* 32MB for 32bit, 1GB for 64bit */ > if (TASK_IS_32BIT_ADDR) > - rnd = rnd & 0x7ffffful; > + rnd = rnd & (SZ_32M - 1); > else > - rnd = rnd & 0xffffffful; > + rnd = rnd & (SZ_1G - 1); Why not make these 'rnd &= SZ_* - 1', while at it anyways? [...] MBR, Sergei
On 8/8/19 11:19 AM, Sergei Shtylyov wrote: > Hello! > > On 08.08.2019 9:17, Alexandre Ghiti wrote: > >> This commit simply bumps up to 32MB and 1GB the random offset >> of brk, compared to 8MB and 256MB, for 32bit and 64bit respectively. >> >> Suggested-by: Kees Cook <keescook@chromium.org> >> Signed-off-by: Alexandre Ghiti <alex@ghiti.fr> >> Acked-by: Paul Burton <paul.burton@mips.com> >> Reviewed-by: Kees Cook <keescook@chromium.org> >> Reviewed-by: Luis Chamberlain <mcgrof@kernel.org> >> --- >> arch/mips/mm/mmap.c | 7 ++++--- >> 1 file changed, 4 insertions(+), 3 deletions(-) >> >> diff --git a/arch/mips/mm/mmap.c b/arch/mips/mm/mmap.c >> index a7e84b2e71d7..ff6ab87e9c56 100644 >> --- a/arch/mips/mm/mmap.c >> +++ b/arch/mips/mm/mmap.c > [...] >> @@ -189,11 +190,11 @@ static inline unsigned long brk_rnd(void) >> unsigned long rnd = get_random_long(); >> rnd = rnd << PAGE_SHIFT; >> - /* 8MB for 32bit, 256MB for 64bit */ >> + /* 32MB for 32bit, 1GB for 64bit */ >> if (TASK_IS_32BIT_ADDR) >> - rnd = rnd & 0x7ffffful; >> + rnd = rnd & (SZ_32M - 1); >> else >> - rnd = rnd & 0xffffffful; >> + rnd = rnd & (SZ_1G - 1); > > Why not make these 'rnd &= SZ_* - 1', while at it anyways? You're right, I could have. Again, this code gets removed afterwards, so I think it's ok to leave it as is. Anyway, thanks for your remarks Sergei ! Alex > > [...] > > MBR, Sergei > > _______________________________________________ > 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 a7e84b2e71d7..ff6ab87e9c56 100644 --- a/arch/mips/mm/mmap.c +++ b/arch/mips/mm/mmap.c @@ -16,6 +16,7 @@ #include <linux/random.h> #include <linux/sched/signal.h> #include <linux/sched/mm.h> +#include <linux/sizes.h> unsigned long shm_align_mask = PAGE_SIZE - 1; /* Sane caches */ EXPORT_SYMBOL(shm_align_mask); @@ -189,11 +190,11 @@ static inline unsigned long brk_rnd(void) unsigned long rnd = get_random_long(); rnd = rnd << PAGE_SHIFT; - /* 8MB for 32bit, 256MB for 64bit */ + /* 32MB for 32bit, 1GB for 64bit */ if (TASK_IS_32BIT_ADDR) - rnd = rnd & 0x7ffffful; + rnd = rnd & (SZ_32M - 1); else - rnd = rnd & 0xffffffful; + rnd = rnd & (SZ_1G - 1); return rnd; }