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 are unnecessary.

So in this patch a judgment added to check if modules range is equal
to vmalloc range completely. If yes, just skip adding the modules
range.

Signed-off-by: Baoquan He <[email protected]>
---
 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..69cb67b 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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to