[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <56DE9279.6040805@de.ibm.com>
Date: Tue, 8 Mar 2016 09:51:05 +0100
From: Christian Borntraeger <borntraeger@...ibm.com>
To: Kees Cook <keescook@...omium.org>
Cc: Heiko Carstens <heiko.carstens@...ibm.com>,
Martin Schwidefsky <schwidefsky@...ibm.com>,
Ingo Molnar <mingo@...nel.org>,
David Brown <david.brown@...aro.org>,
Andy Lutomirski <luto@...capital.net>,
"H. Peter Anvin" <hpa@...or.com>,
Michael Ellerman <mpe@...erman.id.au>,
Mathias Krause <minipli@...glemail.com>,
Thomas Gleixner <tglx@...utronix.de>,
"x86@...nel.org" <x86@...nel.org>, Arnd Bergmann <arnd@...db.de>,
PaX Team <pageexec@...email.hu>,
Emese Revfy <re.emese@...il.com>,
"kernel-hardening@...ts.openwall.com"
<kernel-hardening@...ts.openwall.com>,
LKML <linux-kernel@...r.kernel.org>,
linux-arch <linux-arch@...r.kernel.org>,
linux-s390 <linux-s390@...r.kernel.org>
Subject: Re: [RFC][PATCH] s390, postinit-readonly: implement post-init RO
On 03/08/2016 01:41 AM, Kees Cook wrote:
>> --- a/arch/s390/kernel/vmlinux.lds.S
>> +++ b/arch/s390/kernel/vmlinux.lds.S
>> @@ -52,6 +52,12 @@ SECTIONS
>>
>> RW_DATA_SECTION(0x100, PAGE_SIZE, THREAD_SIZE)
>>
>> + . = ALIGN(PAGE_SIZE)
missing ";" ?
With that and your fixes, this function claims to mark 0kB and
lkdtm can still write. Reason is that _edata is 0xc11008 and start is
0x0c11000.
making _edata page aligned as well, does now try to mark one page, but then
we run into the next issue, that
static void change_page_attr(unsigned long addr, int numpages,
pte_t (*set) (pte_t))
{
pte_t *ptep;
int i;
for (i = 0; i < numpages; i++) {
ptep = walk_page_table(addr);
triggers this
if (WARN_ON_ONCE(!ptep))
break;
because the kernel decided to map this with a large page. So we need
to fix this function to then break the large page into a smaller chunk....
Christian
Powered by blists - more mailing lists