All of lore.kernel.org
 help / color / mirror / Atom feed
From: jonathanh@nvidia.com (Jon Hunter)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v5 3/4] arm64: mm: support ARCH_MMAP_RND_BITS.
Date: Mon, 7 Dec 2015 10:26:16 +0000	[thread overview]
Message-ID: <56655EC8.6030905@nvidia.com> (raw)
In-Reply-To: <1449000658-11475-4-git-send-email-dcashman@android.com>


On 01/12/15 20:10, Daniel Cashman wrote:
> From: dcashman <dcashman@google.com>
> 
> arm64: arch_mmap_rnd() uses STACK_RND_MASK to generate the
> random offset for the mmap base address.  This value represents a
> compromise between increased ASLR effectiveness and avoiding
> address-space fragmentation. Replace it with a Kconfig option, which
> is sensibly bounded, so that platform developers may choose where to
> place this compromise. Keep default values as new minimums.
> 
> Signed-off-by: Daniel Cashman <dcashman@android.com>
> ---
>  arch/arm64/Kconfig   | 31 +++++++++++++++++++++++++++++++
>  arch/arm64/mm/mmap.c |  8 ++++++--
>  2 files changed, 37 insertions(+), 2 deletions(-)

[snip]

> diff --git a/arch/arm64/mm/mmap.c b/arch/arm64/mm/mmap.c
> index ed17747..af461b9 100644
> --- a/arch/arm64/mm/mmap.c
> +++ b/arch/arm64/mm/mmap.c
> @@ -51,8 +51,12 @@ unsigned long arch_mmap_rnd(void)
>  {
>  	unsigned long rnd;
>  
> -	rnd = (unsigned long)get_random_int() & STACK_RND_MASK;
> -
> +ifdef CONFIG_COMPAT
> +	if (test_thread_flag(TIF_32BIT))
> +		rnd = (unsigned long)get_random_int() % (1 << mmap_rnd_compat_bits);
> +	else
> +#endif
> +		rnd = (unsigned long)get_random_int() % (1 << mmap_rnd_bits);
>  	return rnd << PAGE_SHIFT;
>  }

The above is causing a build failure on -next today.

commit 42a6c8953112a9856dd09148c3d6a2cc106b6003
Author: Jon Hunter <jonathanh@nvidia.com>
Date:   Mon Dec 7 10:15:47 2015 +0000

    ARM64: mm: Fix build failure caused by invalid ifdef statement
    
    Commit 2e4614190421 ("arm64-mm-support-arch_mmap_rnd_bits-v4") caused the
    following build failure due to a missing "#". Fix this.
    
    arch/arm64/mm/mmap.c: In function ?arch_mmap_rnd?:
    arch/arm64/mm/mmap.c:54:1: error: ?ifdef? undeclared (first use in this function)
     ifdef CONFIG_COMPAT
      ^
    Signed-off-by: Jon Hunter <jonathanh@nvidia.com>

diff --git a/arch/arm64/mm/mmap.c b/arch/arm64/mm/mmap.c
index af461b935137..e59a75a308bc 100644
--- a/arch/arm64/mm/mmap.c
+++ b/arch/arm64/mm/mmap.c
@@ -51,7 +51,7 @@ unsigned long arch_mmap_rnd(void)
 {
        unsigned long rnd;
 
-ifdef CONFIG_COMPAT
+#ifdef CONFIG_COMPAT
        if (test_thread_flag(TIF_32BIT))
                rnd = (unsigned long)get_random_int() % (1 << mmap_rnd_compat_bits);
        else

Cheers
Jon

WARNING: multiple messages have this Message-ID (diff)
From: Jon Hunter <jonathanh@nvidia.com>
To: Daniel Cashman <dcashman@android.com>, linux-kernel@vger.kernel.org
Cc: dcashman@google.com, linux-doc@vger.kernel.org,
	catalin.marinas@arm.com, will.deacon@arm.com, linux-mm@kvack.org,
	hpa@zytor.com, mingo@kernel.org, aarcange@redhat.com,
	linux@arm.linux.org.uk, corbet@lwn.net, xypron.glpk@gmx.de,
	x86@kernel.org, hecmargi@upv.es, mgorman@suse.de,
	rientjes@google.com, bp@suse.de, nnk@google.com,
	dzickus@redhat.com, keescook@chromium.org, arnd@arndb.de,
	jpoimboe@redhat.com, tglx@linutronix.de,
	n-horiguchi@ah.jp.nec.com, linux-arm-kernel@lists.infradead.org,
	salyzyn@android.com, ebiederm@xmission.com, jeffv@google.com,
	akpm@linux-foundation.org, kirill.shutemov@linux.intel.com
Subject: Re: [PATCH v5 3/4] arm64: mm: support ARCH_MMAP_RND_BITS.
Date: Mon, 7 Dec 2015 10:26:16 +0000	[thread overview]
Message-ID: <56655EC8.6030905@nvidia.com> (raw)
In-Reply-To: <1449000658-11475-4-git-send-email-dcashman@android.com>


On 01/12/15 20:10, Daniel Cashman wrote:
> From: dcashman <dcashman@google.com>
> 
> arm64: arch_mmap_rnd() uses STACK_RND_MASK to generate the
> random offset for the mmap base address.  This value represents a
> compromise between increased ASLR effectiveness and avoiding
> address-space fragmentation. Replace it with a Kconfig option, which
> is sensibly bounded, so that platform developers may choose where to
> place this compromise. Keep default values as new minimums.
> 
> Signed-off-by: Daniel Cashman <dcashman@android.com>
> ---
>  arch/arm64/Kconfig   | 31 +++++++++++++++++++++++++++++++
>  arch/arm64/mm/mmap.c |  8 ++++++--
>  2 files changed, 37 insertions(+), 2 deletions(-)

[snip]

> diff --git a/arch/arm64/mm/mmap.c b/arch/arm64/mm/mmap.c
> index ed17747..af461b9 100644
> --- a/arch/arm64/mm/mmap.c
> +++ b/arch/arm64/mm/mmap.c
> @@ -51,8 +51,12 @@ unsigned long arch_mmap_rnd(void)
>  {
>  	unsigned long rnd;
>  
> -	rnd = (unsigned long)get_random_int() & STACK_RND_MASK;
> -
> +ifdef CONFIG_COMPAT
> +	if (test_thread_flag(TIF_32BIT))
> +		rnd = (unsigned long)get_random_int() % (1 << mmap_rnd_compat_bits);
> +	else
> +#endif
> +		rnd = (unsigned long)get_random_int() % (1 << mmap_rnd_bits);
>  	return rnd << PAGE_SHIFT;
>  }

The above is causing a build failure on -next today.

commit 42a6c8953112a9856dd09148c3d6a2cc106b6003
Author: Jon Hunter <jonathanh@nvidia.com>
Date:   Mon Dec 7 10:15:47 2015 +0000

    ARM64: mm: Fix build failure caused by invalid ifdef statement
    
    Commit 2e4614190421 ("arm64-mm-support-arch_mmap_rnd_bits-v4") caused the
    following build failure due to a missing "#". Fix this.
    
    arch/arm64/mm/mmap.c: In function ‘arch_mmap_rnd’:
    arch/arm64/mm/mmap.c:54:1: error: ‘ifdef’ undeclared (first use in this function)
     ifdef CONFIG_COMPAT
      ^
    Signed-off-by: Jon Hunter <jonathanh@nvidia.com>

diff --git a/arch/arm64/mm/mmap.c b/arch/arm64/mm/mmap.c
index af461b935137..e59a75a308bc 100644
--- a/arch/arm64/mm/mmap.c
+++ b/arch/arm64/mm/mmap.c
@@ -51,7 +51,7 @@ unsigned long arch_mmap_rnd(void)
 {
        unsigned long rnd;
 
-ifdef CONFIG_COMPAT
+#ifdef CONFIG_COMPAT
        if (test_thread_flag(TIF_32BIT))
                rnd = (unsigned long)get_random_int() % (1 << mmap_rnd_compat_bits);
        else

Cheers
Jon

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

WARNING: multiple messages have this Message-ID (diff)
From: Jon Hunter <jonathanh@nvidia.com>
To: Daniel Cashman <dcashman@android.com>, <linux-kernel@vger.kernel.org>
Cc: <dcashman@google.com>, <linux-doc@vger.kernel.org>,
	<catalin.marinas@arm.com>, <will.deacon@arm.com>,
	<linux-mm@kvack.org>, <hpa@zytor.com>, <mingo@kernel.org>,
	<aarcange@redhat.com>, <linux@arm.linux.org.uk>, <corbet@lwn.net>,
	<xypron.glpk@gmx.de>, <x86@kernel.org>, <hecmargi@upv.es>,
	<mgorman@suse.de>, <rientjes@google.com>, <bp@suse.de>,
	<nnk@google.com>, <dzickus@redhat.com>, <keescook@chromium.org>,
	<arnd@arndb.de>, <jpoimboe@redhat.com>, <tglx@linutronix.de>,
	<n-horiguchi@ah.jp.nec.com>,
	<linux-arm-kernel@lists.infradead.org>, <salyzyn@android.com>,
	<ebiederm@xmission.com>, <jeffv@google.com>,
	<akpm@linux-foundation.org>, <kirill.shutemov@linux.intel.com>
Subject: Re: [PATCH v5 3/4] arm64: mm: support ARCH_MMAP_RND_BITS.
Date: Mon, 7 Dec 2015 10:26:16 +0000	[thread overview]
Message-ID: <56655EC8.6030905@nvidia.com> (raw)
In-Reply-To: <1449000658-11475-4-git-send-email-dcashman@android.com>


On 01/12/15 20:10, Daniel Cashman wrote:
> From: dcashman <dcashman@google.com>
> 
> arm64: arch_mmap_rnd() uses STACK_RND_MASK to generate the
> random offset for the mmap base address.  This value represents a
> compromise between increased ASLR effectiveness and avoiding
> address-space fragmentation. Replace it with a Kconfig option, which
> is sensibly bounded, so that platform developers may choose where to
> place this compromise. Keep default values as new minimums.
> 
> Signed-off-by: Daniel Cashman <dcashman@android.com>
> ---
>  arch/arm64/Kconfig   | 31 +++++++++++++++++++++++++++++++
>  arch/arm64/mm/mmap.c |  8 ++++++--
>  2 files changed, 37 insertions(+), 2 deletions(-)

[snip]

> diff --git a/arch/arm64/mm/mmap.c b/arch/arm64/mm/mmap.c
> index ed17747..af461b9 100644
> --- a/arch/arm64/mm/mmap.c
> +++ b/arch/arm64/mm/mmap.c
> @@ -51,8 +51,12 @@ unsigned long arch_mmap_rnd(void)
>  {
>  	unsigned long rnd;
>  
> -	rnd = (unsigned long)get_random_int() & STACK_RND_MASK;
> -
> +ifdef CONFIG_COMPAT
> +	if (test_thread_flag(TIF_32BIT))
> +		rnd = (unsigned long)get_random_int() % (1 << mmap_rnd_compat_bits);
> +	else
> +#endif
> +		rnd = (unsigned long)get_random_int() % (1 << mmap_rnd_bits);
>  	return rnd << PAGE_SHIFT;
>  }

The above is causing a build failure on -next today.

commit 42a6c8953112a9856dd09148c3d6a2cc106b6003
Author: Jon Hunter <jonathanh@nvidia.com>
Date:   Mon Dec 7 10:15:47 2015 +0000

    ARM64: mm: Fix build failure caused by invalid ifdef statement
    
    Commit 2e4614190421 ("arm64-mm-support-arch_mmap_rnd_bits-v4") caused the
    following build failure due to a missing "#". Fix this.
    
    arch/arm64/mm/mmap.c: In function ‘arch_mmap_rnd’:
    arch/arm64/mm/mmap.c:54:1: error: ‘ifdef’ undeclared (first use in this function)
     ifdef CONFIG_COMPAT
      ^
    Signed-off-by: Jon Hunter <jonathanh@nvidia.com>

diff --git a/arch/arm64/mm/mmap.c b/arch/arm64/mm/mmap.c
index af461b935137..e59a75a308bc 100644
--- a/arch/arm64/mm/mmap.c
+++ b/arch/arm64/mm/mmap.c
@@ -51,7 +51,7 @@ unsigned long arch_mmap_rnd(void)
 {
        unsigned long rnd;
 
-ifdef CONFIG_COMPAT
+#ifdef CONFIG_COMPAT
        if (test_thread_flag(TIF_32BIT))
                rnd = (unsigned long)get_random_int() % (1 << mmap_rnd_compat_bits);
        else

Cheers
Jon

  parent reply	other threads:[~2015-12-07 10:26 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-01 20:10 [PATCH v5 0/4] Allow customizable random offset to mmap_base address Daniel Cashman
2015-12-01 20:10 ` Daniel Cashman
2015-12-01 20:10 ` Daniel Cashman
2015-12-01 20:10 ` [PATCH v5 1/4] mm: mmap: Add new /proc tunable for mmap_base ASLR Daniel Cashman
2015-12-01 20:10   ` Daniel Cashman
2015-12-01 20:10   ` Daniel Cashman
2015-12-01 20:10   ` [PATCH v5 2/4] arm: mm: support ARCH_MMAP_RND_BITS Daniel Cashman
2015-12-01 20:10     ` Daniel Cashman
2015-12-01 20:10     ` Daniel Cashman
2015-12-01 20:10     ` [PATCH v5 3/4] arm64: " Daniel Cashman
2015-12-01 20:10       ` Daniel Cashman
2015-12-01 20:10       ` Daniel Cashman
2015-12-01 20:10       ` [PATCH v5 4/4] x86: " Daniel Cashman
2015-12-01 20:10         ` Daniel Cashman
2015-12-01 20:10         ` Daniel Cashman
2015-12-03 12:17       ` [PATCH v5 3/4] arm64: " Will Deacon
2015-12-03 12:17         ` Will Deacon
2015-12-03 12:17         ` Will Deacon
2015-12-03 16:12         ` Daniel Cashman
2015-12-03 16:12           ` Daniel Cashman
2015-12-03 16:12           ` Daniel Cashman
2015-12-07 10:26       ` Jon Hunter [this message]
2015-12-07 10:26         ` Jon Hunter
2015-12-07 10:26         ` Jon Hunter
2015-12-07 11:13         ` Arnd Bergmann
2015-12-07 11:13           ` Arnd Bergmann
2015-12-07 11:13           ` Arnd Bergmann
2015-12-07 18:26           ` Daniel Cashman
2015-12-07 18:26             ` Daniel Cashman
2015-12-07 18:26             ` Daniel Cashman
2015-12-08 10:03             ` Arnd Bergmann
2015-12-08 10:03               ` Arnd Bergmann
2015-12-08 10:03               ` Arnd Bergmann
2015-12-01 22:39 ` [PATCH v5 0/4] Allow customizable random offset to mmap_base address Kees Cook
2015-12-01 22:39   ` Kees Cook
2015-12-01 22:39   ` Kees Cook

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=56655EC8.6030905@nvidia.com \
    --to=jonathanh@nvidia.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.