* [to-be-updated] add-a-kernel_address-that-works-for-data-too.patch removed from -mm tree
@ 2010-03-10 20:29 akpm
2010-03-10 20:29 ` akpm
2010-03-10 20:43 ` Russell King
0 siblings, 2 replies; 3+ messages in thread
From: akpm @ 2010-03-10 20:29 UTC (permalink / raw)
To: andi, ak, ebiederm, linux-arch, rmk+lkml, rusty, sam, mm-commits
The patch titled
add a kernel_address() that works for data too
has been removed from the -mm tree. Its filename was
add-a-kernel_address-that-works-for-data-too.patch
This patch was dropped because an updated version will be merged
The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/
------------------------------------------------------
Subject: add a kernel_address() that works for data too
From: Andi Kleen <andi@firstfloor.org>
Add a variant of kernel_text_address() that includes kernel data.
Assumes kernel is _text ... _end - init section. True everywhere?
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Cc: <linux-arch@vger.kernel.org>
Cc: Russell King <rmk+lkml@arm.linux.org.uk>
Cc: Sam Ravnborg <sam@ravnborg.org>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
include/linux/kernel.h | 1 +
kernel/extable.c | 18 ++++++++++++++++++
2 files changed, 19 insertions(+)
diff -puN include/linux/kernel.h~add-a-kernel_address-that-works-for-data-too include/linux/kernel.h
--- a/include/linux/kernel.h~add-a-kernel_address-that-works-for-data-too
+++ a/include/linux/kernel.h
@@ -216,6 +216,7 @@ extern unsigned long long memparse(const
extern int core_kernel_text(unsigned long addr);
extern int __kernel_text_address(unsigned long addr);
extern int kernel_text_address(unsigned long addr);
+extern int kernel_address(unsigned long addr);
extern int func_ptr_is_kernel_text(void *ptr);
struct pid;
diff -puN kernel/extable.c~add-a-kernel_address-that-works-for-data-too kernel/extable.c
--- a/kernel/extable.c~add-a-kernel_address-that-works-for-data-too
+++ a/kernel/extable.c
@@ -72,6 +72,18 @@ int core_kernel_text(unsigned long addr)
return 0;
}
+static int core_kernel_address(unsigned long addr)
+{
+ if ((addr >= (unsigned long)_text &&
+ addr <= (unsigned long)_end)) {
+ if (addr >= (unsigned long)__init_begin &&
+ addr < (unsigned long)__init_end)
+ return system_state == SYSTEM_BOOTING;
+ return 1;
+ }
+ return 0;
+}
+
int __kernel_text_address(unsigned long addr)
{
if (core_kernel_text(addr))
@@ -98,6 +110,12 @@ int kernel_text_address(unsigned long ad
return is_module_text_address(addr);
}
+/* text or data in core kernel or module */
+int kernel_address(unsigned long addr)
+{
+ return core_kernel_address(addr) || is_module_address(addr);
+}
+
/*
* On some architectures (PPC64, IA64) function pointers
* are actually only tokens to some data that then holds the
_
Patches currently in -mm which might be from andi@firstfloor.org are
mm-introduce-dump_page-and-print-symbolic-flag-names.patch
linux-next.patch
hardware-latency-detector-remove-default-m.patch
modpost-support-objects-with-more-than-64k-sections.patch
tracehooks-kill-some-pt_ptraced-checks.patch
tracehooks-check-pt_ptraced-before-reporting-the-single-step.patch
ptrace_signal-check-pt_ptraced-before-reporting-a-signal.patch
export-__ptrace_detach-and-do_notify_parent_cldstop.patch
reorder-the-code-in-kernel-ptracec.patch
implement-utrace-ptrace.patch
utrace-core.patch
add-a-kernel_address-that-works-for-data-too.patch
sysctl-add-proc_rcu_string-to-manage-sysctls-using-rcu-strings.patch
sysctl-use-rcu-strings-for-core_pattern-sysctl.patch
sysctl-add-call_usermodehelper_cleanup.patch
sysctl-convert-modprobe_path-to-proc_rcu_string.patch
sysctl-convert-poweroff_command-to-proc_rcu_string.patch
sysctl-convert-hotplug-helper-string-to-proc_rcu_string.patch
sysctl-use-rcu-protected-sysctl-for-ocfs-group-add-helper.patch
sysctl-fix-up-remaining-references-to-uevent_helper.patch
sysctl-fix-up-remaining-references-to-uevent_helper-fix.patch
^ permalink raw reply [flat|nested] 3+ messages in thread
* [to-be-updated] add-a-kernel_address-that-works-for-data-too.patch removed from -mm tree
2010-03-10 20:29 [to-be-updated] add-a-kernel_address-that-works-for-data-too.patch removed from -mm tree akpm
@ 2010-03-10 20:29 ` akpm
2010-03-10 20:43 ` Russell King
1 sibling, 0 replies; 3+ messages in thread
From: akpm @ 2010-03-10 20:29 UTC (permalink / raw)
To: andi, ak, ebiederm, linux-arch, rmk+lkml, rusty, sam, mm-commits
The patch titled
add a kernel_address() that works for data too
has been removed from the -mm tree. Its filename was
add-a-kernel_address-that-works-for-data-too.patch
This patch was dropped because an updated version will be merged
The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/
------------------------------------------------------
Subject: add a kernel_address() that works for data too
From: Andi Kleen <andi@firstfloor.org>
Add a variant of kernel_text_address() that includes kernel data.
Assumes kernel is _text ... _end - init section. True everywhere?
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Cc: <linux-arch@vger.kernel.org>
Cc: Russell King <rmk+lkml@arm.linux.org.uk>
Cc: Sam Ravnborg <sam@ravnborg.org>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
include/linux/kernel.h | 1 +
kernel/extable.c | 18 ++++++++++++++++++
2 files changed, 19 insertions(+)
diff -puN include/linux/kernel.h~add-a-kernel_address-that-works-for-data-too include/linux/kernel.h
--- a/include/linux/kernel.h~add-a-kernel_address-that-works-for-data-too
+++ a/include/linux/kernel.h
@@ -216,6 +216,7 @@ extern unsigned long long memparse(const
extern int core_kernel_text(unsigned long addr);
extern int __kernel_text_address(unsigned long addr);
extern int kernel_text_address(unsigned long addr);
+extern int kernel_address(unsigned long addr);
extern int func_ptr_is_kernel_text(void *ptr);
struct pid;
diff -puN kernel/extable.c~add-a-kernel_address-that-works-for-data-too kernel/extable.c
--- a/kernel/extable.c~add-a-kernel_address-that-works-for-data-too
+++ a/kernel/extable.c
@@ -72,6 +72,18 @@ int core_kernel_text(unsigned long addr)
return 0;
}
+static int core_kernel_address(unsigned long addr)
+{
+ if ((addr >= (unsigned long)_text &&
+ addr <= (unsigned long)_end)) {
+ if (addr >= (unsigned long)__init_begin &&
+ addr < (unsigned long)__init_end)
+ return system_state == SYSTEM_BOOTING;
+ return 1;
+ }
+ return 0;
+}
+
int __kernel_text_address(unsigned long addr)
{
if (core_kernel_text(addr))
@@ -98,6 +110,12 @@ int kernel_text_address(unsigned long ad
return is_module_text_address(addr);
}
+/* text or data in core kernel or module */
+int kernel_address(unsigned long addr)
+{
+ return core_kernel_address(addr) || is_module_address(addr);
+}
+
/*
* On some architectures (PPC64, IA64) function pointers
* are actually only tokens to some data that then holds the
_
Patches currently in -mm which might be from andi@firstfloor.org are
mm-introduce-dump_page-and-print-symbolic-flag-names.patch
linux-next.patch
hardware-latency-detector-remove-default-m.patch
modpost-support-objects-with-more-than-64k-sections.patch
tracehooks-kill-some-pt_ptraced-checks.patch
tracehooks-check-pt_ptraced-before-reporting-the-single-step.patch
ptrace_signal-check-pt_ptraced-before-reporting-a-signal.patch
export-__ptrace_detach-and-do_notify_parent_cldstop.patch
reorder-the-code-in-kernel-ptracec.patch
implement-utrace-ptrace.patch
utrace-core.patch
add-a-kernel_address-that-works-for-data-too.patch
sysctl-add-proc_rcu_string-to-manage-sysctls-using-rcu-strings.patch
sysctl-use-rcu-strings-for-core_pattern-sysctl.patch
sysctl-add-call_usermodehelper_cleanup.patch
sysctl-convert-modprobe_path-to-proc_rcu_string.patch
sysctl-convert-poweroff_command-to-proc_rcu_string.patch
sysctl-convert-hotplug-helper-string-to-proc_rcu_string.patch
sysctl-use-rcu-protected-sysctl-for-ocfs-group-add-helper.patch
sysctl-fix-up-remaining-references-to-uevent_helper.patch
sysctl-fix-up-remaining-references-to-uevent_helper-fix.patch
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [to-be-updated] add-a-kernel_address-that-works-for-data-too.patch removed from -mm tree
2010-03-10 20:29 [to-be-updated] add-a-kernel_address-that-works-for-data-too.patch removed from -mm tree akpm
2010-03-10 20:29 ` akpm
@ 2010-03-10 20:43 ` Russell King
1 sibling, 0 replies; 3+ messages in thread
From: Russell King @ 2010-03-10 20:43 UTC (permalink / raw)
To: akpm; +Cc: andi, ak, ebiederm, linux-arch, rusty, sam, mm-commits
On Wed, Mar 10, 2010 at 12:29:42PM -0800, akpm@linux-foundation.org wrote:
>
> The patch titled
> add a kernel_address() that works for data too
> has been removed from the -mm tree. Its filename was
> add-a-kernel_address-that-works-for-data-too.patch
>
> This patch was dropped because an updated version will be merged
>
> The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/
>
> ------------------------------------------------------
> Subject: add a kernel_address() that works for data too
> From: Andi Kleen <andi@firstfloor.org>
>
> Add a variant of kernel_text_address() that includes kernel data.
>
> Assumes kernel is _text ... _end - init section. True everywhere?
No, it is not. ARM XIP has text in one area, and the data in RAM.
There are two distinct sections:
_text .. _etext
_data .. _end
They both exclude the init sections on ARM, except when XIP is enabled
where the init data appears inside _data .. _end, and is demarked by
__init_begin .. __init_end.
Final point is that we end up with the Dwarf2 unwind tables after the
_etext, but not included in _data - I don't think that matters though.
--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of:
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2010-03-10 20:44 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-03-10 20:29 [to-be-updated] add-a-kernel_address-that-works-for-data-too.patch removed from -mm tree akpm
2010-03-10 20:29 ` akpm
2010-03-10 20:43 ` Russell King
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).