]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - mm/internal.h
dm rq: check blk_mq_register_dev() return value in dm_mq_init_request_queue()
[karo-tx-linux.git] / mm / internal.h
index 8ab72f4374e046e604cc7c5f15049f960f1b864e..ccfc2a2969f4402bdbfb27e0b48df151f4da68b7 100644 (file)
@@ -335,12 +335,15 @@ __vma_address(struct page *page, struct vm_area_struct *vma)
 static inline unsigned long
 vma_address(struct page *page, struct vm_area_struct *vma)
 {
-       unsigned long address = __vma_address(page, vma);
+       unsigned long start, end;
+
+       start = __vma_address(page, vma);
+       end = start + PAGE_SIZE * (hpage_nr_pages(page) - 1);
 
        /* page should be within @vma mapping range */
-       VM_BUG_ON_VMA(address < vma->vm_start || address >= vma->vm_end, vma);
+       VM_BUG_ON_VMA(end < vma->vm_start || start >= vma->vm_end, vma);
 
-       return address;
+       return max(start, vma->vm_start);
 }
 
 #else /* !CONFIG_MMU */