lkml.org 
[lkml]   [2007]   [Apr]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH 1/14] get_unmapped_area handles MAP_FIXED on powerpc
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    ---
    arch/powerpc/mm/hugetlbpage.c | 21 +++++++++++++++++++++
    1 file changed, 21 insertions(+)
    Index: linux-cell/arch/powerpc/mm/hugetlbpage.c
    ===================================================================
    --- linux-cell.orig/arch/powerpc/mm/hugetlbpage.c 2007-03-22 14:52:07.000000000 +1100
    +++ linux-cell/arch/powerpc/mm/hugetlbpage.c 2007-03-22 14:57:40.000000000 +1100
    @@ -572,6 +572,13 @@ unsigned long arch_get_unmapped_area(str
    if (len > TASK_SIZE)
    return -ENOMEM;

    + /* handle fixed mapping: prevent overlap with huge pages */
    + if (flags & MAP_FIXED) {
    + if (is_hugepage_only_range(mm, addr, len))
    + return -EINVAL;
    + return addr;
    + }
    +
    if (addr) {
    addr = PAGE_ALIGN(addr);
    vma = find_vma(mm, addr);
    @@ -647,6 +654,13 @@ arch_get_unmapped_area_topdown(struct fi
    if (len > TASK_SIZE)
    return -ENOMEM;

    + /* handle fixed mapping: prevent overlap with huge pages */
    + if (flags & MAP_FIXED) {
    + if (is_hugepage_only_range(mm, addr, len))
    + return -EINVAL;
    + return addr;
    + }
    +
    /* dont allow allocations above current base */
    if (mm->free_area_cache > base)
    mm->free_area_cache = base;
    @@ -829,6 +843,13 @@ unsigned long hugetlb_get_unmapped_area(
    /* Paranoia, caller should have dealt with this */
    BUG_ON((addr + len) < addr);

    + /* Handle MAP_FIXED */
    + if (flags & MAP_FIXED) {
    + if (prepare_hugepage_range(addr, len, pgoff))
    + return -EINVAL;
    + return addr;
    + }
    +
    if (test_thread_flag(TIF_32BIT)) {
    curareas = current->mm->context.low_htlb_areas;

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/
    \
     
     \ /
      Last update: 2007-04-04 06:11    [from the cache]
    ©2003-2011 Jasper Spaans