From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752721AbdAZG4r (ORCPT ); Thu, 26 Jan 2017 01:56:47 -0500 Received: from out0-139.mail.aliyun.com ([140.205.0.139]:58445 "EHLO out0-139.mail.aliyun.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752106AbdAZG4q (ORCPT ); Thu, 26 Jan 2017 01:56:46 -0500 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R361e4;FP=0|-1|-1|-1|0|-1|-1|-1;HT=e02c03273;MF=hillf.zj@alibaba-inc.com;NM=1;PH=DS;RN=7;SR=0;TI=SMTPD_---.7WPeAky_1485413780; Reply-To: "Hillf Danton" From: "Hillf Danton" To: "'Kirill A. Shutemov'" , "'Andrea Arcangeli'" , "'Hugh Dickins'" , "'Rik van Riel'" , "'Andrew Morton'" Cc: , References: <20170125182538.86249-1-kirill.shutemov@linux.intel.com> <20170125182538.86249-6-kirill.shutemov@linux.intel.com> In-Reply-To: <20170125182538.86249-6-kirill.shutemov@linux.intel.com> Subject: Re: [PATCHv2 05/12] mm, rmap: check all VMAs that PTE-mapped THP can be part of Date: Thu, 26 Jan 2017 14:56:20 +0800 Message-ID: <008a01d277a1$4d7021c0$e8506540$@alibaba-inc.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Outlook 14.0 Thread-Index: AQFWmgVcYe+EQEEgyoCxHJsQSyOPGQGH63JnojXK+oA= Content-Language: zh-cn Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On January 26, 2017 2:26 AM Kirill A. Shutemov wrote: > @@ -333,12 +333,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); > } Nit: currently it's buggy if page is not within the mapping range. In this work fix is added for start if unlikely it goes outside range, and its currently relevant debugging is cut off. Other than that, Acked-by: Hillf Danton