01 May, 2013

1 commit

  • The help text for this config is duplicated across the x86, parisc, and
    s390 Kconfig.debug files. Arnd Bergman noted that the help text was
    slightly misleading and should be fixed to state that enabling this
    option isn't a problem when using pre 4.4 gcc.

    To simplify the rewording, consolidate the text into lib/Kconfig.debug
    and modify it there to be more explicit about when you should say N to
    this config.

    Also, make the text a bit more generic by stating that this option
    enables compile time checks so we can cover architectures which emit
    warnings vs. ones which emit errors. The details of how an
    architecture decided to implement the checks isn't as important as the
    concept of compile time checking of copy_from_user() calls.

    While we're doing this, remove all the copy_from_user_overflow() code
    that's duplicated many times and place it into lib/ so that any
    architecture supporting this option can get the function for free.

    Signed-off-by: Stephen Boyd
    Acked-by: Arnd Bergmann
    Acked-by: Ingo Molnar
    Acked-by: H. Peter Anvin
    Cc: Arjan van de Ven
    Acked-by: Helge Deller
    Cc: Heiko Carstens
    Cc: Stephen Rothwell
    Cc: Chris Metcalf
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Stephen Boyd
     

09 Oct, 2012

1 commit

  • This is more or less the same as the x86 page table dumper which was
    merged four years ago: 926e5392 "x86: add code to dump the (kernel)
    page tables for visual inspection by kernel developers".

    We add a file at /sys/kernel/debug/kernel_page_tables for debugging
    purposes so it's quite easy to see the kernel page table layout and
    possible odd mappings:

    ---[ Identity Mapping ]---
    0x0000000000000000-0x0000000000100000 1M PTE RW
    ---[ Kernel Image Start ]---
    0x0000000000100000-0x0000000000800000 7M PMD RO
    0x0000000000800000-0x00000000008a9000 676K PTE RO
    0x00000000008a9000-0x0000000000900000 348K PTE RW
    0x0000000000900000-0x0000000001500000 12M PMD RW
    ---[ Kernel Image End ]---
    0x0000000001500000-0x0000000280000000 10219M PMD RW
    0x0000000280000000-0x000003d280000000 3904G PUD I
    ---[ vmemmap Area ]---
    0x000003d280000000-0x000003d288c00000 140M PTE RW
    0x000003d288c00000-0x000003d300000000 1908M PMD I
    0x000003d300000000-0x000003e000000000 52G PUD I
    ---[ vmalloc Area ]---
    0x000003e000000000-0x000003e000009000 36K PTE RW
    0x000003e000009000-0x000003e0000ee000 916K PTE I
    0x000003e0000ee000-0x000003e000146000 352K PTE RW
    0x000003e000146000-0x000003e000200000 744K PTE I
    0x000003e000200000-0x000003e080000000 2046M PMD I
    0x000003e080000000-0x0000040000000000 126G PUD I

    This usually makes only sense for kernel developers. The output
    with CONFIG_DEBUG_PAGEALLOC is not very helpful, because of the
    huge number of mapped out pages, however I decided for the time
    being to not add a !DEBUG_PAGEALLOC dependency.
    Maybe it's helpful for somebody even with that option.

    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky

    Heiko Carstens
     

16 Mar, 2011

1 commit

  • Implement write protection for kernel modules text and read-only
    data sections by implementing set_memory_[ro|rw] on s390.
    Since s390 has no execute bit in the pte's NX is not supported.

    set_memory_[ro|rw] will only work on normal pages and not on
    large pages, so in case a large page should be modified bail
    out with a warning.

    Signed-off-by: Jan Glauber
    Signed-off-by: Martin Schwidefsky

    Jan Glauber
     

05 Jan, 2011

1 commit


10 Nov, 2010

1 commit


27 Feb, 2010

1 commit


03 Apr, 2009

1 commit

  • This fixes a build failure with generic debug pagealloc:

    mm/debug-pagealloc.c: In function 'set_page_poison':
    mm/debug-pagealloc.c:8: error: 'struct page' has no member named 'debug_flags'
    mm/debug-pagealloc.c: In function 'clear_page_poison':
    mm/debug-pagealloc.c:13: error: 'struct page' has no member named 'debug_flags'
    mm/debug-pagealloc.c: In function 'page_poison':
    mm/debug-pagealloc.c:18: error: 'struct page' has no member named 'debug_flags'
    mm/debug-pagealloc.c: At top level:
    mm/debug-pagealloc.c:120: error: redefinition of 'kernel_map_pages'
    include/linux/mm.h:1278: error: previous definition of 'kernel_map_pages' was here
    mm/debug-pagealloc.c: In function 'kernel_map_pages':
    mm/debug-pagealloc.c:122: error: 'debug_pagealloc_enabled' undeclared (first use in this function)

    by fixing

    - debug_flags should be in struct page
    - define DEBUG_PAGEALLOC config option for all architectures

    Signed-off-by: Akinobu Mita
    Reported-by: Alexander Beregalov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     

01 Apr, 2009

1 commit

  • CONFIG_DEBUG_PAGEALLOC is now supported by x86, powerpc, sparc64, and
    s390. This patch implements it for the rest of the architectures by
    filling the pages with poison byte patterns after free_pages() and
    verifying the poison patterns before alloc_pages().

    This generic one cannot detect invalid page accesses immediately but
    invalid read access may cause invalid dereference by poisoned memory and
    invalid write access can be detected after a long delay.

    Signed-off-by: Akinobu Mita
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Akinobu Mita
     

05 Feb, 2008

1 commit


04 Jul, 2006

1 commit


17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds