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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 04620C02193 for ; Fri, 31 Jan 2025 00:28:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 68BD22802A3; Thu, 30 Jan 2025 19:28:26 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 6394E2802A2; Thu, 30 Jan 2025 19:28:26 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4B28E2802A3; Thu, 30 Jan 2025 19:28:26 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 2EBE92802A2 for ; Thu, 30 Jan 2025 19:28:26 -0500 (EST) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id D36E6160510 for ; Fri, 31 Jan 2025 00:28:25 +0000 (UTC) X-FDA: 83065860570.24.88D7F0D Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2053.outbound.protection.outlook.com [40.107.244.53]) by imf07.hostedemail.com (Postfix) with ESMTP id 09D374000D for ; Fri, 31 Jan 2025 00:28:22 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=mpwK3+5R; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf07.hostedemail.com: domain of apopple@nvidia.com designates 40.107.244.53 as permitted sender) smtp.mailfrom=apopple@nvidia.com; dmarc=pass (policy=reject) header.from=nvidia.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1738283303; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=GaC/EXkkX/c64L9gZx1kvi/940w3ceiS3iyk6uoc2Qc=; b=ZTSFRVhYK47FmZESEYaEw8ZaAPKQOf698/2S2jAnEyeN6IpEBuBRBaA1anAAuVo53HaZ1K b2a1rEbJaPjBwzb5xAjgpO0ErAe9ejDhwQgmmXoxNR80bAITOZXKgA4RAz9im6z1ugg1TI 7AFzkd7QFL+WXfX4ASNurK5stBXtZ20= ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1738283303; a=rsa-sha256; cv=pass; b=Q0buTK6REQ2IPXSdMhfVSPH4AxYsLdpJkmCFnGysQDYL9Wia3NjydeXcosg/1sRVqYEOc3 r1SQwWoq4zCzyp2gDKUgVYoOXZYuuGsD5v/cblo1b7+3eKLBF2x8G/a0ge8SfPkz69w9sd vcBK8vWcX7bSpCXHj3xScwCBiDdttGk= ARC-Authentication-Results: i=2; imf07.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=mpwK3+5R; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf07.hostedemail.com: domain of apopple@nvidia.com designates 40.107.244.53 as permitted sender) smtp.mailfrom=apopple@nvidia.com; dmarc=pass (policy=reject) header.from=nvidia.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=EH76xnhp7OeEqOTYQWhVnw6sdsDgk6tMQWuhmYN5X0GKXrSdxYGhj3JUJydVy7lU2k/GozHD3lWU4Lztczj8J6CjExZe1u4sxWlOprXdIIb8AcExAws3CrKDhZPgDBftFapGhNHRdkeFMVXb51kdcuGhjHaPXs+MRlrlaH1sAEaMLyXSPAT6/qELStElOI3BSzn4iCRNTdHt3t89+yaw1yb+rUDb+w+IXjfAMUtJzyIf/NLO83vvkqsnkp2k5oIMy9Z28QJbncQSf5m7SiuUn+j6EFJiqXzPLAj4dZ0CptqRnEbxQro/ITK1B/388bynNjlVDvJdCVAXzv7SY6Udvw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=GaC/EXkkX/c64L9gZx1kvi/940w3ceiS3iyk6uoc2Qc=; b=xMYShVmFNDnqPQVqISKTQ+LBxvEOE5IUCaq0FGRalTR9tm58CCPqe3UKakDp2qzo7BdlDx3e96dM/4y4cdvet04wi8tL4/+dGTmSM4GJLj/h/4I6j7I2oJ7MOTO6oOTX9ESsS4hM37TdqV5T7z29vy3LW4pnUV1tr4InJ8koOpQNTg8IceSX8myGhEJrmRNYJdioQ75f/ocL8AhIpeEYiCUivUIB7I3e9wmMcAyySgO/5NCiAkCfVHXWf9GNWQFKGt7Vb8Gqzl92WVLhLPlLAanJLb563BjIq41lA0Gaco1amCkg+A/3CnlX5/ZoOo4ILMGBlp+hgt6YGq+TuXh1IA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GaC/EXkkX/c64L9gZx1kvi/940w3ceiS3iyk6uoc2Qc=; b=mpwK3+5RB4W+C22A/75vcZCMy9eSdeHpe73YawqAYN6+8gk6+0p2gz0Y/TITtwebOmKd/nukdapGOvUKZTqDUj0pQRfn3LeeAZm2Niy5Ht81UirQCL8CwtJTT1wjYoUpmp09UxP4KiP1Ms6o8blYEo+uSa709nNjZn+2MiH3qL/jyZkBGdV7zzPeKFiLltdCdDXd0IOAOjxQQCitQL095chp7eY6zHbpxD2xoVRHLJKA9tjEOZ7e4VSoY/f3ALOUi8S6Q4/ysqbSvuUtT8OCs+cqzJGJhhx0hUsmSC4W/FEt+LnVfoMeSuRVLeEWseZsHA8vvJJLn1jVrzMxWE76hA== Received: from DS0PR12MB7726.namprd12.prod.outlook.com (2603:10b6:8:130::6) by MW4PR12MB7437.namprd12.prod.outlook.com (2603:10b6:303:21a::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.18; Fri, 31 Jan 2025 00:28:19 +0000 Received: from DS0PR12MB7726.namprd12.prod.outlook.com ([fe80::953f:2f80:90c5:67fe]) by DS0PR12MB7726.namprd12.prod.outlook.com ([fe80::953f:2f80:90c5:67fe%7]) with mapi id 15.20.8398.017; Fri, 31 Jan 2025 00:28:19 +0000 Date: Fri, 31 Jan 2025 11:28:16 +1100 From: Alistair Popple To: David Hildenbrand Cc: linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-mm@kvack.org, nouveau@lists.freedesktop.org, Andrew Morton , =?utf-8?B?SsOpcsO0bWU=?= Glisse , Jonathan Corbet , Alex Shi , Yanteng Si , Karol Herbst , Lyude Paul , Danilo Krummrich , David Airlie , Simona Vetter , "Liam R. Howlett" , Lorenzo Stoakes , Vlastimil Babka , Jann Horn , Pasha Tatashin , Peter Xu , Jason Gunthorpe Subject: Re: [PATCH v1 03/12] mm/rmap: convert make_device_exclusive_range() to make_device_exclusive() Message-ID: References: <20250129115411.2077152-1-david@redhat.com> <20250129115411.2077152-4-david@redhat.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: SYBPR01CA0005.ausprd01.prod.outlook.com (2603:10c6:10::17) To DS0PR12MB7726.namprd12.prod.outlook.com (2603:10b6:8:130::6) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS0PR12MB7726:EE_|MW4PR12MB7437:EE_ X-MS-Office365-Filtering-Correlation-Id: 87225a1f-1442-45f6-a882-08dd418e298d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?6Zh2sWQ27/04JP/kqZvqHS8sudmTz6IFELnc7sO8VakKQjiX4l5hw/TJCIRl?= =?us-ascii?Q?HGWUvsP0oDFzSh35/6hFmJdtupzu4caB496SvTtXnyJZBFloe8eLZE0tD4pO?= =?us-ascii?Q?RZn3C0bCeYrABhDjk2eborSDI1f55GBel6hfIOBaJrs9BiWdhGIhI7cKIgph?= =?us-ascii?Q?fAhk7ymMtN6VnJtnwS0hQbNQH0U4A17BvdO5dgLzOgMyaRMrRuYvgbC62bgf?= =?us-ascii?Q?7bx4wOqxkENXnayIgGh4Kh3HgfD9At+w4cEGY/IaojvQKu7fDJunydxluX4Y?= =?us-ascii?Q?qk+1pFloHeRHMJu6SEneqdq7GZuvNkg/HLw5MrWWcElwoejT3C4kdLzn1Ih+?= =?us-ascii?Q?zbvmIGYFmZHjk0z2bRWRwbcmNcA+QjfwaraXU4ADusgvz77CAz4lp8JOXMVy?= =?us-ascii?Q?8chhp4SsWhlnFJuU5jp66sGBd+b7KIzT9qFkOvfcT/w2OlvUF8U7IEtgNzu6?= =?us-ascii?Q?045DnzosFMNLBjoXDtFw4owRS6mM9qbhU/75gq6XKIDtt+goZ68HNzuWpaus?= =?us-ascii?Q?mbV60lvTKV9QkgJ6PuKQArGJTjAqgGLzaK2b8K7mdd3bl8I4Dq4ZwFnf90/g?= =?us-ascii?Q?T7qVTYztOmYaeDfKuc6M7A7SBrRtBmhYMMr43YAplNMJVotcbjEEj4iZ6bmD?= =?us-ascii?Q?ZdmXpGLF+AKW7bp7G8eWVJTIgvUTEgK9BFxgt92L7kR6bK4luH+0G74yQ/6U?= =?us-ascii?Q?P8DOYe2zLAVZ4Ut5JqlqzKN/UbEogci8H+Cd3YvuiyH2HCDVfm1vuzG3I1KM?= =?us-ascii?Q?szI+RQjjpsKV1F/ta3sAbAPyp+mRsiTS+jdC+OHMUdw4lpZbszRY+lFQBvu2?= =?us-ascii?Q?3q/CwdaTym59japmudFowpE7PfJ8wmZn5sAJVtVhbQI3hyg5aok93kyFQqWa?= =?us-ascii?Q?q6uteefKT4qJ3c42iOLQojSaq9ljAbbclQHNkF8uGqT8q4MCKfPJonG36gqu?= =?us-ascii?Q?z6RhA93PU8Mg2H6XVxJ2BkBXJicKI4n/BcwL//wxaiRE3KIuQkRktOD/TVBn?= =?us-ascii?Q?CBCIf/WiXh9ouVQpb/zqNAaGnQQR0ebB+Qv8xMdeVCOdU5AZ5uM5tBgm9tRT?= =?us-ascii?Q?ouhziHZmHpK8RCYYplPgGCk499Eq84ChKNOOv4bbA5C5Lm91H9bwIGwPnI0B?= =?us-ascii?Q?iSKzC7y035H/Gz2YzyKAC3vytUZK2vdKY6LHo4yKTWFrniH3hbdzlAQWPbBO?= =?us-ascii?Q?1gnaNIFR8+OqfmEunZBGSUZXArRTCRV4C54J+DCK8nWXVTPVaeUpJmuICjiC?= =?us-ascii?Q?rqCcKKwG4zJn0nB8N5L0cU7XXBZp2CrVIs2GHsCNjSSBOa7APs4IzNAWMSvb?= =?us-ascii?Q?7bk3JimvUnqRE1zbZ1kafH1XkXtvPuYlWQxof5em/ZDyyTiMtTR+hJ6t5pFI?= =?us-ascii?Q?RLMTwIZUpO5QOmQE3tMZNEjyVE3q?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR12MB7726.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?EbSG89z41oM9jyYrkh84zDg9KmCcnFdREY/OyCt+VQ+tX09N4aC7K8c3FD8p?= =?us-ascii?Q?QXCoyVAMP3/ehQEJ5BKd1ibb7e2JmSRK0E7jS6m8iHXd/ZhpwqJjjiVhrlSC?= =?us-ascii?Q?0A5oULXXOkdB/HLQb4a28kLcsyfQQESd77NwFrZXbHITmRCVj/Lt54XMIsdk?= =?us-ascii?Q?utJkVOFf5BMLnxqS8IcHZoQcERI9ks/AUYYCPHMKWABfgn0yOYel+AqoW2LL?= =?us-ascii?Q?4D/IEopS0tHouJnRiwem7GwgOY1BoG/yyNibdxrzj8SKEyAtNGMR/3oYmgZI?= =?us-ascii?Q?isLCRivlJvrwVMdd6vf624SE8K4G+GFZlZJlG6qfP6FsoQyzEIr1KM8VJV2B?= =?us-ascii?Q?lv166CtJn5PdV/NVsqN78N/rIkMcRm1jOdmzH9YIxWgSD1rhnRbKk+ycPWaX?= =?us-ascii?Q?WNUcvGeJgXqnr+ZN6xidCfYa98pWD+z3zWFXM4mz9U5ocyI6BmYinXCZp7yw?= =?us-ascii?Q?lLIi4GFH79LasxK1Q0ILkp65VhrW4wTLhBlXIfZ1KghuehGE0ect8pxjRLiA?= =?us-ascii?Q?hIfPsH5netqsdi9dPKVkemvRs4c1OmMySre/ctArsrP0f30F96OLYgEqg8YA?= =?us-ascii?Q?Y9EfL64tPMLYD36vJVfrzKwVNPT4obAtW42BPMYdV0qnDlDTCRI38hSlK4TX?= =?us-ascii?Q?d3uYFu3BafFf85qX8xhc9BTgGoM5IDKpZ1BOLaBQzHqbAUbLka1J8bZAWZaB?= =?us-ascii?Q?eFoXPXtIyqejFPVgApS5Ip7QL8infclSouXZHsMd1ledkVd1s03Dj8QwocBW?= =?us-ascii?Q?b9i61O+KfrGBD/9tjqcmlnk741JRDixf5vYoIy0NN0BBvc/mlpGYHFY4YjCw?= =?us-ascii?Q?cG+54ASZ5weGeJO9nEmjvNv+rLUMt/WP8rvcmASeI7MKdFapkyDKzDuRBIFY?= =?us-ascii?Q?6sPcs/6jRc2od75eHDvadAKO6uNNMt08UdL6lcVuMWmiSwe2i7h+QZQivpW8?= =?us-ascii?Q?L2oATiPk5dTP1Y8VlfJDtQtdpYzN2RBibdHwxFbmy7QOyMWTcTHf/ru0BuMk?= =?us-ascii?Q?r1bQtRp75gbRKLTrOl2FD8x5YxDEm/2WhTbDRm3iCdv0NtQANW1KkYM0fqLv?= =?us-ascii?Q?fg0Of9xUNyjNAkKhdcp9ecr5BCJoQaj0ZWqr+3XkcYAtnYze1hcx+E2elqZ2?= =?us-ascii?Q?tLGd781kht84Ii2ZXibX+O5CMrJS0OIIcOr6axMP7ckDos/Mur7iPPgI+RkF?= =?us-ascii?Q?YKI8c0nwqZAPGnBQhxPAN07ZvbUTbOFtEMuHk9sM3CMYl1zUKyCPKudG9hXm?= =?us-ascii?Q?YMtC69GrK9AzWyjsRy0SCxoWXAMCOxJudXW37odzw4ffuNKvJ4G6w+X/c+P6?= =?us-ascii?Q?umWYNfhih5A4/1rQGj85Qy/kCJUPwR0KH7cKJZlDUogxfGqfCkgcD3lePAni?= =?us-ascii?Q?/1jMbmFy1upnZuBEewsb8TlBvKvp0XogG/pxIJyETqfH8Wg8Y3h+zGe3HYqI?= =?us-ascii?Q?Znl9l8guoCP3zxYQIkXn1yTb7Hlao9lONbuXnvyt3+lQwNwvI4ZEhh3JKmqV?= =?us-ascii?Q?2HhXDob215QyiuJjsyUhGFF5aHNR7g1BHFIgW448ZZ6xrQs2aY7lFjS42JMo?= =?us-ascii?Q?zi7DyIVbBWuwAqlxMa/iQFOhb/nsVtMfJAiOBau2?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 87225a1f-1442-45f6-a882-08dd418e298d X-MS-Exchange-CrossTenant-AuthSource: DS0PR12MB7726.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Jan 2025 00:28:19.7811 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 7OcFZ8edZwx/B8TrlrCZBoVdtI9atFDlugHgumdMepcsfoq9GCARGUXqnCJ/fcM9pligE1w8cxenhYi0rKC45g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7437 X-Stat-Signature: cykztn64sdgj9b96pihxd94n7qjhmsng X-Rspamd-Queue-Id: 09D374000D X-Rspam-User: X-Rspamd-Server: rspam06 X-HE-Tag: 1738283302-197976 X-HE-Meta: U2FsdGVkX19GF6Is1Blf2KltLitzdc8Dfg3KN8QAME5MdHY7Xo7QJRprMr84NzFWilYZ1DRRie0u/IVjBhl3lPLSStf0WEXOAOUPpsFPppHY107tzzhP3XWpB+/nQSaitEIiBY8JF0Uc77pAVMAFUGd4yol/yw80/YNdcnjaVq3lghf1aFWQpvVKr7LAEQ8JEZbBd+/C130CEfmr9kzS06OfDsScwCP0Z4flrClwu6OSBtMcjgoKALMedwQtUf9gtMDFE2MlHDz8OY7knAbA+RInPXFgHYbfAyAAsCCXfoSZXBPjBVBoyOL11r52lRi2GTlQMmVqoWCkPqSc2C0kjV2uvmcslS5SSQkBIuNPc9DNGc3732GmRyj/HO8UfXNjcHAJ7CwcVYXOquvaYISFh1j4GL81ATwTfk3fjZU5T4BYj7PwYFyL/mOaDVBJVNhtUXpyOJCViYQWdnOdwdeCCj1tng5M4g1g+PYoHLoqPHqLZM/3S2Tk3XjbEqo94NhW89ALLAe2GkH8tgdnzer44EQaw627hVHWLrXTpieEj6bc7Wfm/DrXxhVRr2rAO8ZbXw9YfhsAEZ0v/orfgzWL9sKv6I9Wtj1388ddeja+/Ssd9NSblkwHIu+cr46gJ59q0pHTUUSxoryLT6WpXyAl86MzyIfNfoLvaXPrCw0utq/iCwAHKzUltx5njUR8q0MyAqLk/iF27BQi1urz+5YlRX7jBnoBMo2WwwzWFlB09aKXFEpboawf+HDm1s8Ij5hjIDs/2zxZxL++CbDpPt0TKn6aE4k+Gfo6DKZu0M6JyWuo5ZZJF9pKHGee8HeI2FxjxsxvkTZgt9rDQ6c+JLS49DBSlKxu1a3tQ2hlKKCzi34me16R9jpDzmPMfzimlNsMVnbEEcSJ+nEJElwoOtU0BC+JR6dTxPd8YVJbEY/TnZOfm/BhIE5FIwJVwUf6TsSPUgrbdEjwcB60Ew56ZnR aTPAgudb pWi0phrx8CIuiW8V//hVa43sViyprnC7oun52F9KiBX+qOv51dEn+6XYjgXqCUN17yf8rwiyo3X7hwtVJ/A99gjIInU+EPNGgQ6hQZWaAbhm+ojO6VT3SXhgrchDU87bzFRTQQ6BRQGPs22tF5tvQztCrH1igPebcfJmf2x14xAr9nqrpzjgVmyUtC/lYmIfBdxbtbFV17SE/63ev6J46BW6L+L3imDjyW3lRW9qeCWdOAcO8ikIUQutLUITRx1nf3ZDgaQBpF8jTC7OEakA0AxFGqh9U559YyMJ2F7ndD9YiaRGlBhuq/o9KuuUtRkh7rcyvliqAlOEW9N6gp/bTh/K2lygTpnylbOTDPJiZhtOQIqHrk6oqBvWjEzxgjLzcEpSE+5bF0ke6Y0MSxPVSTCckpA== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000027, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Thu, Jan 30, 2025 at 04:57:39PM +1100, Alistair Popple wrote: > On Wed, Jan 29, 2025 at 12:54:01PM +0100, David Hildenbrand wrote: [...] > > -int make_device_exclusive_range(struct mm_struct *mm, unsigned long start, > > - unsigned long end, struct page **pages, > > - void *owner) > > +struct page *make_device_exclusive(struct mm_struct *mm, unsigned long addr, > > + void *owner, struct folio **foliop) > > { > > - long npages = (end - start) >> PAGE_SHIFT; > > - long i; > > + struct folio *folio; > > + struct page *page; > > + long npages; > > + > > + mmap_assert_locked(mm); > > > > - npages = get_user_pages_remote(mm, start, npages, > > + /* > > + * Fault in the page writable and try to lock it; note that if the > > + * address would already be marked for exclusive use by the device, > > + * the GUP call would undo that first by triggering a fault. > > + */ > > + npages = get_user_pages_remote(mm, addr, 1, > > FOLL_GET | FOLL_WRITE | FOLL_SPLIT_PMD, > > - pages, NULL); > > - if (npages < 0) > > - return npages; > > - > > - for (i = 0; i < npages; i++, start += PAGE_SIZE) { > > - struct folio *folio = page_folio(pages[i]); > > - if (PageTail(pages[i]) || !folio_trylock(folio)) { > > - folio_put(folio); > > - pages[i] = NULL; > > - continue; > > - } > > + &page, NULL); > > + if (npages != 1) > > + return ERR_PTR(npages); > > + folio = page_folio(page); > > > > - if (!folio_make_device_exclusive(folio, mm, start, owner)) { > > - folio_unlock(folio); > > - folio_put(folio); > > - pages[i] = NULL; > > - } > > + if (!folio_test_anon(folio) || folio_test_hugetlb(folio)) { > > + folio_put(folio); > > + return ERR_PTR(-EOPNOTSUPP); > > + } > > + > > + if (!folio_trylock(folio)) { Actually I think we can make this folio_lock(folio) now. The only reason for the trylock was to avoid deadlock between other threads looping over a range of folios while holding folio locks which is something the migration code also does. - Alistair > > + folio_put(folio); > > + return ERR_PTR(-EBUSY); > > } > > > > - return npages; > > + if (!folio_make_device_exclusive(folio, mm, addr, owner)) { > > + folio_unlock(folio); > > + folio_put(folio); > > + return ERR_PTR(-EBUSY); > > + } > > + *foliop = folio; > > + return page; > > } > > -EXPORT_SYMBOL_GPL(make_device_exclusive_range); > > +EXPORT_SYMBOL_GPL(make_device_exclusive); > > #endif > > > > void __put_anon_vma(struct anon_vma *anon_vma) > > -- > > 2.48.1 > > >