From: dcashman@android.com (Daniel Cashman)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 2/2] arm: mm: support ARCH_MMAP_RND_BITS.
Date: Thu, 5 Nov 2015 10:44:35 -0800 [thread overview]
Message-ID: <563BA393.9020504@android.com> (raw)
In-Reply-To: <563A4EDC.6090403@android.com>
On 11/04/2015 10:30 AM, Daniel Cashman wrote:
> On 11/3/15 3:21 PM, Kees Cook wrote:
>> On Tue, Nov 3, 2015 at 3:14 PM, Daniel Cashman <dcashman@android.com> wrote:
>>> On 11/03/2015 11:19 AM, Kees Cook wrote:
>>>> Do you have patches for x86 and arm64?
>>>
>>> I was holding off on those until I could gauge upstream reception. If
>>> desired, I could put those together and add them as [PATCH 3/4] and
>>> [PATCH 4/4].
>>
>> If they're as trivial as I'm hoping, yeah, let's toss them in now. If
>> not, skip 'em. PowerPC, MIPS, and s390 should be relatively simple
>> too, but one or two of those have somewhat stranger calculations when
>> I looked, so their Kconfigs may not be as clean.
>
> Creating the patches should be simple, it's the choice of minimum and
> maximum values for each architecture that I'd be most concerned about.
> I'll put them together, though, and the ranges can be changed following
> discussion with those more knowledgeable, if needed. I also don't have
> devices on which to test the PowerPC, MIPS and s390 changes, so I'll
> need someone's help for that.
Actually, in preparing the x86 and arm64 patches, it became apparent
that the current patch-set does not address 32-bit executables running
on 64-bit systems (compatibility mode), since only one procfs
mmap_rnd_bits variable is created and exported. Some possible solutions:
1) Create a second set for compatibility, e.g. mmap_rnd_compat_bits,
mmap_rnd_compat_bits_min, mmap_rnd_compat_bits_max and export it as with
mmap_rnd_bits. This provides the most control and is truest to the
spirit of this patch, but pollutes the Kconfigs and procfs a bit more,
especially if we ever need a mmap_rnd_64compat_bits...
2) Get rid of the arch-independent nature of this patch and instead let
each arch define its own Kconfig values and procfs entries. Essentially
the same outcome as the above, but with less disruption in the common
kernel code, although also with a potentially variable ABI.
3) Default to the lowest-supported, e.g. arm64 running with
CONFIG_COMPAT would be limited to the same range as arm. This solution
I think is highly undesirable, as it actually makes things worse for
existing 64-bit platforms.
4) Support setting the COMPAT values by Kconfig, but don't expose them
via procfs. This keeps the procfs change simple and gets most of its
benefits.
5) Leave the COMPAT values specified in code, and only adjust introduce
config and tunable options for the 64-bit processes. Basically keep
this patch-set as-is and not give any benefit to compatible applications.
My preference would be for either solutions 1 or 4, but would love
feedback and/or other solutions. Thoughts?
Thank You,
Dan
next prev parent reply other threads:[~2015-11-05 18:44 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-03 18:10 [PATCH v2 1/2] mm: mmap: Add new /proc tunable for mmap_base ASLR Daniel Cashman
2015-11-03 18:10 ` [PATCH v2 2/2] arm: mm: support ARCH_MMAP_RND_BITS Daniel Cashman
2015-11-03 19:19 ` Kees Cook
2015-11-03 22:39 ` Russell King - ARM Linux
2015-11-03 23:18 ` Kees Cook
2015-11-04 18:22 ` Daniel Cashman
2015-11-03 23:14 ` Daniel Cashman
2015-11-03 23:21 ` Kees Cook
2015-11-04 18:30 ` Daniel Cashman
2015-11-05 18:44 ` Daniel Cashman [this message]
2015-11-06 20:52 ` Kees Cook
2015-11-09 3:47 ` Michael Ellerman
2015-11-09 18:56 ` Daniel Cashman
2015-11-09 21:27 ` Kees Cook
2015-11-03 19:16 ` [PATCH v2 1/2] mm: mmap: Add new /proc tunable for mmap_base ASLR Kees Cook
2015-11-04 0:04 ` Andrew Morton
2015-11-04 0:40 ` Eric W. Biederman
2015-11-04 1:31 ` Andrew Morton
2015-11-04 19:31 ` Daniel Cashman
2015-11-04 22:00 ` Andrew Morton
2015-11-04 22:10 ` Eric W. Biederman
2015-11-04 22:37 ` Kees Cook
2015-11-04 9:39 ` Michal Hocko
2015-11-04 19:21 ` Eric W. Biederman
2015-11-04 19:36 ` Daniel Cashman
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=563BA393.9020504@android.com \
--to=dcashman@android.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).