Re: [PATCHv4 1/5] x86/mm: split arch_mmap_rnd() on compat/native versions

From: Dmitry Safonov
Date: Mon Feb 13 2017 - 06:16:51 EST


On 02/11/2017 11:23 AM, Thomas Gleixner wrote:
On Sat, 11 Feb 2017, Dmitry Safonov wrote:

2017-02-10 23:10 GMT+03:00 Thomas Gleixner <tglx@xxxxxxxxxxxxx>:
On Thu, 9 Feb 2017, Borislav Petkov wrote:
I can't say that I'm thrilled about the ifdeffery this is adding.

But I can't think of a cleaner approach at a quick glance, though -
that's generic and arch-specific code intertwined muck. Sad face.

It's trivial enough to do ....

Thanks,

tglx

---
arch/x86/mm/mmap.c | 22 ++++++++++------------
1 file changed, 10 insertions(+), 12 deletions(-)

--- a/arch/x86/mm/mmap.c
+++ b/arch/x86/mm/mmap.c
@@ -55,6 +55,10 @@ static unsigned long stack_maxrandom_siz
#define MIN_GAP (128*1024*1024UL + stack_maxrandom_size())
#define MAX_GAP (TASK_SIZE/6*5)

+#ifndef CONFIG_COMPAT
+# define mmap_rnd_compat_bits mmap_rnd_bits
+#endif
+

>From my POV, I can't say that it's clearer to shadow mmap_compat_bits
like that then to have two functions with native/compat names.
But if you insist, I'll resend patches set with your version.

You can make that

#ifdef CONFIG_64BIT
# define mmap32_rnd_bits mmap_compat_rnd_bits
# define mmap64_rnd_bits mmap_rnd_bits
#else
# define mmap32_rnd_bits mmap_rnd_bits
# define mmap64_rnd_bits mmap_rnd_bits
#endif

and use that. That's still way more readable than the unholy ifdef mess.

Ok, will send this version in v5.
Ping me if you mind me using your SOB for this patch.


Thanks,

tglx



--
Dmitry