From: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
To: akpm@linux-foundation.org, linux-kernel@vger.kernel.org
Cc: Andi Kleen <andi@firstfloor.org>, Christoph Hellwig <hch@infradead.org>
Subject: [PATCH] Text Edit Lock - x86_64 Use kernel_tex_is_ro
Date: Sat, 14 Jul 2007 16:16:54 -0400 [thread overview]
Message-ID: <20070714201654.GQ6975@Krystal> (raw)
In-Reply-To: <20070714012412.960272115@polymtl.ca>
Text Edit Lock - x86_64 Use kernel_tex_is_ro
It makes more sense to use the kernel_text_is_ro variable instead of
duplicating it.
And since we do not plan to call kernel_text_mark_rw()/kernel_text_unmark()
in the middle of mark_rodata_ro (we are still at boot time), there is no
need to wait until after global_flush_tlb() mark the rodata.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
CC: Andi Kleen <andi@firstfloor.org>
CC: Christoph Hellwig <hch@infradead.org>
---
arch/x86_64/mm/init.c | 12 +++---------
1 file changed, 3 insertions(+), 9 deletions(-)
Index: linux-2.6-lttng/arch/x86_64/mm/init.c
===================================================================
--- linux-2.6-lttng.orig/arch/x86_64/mm/init.c 2007-07-14 16:10:21.000000000 -0400
+++ linux-2.6-lttng/arch/x86_64/mm/init.c 2007-07-14 16:11:47.000000000 -0400
@@ -56,10 +56,6 @@ static unsigned long dma_reserve __initd
DEFINE_PER_CPU(struct mmu_gather, mmu_gathers);
-#ifdef CONFIG_DEBUG_RODATA
-static int rodata_marked;
-#endif
-
/*
* NOTE: pagetable_init alloc all the fixmap pagetables contiguous on the
* physical space so we can cache the place of the first one and move
@@ -605,13 +601,12 @@ void mark_rodata_ro(void)
unsigned long start = PFN_ALIGN(_stext);
unsigned long end = PFN_ALIGN(__end_rodata);
- kernel_text_is_ro = 1;
-
change_page_attr_addr(start, (end - start) >> PAGE_SHIFT,
PAGE_KERNEL_RO);
printk(KERN_INFO "Write protecting the kernel read-only data: %luk\n",
(end - start) >> 10);
+ kernel_text_is_ro = 1;
/*
* change_page_attr_addr() requires a global_flush_tlb() call after it.
@@ -620,7 +615,6 @@ void mark_rodata_ro(void)
* of who is the culprit.
*/
global_flush_tlb();
- rodata_marked = 1;
}
/*
@@ -628,7 +622,7 @@ void mark_rodata_ro(void)
*/
void kernel_text_mark_rw(unsigned long address, size_t len)
{
- if (rodata_marked && address >= PFN_ALIGN(_text)
+ if (kernel_text_is_ro && address >= PFN_ALIGN(_text)
&& (address + len) <= PFN_ALIGN(_etext)) {
unsigned long nr_pages;
nr_pages = ((address + len) >> PAGE_SHIFT)
@@ -644,7 +638,7 @@ EXPORT_SYMBOL_GPL(kernel_text_mark_rw);
void kernel_text_unmark(unsigned long address, size_t len)
{
- if (rodata_marked && address >= PFN_ALIGN(_text)
+ if (kernel_text_is_ro && address >= PFN_ALIGN(_text)
&& (address + len) <= PFN_ALIGN(_etext)) {
unsigned long nr_pages;
nr_pages = ((address + len) >> PAGE_SHIFT)
--
Mathieu Desnoyers
Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
next prev parent reply other threads:[~2007-07-14 20:22 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-07-14 1:21 [patch 0/8] Text Edit Lock Mathieu Desnoyers
2007-07-14 1:21 ` [patch 1/8] Kprobes - do not use kprobes mutex in arch code Mathieu Desnoyers
2007-07-14 10:49 ` Christoph Hellwig
2007-07-14 19:20 ` Mathieu Desnoyers
2007-07-16 10:27 ` Ananth N Mavinakayanahalli
2007-07-16 15:12 ` Mathieu Desnoyers
2007-07-14 19:30 ` Mathieu Desnoyers
2007-07-14 19:51 ` [PATCH] Kprobes - use a mutex to protect the instruction pages list Mathieu Desnoyers
2007-07-17 5:38 ` Ananth N Mavinakayanahalli
2007-07-14 19:52 ` [PATCH] Kprobes - Declare kprobe_mutex static Mathieu Desnoyers
2007-07-17 5:39 ` Ananth N Mavinakayanahalli
2007-07-17 5:38 ` [patch 1/8] Kprobes - do not use kprobes mutex in arch code Ananth N Mavinakayanahalli
2007-07-14 1:21 ` [patch 2/8] Text Edit Lock - Architecture Independent Code Mathieu Desnoyers
2007-07-14 22:55 ` [PATCH] Immediate Values - Architecture Independent Code - Fixes following HCH comments Mathieu Desnoyers
2007-07-14 22:57 ` (drop : wrong email thread) " Mathieu Desnoyers
2007-07-15 1:28 ` [PATCH] Text Edit Lock - Architecture Independent Code - kerneldoc Mathieu Desnoyers
2007-07-15 9:04 ` Christoph Hellwig
2007-07-15 23:30 ` Mathieu Desnoyers
2007-07-15 23:35 ` [PATCH] Text Edit Lock - Architecture Independent Code for Implementation Mathieu Desnoyers
2007-07-14 1:21 ` [patch 3/8] Text Edit Lock - i386 Mathieu Desnoyers
2007-07-14 16:18 ` Christoph Hellwig
2007-07-14 20:08 ` [PATCH] Text Edit Lock - i386 Use kernel_text_is_ro Mathieu Desnoyers
2007-07-14 23:31 ` [PATCH] Text Edit Lock - i386 Fix endif CONFIG_DEBUG_RODATA Mathieu Desnoyers
2007-07-15 1:29 ` [PATCH] Text Edit Lock - i386 kerneldoc Mathieu Desnoyers
2007-07-15 23:30 ` Mathieu Desnoyers
2007-07-15 23:36 ` [PATCH] Text Edit Lock - i386 kerneldoc implementation Mathieu Desnoyers
2007-07-14 1:21 ` [patch 4/8] Text Edit Lock - x86_64 Mathieu Desnoyers
2007-07-14 20:16 ` Mathieu Desnoyers [this message]
2007-07-14 23:32 ` [PATCH] Text Edit Lock - x86_64 Fix !CONFIG_DEBUG_RODATA Mathieu Desnoyers
2007-07-15 1:30 ` [PATCH] Text Edit Lock - x86_64 kerneldoc Mathieu Desnoyers
2007-07-15 23:30 ` Mathieu Desnoyers
2007-07-15 23:38 ` [PATCH] Text Edit Lock - x86_64 kerneldoc implementation Mathieu Desnoyers
2007-07-14 1:21 ` [patch 5/8] Text Edit Lock - Alternative code for i386 and x86_64 Mathieu Desnoyers
2007-07-14 1:21 ` [patch 6/8] Text Edit Lock - Kprobes architecture independent support Mathieu Desnoyers
2007-07-14 19:56 ` [PATCH] Kprobes - no kprobes_mutex needed around arch_remove_kprobe calls Mathieu Desnoyers
2007-07-14 1:21 ` [patch 7/8] Text Edit Lock - kprobes i386 Mathieu Desnoyers
2007-07-14 1:21 ` [patch 8/8] Text Edit Lock - kprobes x86_64 Mathieu Desnoyers
2007-07-14 10:50 ` [patch 0/8] Text Edit Lock Christoph Hellwig
2007-07-14 15:21 ` Mathieu Desnoyers
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=20070714201654.GQ6975@Krystal \
--to=mathieu.desnoyers@polymtl.ca \
--cc=akpm@linux-foundation.org \
--cc=andi@firstfloor.org \
--cc=hch@infradead.org \
--cc=linux-kernel@vger.kernel.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.