From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2C2F7C433E0 for ; Mon, 29 Jun 2020 18:52:27 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id E6BB1204EC for ; Mon, 29 Jun 2020 18:52:26 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="ZA/9y5fL" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E6BB1204EC Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=oracle.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 863C38D000A; Mon, 29 Jun 2020 14:52:26 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 813488D0005; Mon, 29 Jun 2020 14:52:26 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 702378D000A; Mon, 29 Jun 2020 14:52:26 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0252.hostedemail.com [216.40.44.252]) by kanga.kvack.org (Postfix) with ESMTP id 5AEDD8D0005 for ; Mon, 29 Jun 2020 14:52:26 -0400 (EDT) Received: from smtpin12.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id 1D832180AD806 for ; Mon, 29 Jun 2020 18:52:26 +0000 (UTC) X-FDA: 76983145092.12.knot63_0416ca926e71 Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin12.hostedemail.com (Postfix) with ESMTP id EC12F1800E618 for ; Mon, 29 Jun 2020 18:52:25 +0000 (UTC) X-HE-Tag: knot63_0416ca926e71 X-Filterd-Recvd-Size: 4808 Received: from aserp2120.oracle.com (aserp2120.oracle.com [141.146.126.78]) by imf44.hostedemail.com (Postfix) with ESMTP for ; Mon, 29 Jun 2020 18:52:25 +0000 (UTC) Received: from pps.filterd (aserp2120.oracle.com [127.0.0.1]) by aserp2120.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 05TIqIXN105777; Mon, 29 Jun 2020 18:52:18 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : mime-version : content-transfer-encoding; s=corp-2020-01-29; bh=PXr5z4xVxGeYYRpr4zEXjcUv9wnEGSb27BZRmqn2Gno=; b=ZA/9y5fLJQNGGFuk2+vWQiwRQMU05GMy94wbpN/cm17Xesb20tmlvtpvq7f5mPM+TQZD H1vpiyfwEfIZPjZ7QgcLhQZPkqSp/tXPT/iRo2UuEGaQ+IISCQkL0Hi8poEToACpwehC 9RwYqAIYrsfrSCFpmqPei9VyfsmG9vNspKjB11tJuUjeROGx/1716FA+cjzh4CeX+QqG fB4eybeQ5OTJQ0/B2GK859djpyl50LrVOoXJLL4yUKF9YHoCYQ8Hf/oI/8K3DMon4zqS iNmOmQnMOlCoobfz5xHQbJ3KKCP33x/j1/Pw2L6WQicBnA2zeqADPyaP0IY8HxONPAFE Eg== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by aserp2120.oracle.com with ESMTP id 31xx1dn18c-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 29 Jun 2020 18:52:18 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 05TIgd43023540; Mon, 29 Jun 2020 18:50:17 GMT Received: from userv0122.oracle.com (userv0122.oracle.com [156.151.31.75]) by aserp3020.oracle.com with ESMTP id 31xg113aey-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 29 Jun 2020 18:50:17 +0000 Received: from abhmp0009.oracle.com (abhmp0009.oracle.com [141.146.116.15]) by userv0122.oracle.com (8.14.4/8.14.4) with ESMTP id 05TIoFEf019806; Mon, 29 Jun 2020 18:50:15 GMT Received: from monkey.oracle.com (/50.38.35.18) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 29 Jun 2020 18:50:15 +0000 From: Mike Kravetz To: linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: Matthew Wilcox , Michal Hocko , "Kirill A . Shutemov" , Andrew Morton , Mike Kravetz , stable@kernel.org Subject: [PATCH] hugetlb: fix pages per hugetlb calculation Date: Mon, 29 Jun 2020 11:50:03 -0700 Message-Id: <20200629185003.97202-1-mike.kravetz@oracle.com> X-Mailer: git-send-email 2.25.4 MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9667 signatures=668680 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 malwarescore=0 mlxlogscore=999 suspectscore=0 bulkscore=0 mlxscore=0 adultscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2004280000 definitions=main-2006290117 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9667 signatures=668680 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 clxscore=1011 adultscore=0 suspectscore=0 mlxlogscore=999 cotscore=-2147483648 lowpriorityscore=0 malwarescore=0 phishscore=0 impostorscore=0 mlxscore=0 spamscore=0 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2004280000 definitions=main-2006290118 X-Rspamd-Queue-Id: EC12F1800E618 X-Spamd-Result: default: False [0.00 / 100.00] X-Rspamd-Server: rspam01 Content-Transfer-Encoding: quoted-printable X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: The routine hpage_nr_pages() was incorrectly used to calculate the number of base pages in a hugetlb page. hpage_nr_pages is designed to be called for THP pages and will return HPAGE_PMD_NR for hugetlb pages of any size. Due to the context in which hpage_nr_pages was called, it is unlikely to produce a user visible error. The routine with the incorrect call is only exercised in the case of hugetlb memory error or migration. In addition, this would need to be on an architecture which supports huge page sizes less than PMD_SIZE. And, the vma containing the huge page would also need to smaller than PMD_SIZE. Fixes: c0d0381ade79 ("hugetlbfs: use i_mmap_rwsem for more pmd sharing sy= nchronization") Cc: stable@kernel.org Signed-off-by: Mike Kravetz --- mm/hugetlb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 57ece74e3aae..fab4485b9e52 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -1593,7 +1593,7 @@ static struct address_space *_get_hugetlb_page_mapp= ing(struct page *hpage) =20 /* Use first found vma */ pgoff_start =3D page_to_pgoff(hpage); - pgoff_end =3D pgoff_start + hpage_nr_pages(hpage) - 1; + pgoff_end =3D pgoff_start + pages_per_huge_page(page_hstate(hpage)) - 1= ; anon_vma_interval_tree_foreach(avc, &anon_vma->rb_root, pgoff_start, pgoff_end) { struct vm_area_struct *vma =3D avc->vma; --=20 2.25.4