Commit e2f17d94 authored by Roel Kluin's avatar Roel Kluin Committed by Linus Torvalds

hugetlb: chg cannot become less than 0

chg is unsigned, so it cannot be less than 0.

Also, since region_chg returns long, let vma_needs_reservation() forward
this to alloc_huge_page().  Store it as long as well.  all callers cast it
to long anyway.
Signed-off-by: default avatarRoel Kluin <roel.kluin@gmail.com>
Cc: Andy Whitcroft <apw@shadowen.org>
Cc: Mel Gorman <mel@csn.ul.ie>
Cc: Adam Litke <agl@us.ibm.com>
Cc: Johannes Weiner <hannes@saeurebad.de>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent d1d74871
...@@ -918,7 +918,7 @@ static void return_unused_surplus_pages(struct hstate *h, ...@@ -918,7 +918,7 @@ static void return_unused_surplus_pages(struct hstate *h,
* an instantiated the change should be committed via vma_commit_reservation. * an instantiated the change should be committed via vma_commit_reservation.
* No action is required on failure. * No action is required on failure.
*/ */
static int vma_needs_reservation(struct hstate *h, static long vma_needs_reservation(struct hstate *h,
struct vm_area_struct *vma, unsigned long addr) struct vm_area_struct *vma, unsigned long addr)
{ {
struct address_space *mapping = vma->vm_file->f_mapping; struct address_space *mapping = vma->vm_file->f_mapping;
...@@ -933,7 +933,7 @@ static int vma_needs_reservation(struct hstate *h, ...@@ -933,7 +933,7 @@ static int vma_needs_reservation(struct hstate *h,
return 1; return 1;
} else { } else {
int err; long err;
pgoff_t idx = vma_hugecache_offset(h, vma, addr); pgoff_t idx = vma_hugecache_offset(h, vma, addr);
struct resv_map *reservations = vma_resv_map(vma); struct resv_map *reservations = vma_resv_map(vma);
...@@ -969,7 +969,7 @@ static struct page *alloc_huge_page(struct vm_area_struct *vma, ...@@ -969,7 +969,7 @@ static struct page *alloc_huge_page(struct vm_area_struct *vma,
struct page *page; struct page *page;
struct address_space *mapping = vma->vm_file->f_mapping; struct address_space *mapping = vma->vm_file->f_mapping;
struct inode *inode = mapping->host; struct inode *inode = mapping->host;
unsigned int chg; long chg;
/* /*
* Processes that did not create the mapping will have no reserves and * Processes that did not create the mapping will have no reserves and
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment