From: James Hogan <james.hogan@imgtec.com>
To: <linux-kernel@vger.kernel.org>
Cc: Arnd Bergmann <arnd@arndb.de>,
James Hogan <james.hogan@imgtec.com>,
Michel Lespinasse <walken@google.com>
Subject: [PATCH 3/5] metag: hugetlb: convert to vm_unmapped_area()
Date: Wed, 13 Feb 2013 12:03:47 +0000 [thread overview]
Message-ID: <1360757029-28868-4-git-send-email-james.hogan@imgtec.com> (raw)
In-Reply-To: <1360757029-28868-1-git-send-email-james.hogan@imgtec.com>
Convert hugetlb_get_unmapped_area_new_pmd() to use vm_unmapped_area()
rather than searching the virtual address space itself. This fixes the
following errors in linux-next due to the specified members being
removed after other architectures have already been converted:
arch/metag/mm/hugetlbpage.c: In function 'hugetlb_get_unmapped_area_new_pmd':
arch/metag/mm/hugetlbpage.c:199: error: 'struct mm_struct' has no member named 'cached_hole_size'
arch/metag/mm/hugetlbpage.c:200: error: 'struct mm_struct' has no member named 'free_area_cache'
arch/metag/mm/hugetlbpage.c:215: error: 'struct mm_struct' has no member named 'cached_hole_size'
Signed-off-by: James Hogan <james.hogan@imgtec.com>
Cc: Michel Lespinasse <walken@google.com>
---
arch/metag/mm/hugetlbpage.c | 52 ++++++++----------------------------------
1 files changed, 10 insertions(+), 42 deletions(-)
diff --git a/arch/metag/mm/hugetlbpage.c b/arch/metag/mm/hugetlbpage.c
index 24ceed4..3c52fa6 100644
--- a/arch/metag/mm/hugetlbpage.c
+++ b/arch/metag/mm/hugetlbpage.c
@@ -192,43 +192,15 @@ new_search:
static unsigned long
hugetlb_get_unmapped_area_new_pmd(unsigned long len)
{
- struct mm_struct *mm = current->mm;
- struct vm_area_struct *vma;
- unsigned long start_addr, addr;
-
- if (ALIGN_HUGEPT(len) > mm->cached_hole_size)
- start_addr = mm->free_area_cache;
- else
- start_addr = TASK_UNMAPPED_BASE;
-
-new_search:
- addr = ALIGN_HUGEPT(start_addr);
-
- for (vma = find_vma(mm, addr); ; vma = vma->vm_next) {
- if (TASK_SIZE - len < addr) {
- /*
- * Start a new search - just in case we missed
- * some holes.
- */
- if (start_addr != TASK_UNMAPPED_BASE) {
- start_addr = TASK_UNMAPPED_BASE;
- mm->cached_hole_size = 0;
- goto new_search;
- }
- return 0;
- }
- /* skip ahead if we've aligned right over some vmas */
- if (vma && vma->vm_end <= addr)
- continue;
- if (!vma || ALIGN_HUGEPT(addr + len) <= vma->vm_start) {
-#if HPAGE_SHIFT < HUGEPT_SHIFT
- if (len & HUGEPT_MASK)
- mm->context.part_huge = addr + len;
-#endif
- return addr;
- }
- addr = ALIGN_HUGEPT(vma->vm_end);
- }
+ struct vm_unmapped_area_info info;
+
+ info.flags = 0;
+ info.length = len;
+ info.low_limit = TASK_UNMAPPED_BASE;
+ info.high_limit = TASK_SIZE;
+ info.align_mask = PAGE_MASK & HUGEPT_MASK;
+ info.align_offset = 0;
+ return vm_unmapped_area(&info);
}
unsigned long
@@ -266,11 +238,7 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
* Find an unmapped naturally aligned set of 4MB blocks that we can use
* for huge pages.
*/
- addr = hugetlb_get_unmapped_area_new_pmd(len);
- if (likely(addr))
- return addr;
-
- return -EINVAL;
+ return hugetlb_get_unmapped_area_new_pmd(len);
}
#endif /*HAVE_ARCH_HUGETLB_UNMAPPED_AREA*/
--
1.7.7.6
next prev parent reply other threads:[~2013-02-13 12:04 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-13 12:03 [PATCH 0/5] metag: second set of misc patches for v3.9 James Hogan
2013-02-13 12:03 ` [PATCH 1/5] metag: export metag_code_cache_flush_all James Hogan
2013-02-13 12:03 ` [PATCH 2/5] metag: export clear_page and copy_page James Hogan
2013-02-13 12:03 ` James Hogan [this message]
2013-02-15 8:04 ` [PATCH 3/5] metag: hugetlb: convert to vm_unmapped_area() Michel Lespinasse
2013-02-15 9:26 ` James Hogan
2013-02-13 12:03 ` [PATCH 4/5] genksyms: fix metag symbol prefix on crc symbols James Hogan
2013-02-13 12:03 ` [PATCH 5/5] metag: move irq enable out of irqflags.h on SMP James Hogan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1360757029-28868-4-git-send-email-james.hogan@imgtec.com \
--to=james.hogan@imgtec.com \
--cc=arnd@arndb.de \
--cc=linux-kernel@vger.kernel.org \
--cc=walken@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).