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=-12.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=unavailable 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 68980C4743C for ; Sat, 5 Jun 2021 03:04:14 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id E38BD61415 for ; Sat, 5 Jun 2021 03:04:13 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E38BD61415 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 7B9046B0036; Fri, 4 Jun 2021 23:04:13 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 769A76B006C; Fri, 4 Jun 2021 23:04:13 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 56D556B006E; Fri, 4 Jun 2021 23:04:13 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0200.hostedemail.com [216.40.44.200]) by kanga.kvack.org (Postfix) with ESMTP id 211EA6B0036 for ; Fri, 4 Jun 2021 23:04:13 -0400 (EDT) Received: from smtpin07.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with ESMTP id A3EAF181522A7 for ; Sat, 5 Jun 2021 03:04:12 +0000 (UTC) X-FDA: 78218176344.07.47722C7 Received: from aserp2120.oracle.com (aserp2120.oracle.com [141.146.126.78]) by imf27.hostedemail.com (Postfix) with ESMTP id 7B1318019357 for ; Sat, 5 Jun 2021 03:03:56 +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 154Ldq90066350; Fri, 4 Jun 2021 21:41:32 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=subject : to : cc : references : from : message-id : date : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2020-01-29; bh=8qK+eQvSTQdlrf58eYGev4aDXhJyK/k4izdPnR/iJcY=; b=dN/vus0zHyV7scSHl3Iq1UFfdTWZWslO+xHxBN6jFGvi72VgTSUMu62TXFKooh9UkumK +Uat8wch11k5AUiM3nUBpERKYTCjrXQbsIv7pUeaJH/JFsIxFVx1PzK75l/JNJ+pEULY 7CuCtm1J2fAMmEzvWJf2YIlmVqy72ePF+0cwqxO/jQ5mOBiiZbp+XVOv3uIO7TbI1G/W TYprWrIVl73QkHx4nXJYAkrho3rdwIDPtxttg98q7umDDApimaiLmEkaicDEIgpny3GX BNKzjRzz/im1Swu6aQaLDTc2T+30mxVc8QHMD3IwikbAoFnkgAflC/S45rKcW1r5ynnu Fg== Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by aserp2120.oracle.com with ESMTP id 38udjmxwnd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 04 Jun 2021 21:41:32 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 154Le9rV079790; Fri, 4 Jun 2021 21:41:31 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2168.outbound.protection.outlook.com [104.47.55.168]) by userp3030.oracle.com with ESMTP id 38uar0mfrc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 04 Jun 2021 21:41:31 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=d58yLKXFMDW/z5rLu5WuY0kMli/AVhI96HoCp1m5/3592/9w1xe9P9/YYHKOXMYMf7imkPVVScZVJnCNkwGTzxOdWqUX/KKgV/XrOZ3NlZ+oy5nN98P0AMudlAnalvXtpFlGLiuJugNGagpmcxbVe9TYEFabbNJHogwAv0sqIYh7WG+HtxttePHvjUQyeeejqhEiyK492iytVxnsjuemhsQFWxS/DmlJ77Q2XRulj4lUFucDWLVIeHrZcoNnA/S6dRzFt4nL5gslpBBvZw8G3EkTsGDscy6vgkRHkwPRKidUBFdUsuUQttvAk0BueW606bYja6KmeQTpZ8WSRhNDXw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8qK+eQvSTQdlrf58eYGev4aDXhJyK/k4izdPnR/iJcY=; b=S8FTFtT4For+1QjxYe6uiAytKAnVO+WeK1UfoePkW505FTohJDHnJqgZq3T1OhBsVjqktoTWDkcrFi2Tfs9FR7buJKS4I82ruAF0XE/dJ5rEJai/VQNYJ550pMZFSLYX21EoFznNMJjETCPQlEXkbODiwGCje5Dz/GTyUD6iGaL7Xf8mJ2d4/EWlQBEZXgjDcTLYw7SeDrtP2asOikYR7CxGI6mOYeqjlHgcZnBNGoNoyYRWs3WnF2LnKf4fhyhhYraGjDJi/x5Z1CaD9005fA4JCHzcq0loCewQ2RYXFKScHkPGe8FseVt0tfZhwmPM60Oe2gk2NjcQfWpsmNCsug== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8qK+eQvSTQdlrf58eYGev4aDXhJyK/k4izdPnR/iJcY=; b=cgXx9M061I7EYS9m/MBQJeUIGxCBMjtV02pQjL5LC500DM1xKaWbjY4ZSWxxnycMej71LMF3TR19NNmbsAoABQGbTU0KBt/DtCtVZOIXwK37oesCDIiHeSLlH9bLLYppPOKg0Q2WzmTLfJ8NPN87lqMKx7EwIHkeEL9JW2cOgb4= Received: from BY5PR10MB4196.namprd10.prod.outlook.com (2603:10b6:a03:20d::23) by BY5PR10MB4114.namprd10.prod.outlook.com (2603:10b6:a03:211::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4195.23; Fri, 4 Jun 2021 21:41:28 +0000 Received: from BY5PR10MB4196.namprd10.prod.outlook.com ([fe80::4407:2ff6:c0a:5d90]) by BY5PR10MB4196.namprd10.prod.outlook.com ([fe80::4407:2ff6:c0a:5d90%9]) with mapi id 15.20.4195.025; Fri, 4 Jun 2021 21:41:28 +0000 Subject: Re: [PATCH v4] mm, hugetlb: fix racy resv_huge_pages underflow on UFFDIO_COPY To: Mina Almasry Cc: Axel Rasmussen , Peter Xu , linux-mm@kvack.org, Andrew Morton , linux-kernel@vger.kernel.org References: <20210528005029.88088-1-almasrymina@google.com> From: Mike Kravetz Message-ID: <1fd32aad-c99d-e89a-cdb1-05843f568f0c@oracle.com> Date: Fri, 4 Jun 2021 14:41:26 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.1.1 In-Reply-To: <20210528005029.88088-1-almasrymina@google.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [50.38.35.18] X-ClientProxiedBy: MWHPR1401CA0024.namprd14.prod.outlook.com (2603:10b6:301:4b::34) To BY5PR10MB4196.namprd10.prod.outlook.com (2603:10b6:a03:20d::23) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [192.168.2.112] (50.38.35.18) by MWHPR1401CA0024.namprd14.prod.outlook.com (2603:10b6:301:4b::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4195.22 via Frontend Transport; Fri, 4 Jun 2021 21:41:28 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 20850985-d821-470f-4c33-08d927a1829d X-MS-TrafficTypeDiagnostic: BY5PR10MB4114: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7691; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: tnGhe4onO7quhql757YYQ03pSAeoFnuQDMfyxaoLyViCalchwUG0LD19xZiaKPrvGc3cdQSAGWe4wKm6LeIf3R6ZBFypOzAptxYfh337VjOwwFt6mlqnBhseJCbLeITVXsr+znOI8iTYr9UvIsh8ML90m9VV/l86RYg/Koxr7CM52xzxNK/l1cnl/JTGTLv8OBy2PN/iHu+3CxEi8wuHEzV/EU1NVcdeI44wXzu+kUx6hM9LZ6iMM5rEPqnbPypfc1IrVdqJvoJjn2xHNtp72kUEuczDTtov1xdyapShfkAbpJLWskYrkBDVBgsRoGtU3NOZLniabJblEw2a4eXnUnBXcH7DUkslPhdpTrlLUKrGtqJVws1Eewlr1CIeDSvFY7jgXTCG0nwtV6XZWLXbfGqtKScWLerOsRVx+hKdsjKX2elF0upN+x3J12Hw50ez94tzDj8hnf01PkjHmBl212am/rY3tW962j/dfbloEfKDhjP930upCCNNBqwXlSzwiqyeksDfaFYYqFKhi6GtPU8A3bblZUhmktVsKzdI/coyrspUGKSce7jXp4QT4mLR4e6LoYmqFq1RoDXVh2DJD1lWPlC73hIxCmjW8/y+qttRTqaI4LYvM7YLuKmJEGiLRp9vjRcldADcloECpxwvI5HZxC/Lmw8R2tedNNyy/ZwGauffAo2hyu+OKWTxdvhi+c+RgVpipz0djxYries7eS+QR/75TiwRXMwsIs7pqY9hfbinz9qfgaQ54c1gwHCA X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY5PR10MB4196.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(346002)(39830400003)(366004)(376002)(136003)(396003)(86362001)(38350700002)(4326008)(38100700002)(8676002)(31686004)(2906002)(8936002)(2616005)(6486002)(31696002)(956004)(54906003)(66476007)(44832011)(186003)(16526019)(16576012)(66946007)(66556008)(53546011)(83380400001)(316002)(5660300002)(26005)(6916009)(52116002)(36756003)(478600001)(14583001)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?TW1RQlZ5dk5XYjZnRTdLMFZ0ejBhSmhUNWhCaWl2VllzN3lwUDZUc0tNTTBj?= =?utf-8?B?MEhIRG9OYkt5dmtPSG1Xb3VGdDBpbFh6K2xzR1ZaT2g3WlE5U0RKRVYvWkNv?= =?utf-8?B?d3gvMlVPVkgvQmtrbHNkbnZ4RTRpTDdBaVNmSWhjMERGNTc2VEVLZ2dpZjUw?= =?utf-8?B?Q2U0bzJuVnY3N2dRay81dzdrNW11QmwrbGpTRE9vS1BHNXlBenJ5RGszVUFK?= =?utf-8?B?cWJPZmozelhQMzhLM0VTZDcrdlJnYVRIVUNoRCtsRHNHUjNETE1GL0l3TU5G?= =?utf-8?B?KzBOTXhLSllyRzR4WW54bDVqM3Jic0daOTJjZUFNSEs2YTg1ZkZiL2FQZkY0?= =?utf-8?B?UzErbHpyRjZ2RkkzQ3cxbkU4Nk1TTkhwZjJWVy9sSGlEUXJIQjFGbk4xRkNk?= =?utf-8?B?YktmQm8wR25hVGlXdGM5MVpMN0M1cmNLcXZheG83V1J5cGFmN0toK0V2QzRS?= =?utf-8?B?WVVoSEFQU1o1TFdoT05nMzdDZ0JYRTF5Rm4xSVFNZVRlN251aldDNDZGbEFI?= =?utf-8?B?R2ZWZ3owM0M2RVc5aU9XaDBENlZJTk42VXdYVFpwdlNmTGlXUlY4ajEvaEVM?= =?utf-8?B?VG1GUG5DQnNIeW12ejlEWXI1WElvTjdhWi9iK2I3WFRWRFA0UjFIejdzMFFI?= =?utf-8?B?NWM1UWJzWUJ6cFJ3RjAyblhJVGRia3JzYkJUUTN1TFlEalJQTVcvaXZVdWlS?= =?utf-8?B?YUdPRDJOUTkwQzlvaGFERGhETHU3dXNNQ1NBQzJWb1NCSVVKbTRlMElnMCtX?= =?utf-8?B?TFBRZEUraU5XYmJFaWpsaGVFRkFJWUJvQlVpQWxOalkyVWxvNkFENDZ3NWlO?= =?utf-8?B?aGRvSUVzT1pVWGxHNnJNY1d0N29rSWJOTWNHMWhUWlgzTGJ2RnpXNWp6T2s0?= =?utf-8?B?WUhFRDRRWVVtcmdteVNSL0xkenJGUG5YTGRtODQzdVlNa054Zi9PdHJ6blBM?= =?utf-8?B?L2YxY1U5aGRoTWtJMG1vMUVPemtRVzlUajZPYXUwOGw2OHVQdVBWSW5yeUVv?= =?utf-8?B?L283TjJud3k5QzIwRlJoRWVWbkZkNE41WUpqQW9qVnlNVElCTjNYdjM2Y0pL?= =?utf-8?B?R0ZYM1pYWGJBNjNpQ3hGek54bk1DcmRIemMxenhxaVBrbjI5czFZWkc1ci82?= =?utf-8?B?QnZ3VVN3OFJsUnJoWmN1Rit4WUorRDNIRWR5eGs4bEM4NEJlS0libDlhY3dB?= =?utf-8?B?ZVhyWERkTStjQ1RONTZpNWxtMG9BTzNJdEpOVGNlbjB6Z2hRSGRGaUF1YnFO?= =?utf-8?B?WTNndUtzZ0J1ZjhXUFBKaHh3MU16VU0yeEpIZW9wT2ttU0VwWDF3SkJteFNC?= =?utf-8?B?aFg3U0Joc0hzRWhUcG9wZFNpdlB2VHc1ZUdDUkhZSGhzTk5STFFqRExIQjEr?= =?utf-8?B?eHJLRjdlTG5nOGg0aExkVGhnTDErU24rbzhKTUpLbkhwTUF3SllNdy8zYkt2?= =?utf-8?B?T2FWbkV5L1VNR1BsZEFmdnRmcGNXNmNCWEhScm5jeEcxOTFSVEROaGlvY1Zv?= =?utf-8?B?WFRpZzI5ZWs2M1NOKzVoWWV4U2N1cjRtMHhCeGdwZHdoaWZqZ0NCcmVWT1F3?= =?utf-8?B?VWIwZEE1enhaQkRtWWZ0enJIOGRidTNLL1d1QVpmRmxJdVhJZEIxV2gvNXFU?= =?utf-8?B?K1ptemtHMllTUnJDTXV0UCtYcHJ1bmFXRTY2YVZlaE5PekVVNU5ya0RGUnhy?= =?utf-8?B?NEdDQlJYaEExN05xazBOUDQzeE11MVVuVGRDdmxnaUQvTCsycnZQRkJ6ZGxB?= =?utf-8?Q?Ml0u62Qa8oPHx/1LPtsKWPp+vcLLoRaLZmjexPH?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 20850985-d821-470f-4c33-08d927a1829d X-MS-Exchange-CrossTenant-AuthSource: BY5PR10MB4196.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jun 2021 21:41:28.5932 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: +xQrLlMOh1xeLzx5LNSdnTXnqPWL67znSWo85IocNrwsKIR7odNfeTkN0YAD9DrXoBKkhxynDznj8n7nvHG7LA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR10MB4114 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=10005 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=706 bulkscore=0 suspectscore=0 spamscore=0 adultscore=0 mlxscore=0 phishscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104190000 definitions=main-2106040149 X-Proofpoint-GUID: 4PM36Pyqx8dEO7p95U_WUFimQbO2HMB4 X-Proofpoint-ORIG-GUID: 4PM36Pyqx8dEO7p95U_WUFimQbO2HMB4 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=10005 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 impostorscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 adultscore=0 spamscore=0 suspectscore=0 bulkscore=0 priorityscore=1501 mlxlogscore=959 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104190000 definitions=main-2106040149 X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 7B1318019357 Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2020-01-29 header.b="dN/vus0z"; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=cgXx9M06; spf=none (imf27.hostedemail.com: domain of mike.kravetz@oracle.com has no SPF policy when checking 141.146.126.78) smtp.mailfrom=mike.kravetz@oracle.com; dmarc=pass (policy=none) header.from=oracle.com X-Stat-Signature: aapwwgrrsuwhu3x84rxd34uhzwcb6wqi X-HE-Tag: 1622862236-919119 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: On 5/27/21 5:50 PM, Mina Almasry wrote: > diff --git a/include/linux/migrate.h b/include/linux/migrate.h > index 4bb4e519e3f5..4164c9ddd86e 100644 > --- a/include/linux/migrate.h > +++ b/include/linux/migrate.h > @@ -51,6 +51,7 @@ extern int migrate_huge_page_move_mapping(struct address_space *mapping, > struct page *newpage, struct page *page); > extern int migrate_page_move_mapping(struct address_space *mapping, > struct page *newpage, struct page *page, int extra_count); > +extern void migrate_copy_huge_page(struct page *dst, struct page *src); > #else > > static inline void putback_movable_pages(struct list_head *l) {} > @@ -77,6 +78,9 @@ static inline int migrate_huge_page_move_mapping(struct address_space *mapping, > return -ENOSYS; > } > > +static inline void migrate_copy_huge_page(struct page *dst, struct page *src) > +{ > +} > #endif /* CONFIG_MIGRATION */ > > #ifdef CONFIG_COMPACTION I am not insisting, but it might be better to make the copy routine available under the current name 'copy_huge_page'. Why? There is an existing migrate_page_copy() which not only copies the page contents, but also page state/metadata. People could get confused that 'migrate_page_copy' and 'migrate_copy_huge_page' do not have the same functionality. Of course, as soon as you look at the routines you can see the difference. Again, not necessary. Just something to consider. I suspect you changed the name to 'migrate_copy_huge_page' mostly because it resides in migrate.c? > diff --git a/mm/hugetlb.c b/mm/hugetlb.c > index 76e2a6efc165..6072c9f82794 100644 > --- a/mm/hugetlb.c > +++ b/mm/hugetlb.c > @@ -30,6 +30,7 @@ > #include > #include > #include > +#include > > #include > #include > @@ -4905,20 +4906,17 @@ int hugetlb_mcopy_atomic_pte(struct mm_struct *dst_mm, > struct page **pagep) > { > bool is_continue = (mode == MCOPY_ATOMIC_CONTINUE); > - struct address_space *mapping; > - pgoff_t idx; > + struct hstate *h = hstate_vma(dst_vma); > + struct address_space *mapping = dst_vma->vm_file->f_mapping; > + pgoff_t idx = vma_hugecache_offset(h, dst_vma, dst_addr); > unsigned long size; > int vm_shared = dst_vma->vm_flags & VM_SHARED; > - struct hstate *h = hstate_vma(dst_vma); > pte_t _dst_pte; > spinlock_t *ptl; > - int ret; > + int ret = -ENOMEM; > struct page *page; > int writable; > > - mapping = dst_vma->vm_file->f_mapping; > - idx = vma_hugecache_offset(h, dst_vma, dst_addr); > - > if (is_continue) { > ret = -EFAULT; > page = find_lock_page(mapping, idx); > @@ -4947,12 +4945,44 @@ int hugetlb_mcopy_atomic_pte(struct mm_struct *dst_mm, > /* fallback to copy_from_user outside mmap_lock */ > if (unlikely(ret)) { > ret = -ENOENT; > + /* Free the allocated page which may have > + * consumed a reservation. > + */ > + restore_reserve_on_error(h, dst_vma, dst_addr, page); > + put_page(page); > + > + /* Allocate a temporary page to hold the copied > + * contents. > + */ > + page = alloc_huge_page_vma(h, dst_vma, dst_addr); > + if (IS_ERR(page)) { In v3 of the patch, alloc_migrate_huge_page was used to allocate the temporary page and Dan Carpenter pointed out that the return value should just be checked for NULL. I believe the same still applies to alloc_huge_page_vma. -- Mike Kravetz