* [PATCH v3] not adding modules range to kcore if it's equal to vmcore range
@ 2014-08-26 11:38 Baoquan He
2014-08-26 11:53 ` Baoquan He
0 siblings, 1 reply; 2+ messages in thread
From: Baoquan He @ 2014-08-26 11:38 UTC (permalink / raw)
To: linux-kernel, akpm; +Cc: Baoquan He
On some ARCHs modules range is eauql to vmalloc range. E.g on i686
"#define MODULES_VADDR VMALLOC_START"
"#define MODULES_END VMALLOC_END"
This will cause 2 duplicate program segments in /proc/kcore, and no
any flag to indicate both of them are different. This is confusing.
And usually people who need check the elf header or read the content
of kcore will check memory ranges. Two program segments which are the
same completely can't give any help on this.
So in this patch a judgment added to check if modules range is equal
to or included in vmalloc range completely. If yes, just skip adding
the modules range. If and only if modules range is not completely
included in vmalloc range just add it since the part out of vmalloc
range need be accessible.
Signed-off-by: Baoquan He <bhe@redhat.com>
---
fs/proc/kcore.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/fs/proc/kcore.c b/fs/proc/kcore.c
index 6df8d07..a4b7ff1 100644
--- a/fs/proc/kcore.c
+++ b/fs/proc/kcore.c
@@ -610,8 +610,11 @@ static void __init proc_kcore_text_init(void)
struct kcore_list kcore_modules;
static void __init add_modules_range(void)
{
- kclist_add(&kcore_modules, (void *)MODULES_VADDR,
+ if ( (MODULES_VADDR != VMALLOC_START) &&
+ (MODULES_END <= VMALLOC_END) ) {
+ kclist_add(&kcore_modules, (void *)MODULES_VADDR,
MODULES_END - MODULES_VADDR, KCORE_VMALLOC);
+ }
}
#else
static void __init add_modules_range(void)
--
1.9.0
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH v3] not adding modules range to kcore if it's equal to vmcore range
2014-08-26 11:38 [PATCH v3] not adding modules range to kcore if it's equal to vmcore range Baoquan He
@ 2014-08-26 11:53 ` Baoquan He
0 siblings, 0 replies; 2+ messages in thread
From: Baoquan He @ 2014-08-26 11:53 UTC (permalink / raw)
To: linux-kernel, akpm
On 08/26/14 at 07:38pm, Baoquan He wrote:
> On some ARCHs modules range is eauql to vmalloc range. E.g on i686
> "#define MODULES_VADDR VMALLOC_START"
> "#define MODULES_END VMALLOC_END"
> This will cause 2 duplicate program segments in /proc/kcore, and no
> any flag to indicate both of them are different. This is confusing.
>
> And usually people who need check the elf header or read the content
> of kcore will check memory ranges. Two program segments which are the
> same completely can't give any help on this.
>
> So in this patch a judgment added to check if modules range is equal
> to or included in vmalloc range completely. If yes, just skip adding
> the modules range. If and only if modules range is not completely
> included in vmalloc range just add it since the part out of vmalloc
> range need be accessible.
>
> Signed-off-by: Baoquan He <bhe@redhat.com>
> ---
> fs/proc/kcore.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/fs/proc/kcore.c b/fs/proc/kcore.c
> index 6df8d07..a4b7ff1 100644
> --- a/fs/proc/kcore.c
> +++ b/fs/proc/kcore.c
> @@ -610,8 +610,11 @@ static void __init proc_kcore_text_init(void)
> struct kcore_list kcore_modules;
> static void __init add_modules_range(void)
> {
> - kclist_add(&kcore_modules, (void *)MODULES_VADDR,
> + if ( (MODULES_VADDR != VMALLOC_START) &&
> + (MODULES_END <= VMALLOC_END) ) {
Oh, the check should be like below expression which can denote that
modules range is equal to or included in vmalloc range.
if ((MODULES_VADDR >= VMALLOC_START) && (MODULES_END <= VMALLOC_END) ) {
Nack this patch, will post a new one.
> + kclist_add(&kcore_modules, (void *)MODULES_VADDR,
> MODULES_END - MODULES_VADDR, KCORE_VMALLOC);
> + }
> }
> #else
> static void __init add_modules_range(void)
> --
> 1.9.0
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2014-08-26 11:53 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-08-26 11:38 [PATCH v3] not adding modules range to kcore if it's equal to vmcore range Baoquan He
2014-08-26 11:53 ` Baoquan He
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®