From patchwork Tue Jun 21 20:47:05 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12889840 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 D3ED2C43334 for ; Tue, 21 Jun 2022 21:41:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6E5858E0057; Tue, 21 Jun 2022 17:41:51 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 695248E004B; Tue, 21 Jun 2022 17:41:51 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 50F598E0057; Tue, 21 Jun 2022 17:41:51 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 3E10C8E004B for ; Tue, 21 Jun 2022 17:41:51 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 162CC205C7 for ; Tue, 21 Jun 2022 21:41:51 +0000 (UTC) X-FDA: 79603565622.01.41A713B Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf06.hostedemail.com (Postfix) with ESMTP id 7B476180010 for ; Tue, 21 Jun 2022 21:41:50 +0000 (UTC) Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 25LJ3wID009733; Tue, 21 Jun 2022 20:47:50 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2021-07-09; bh=u+k3TELJU6vrFGinHqw2bL/XhJtqmEuLXB68nnzReO4=; b=ImiYZamEqAlXO8MUlI7wALvmCLcIXMSK3fJCj1CIbKk4vG/5XK9LCdcVBVzfdNgVJHmJ +8MIxh+3hnmHrIUAZgTdhgtLsU+WeCh9zYOHkx50LZiQVp1gteROB6717TCHxr7ERrEI 22fH3p9l82aMzsIjM2Chib2PIm9dG1dhjHK0zu5vNhy7mqF+R9/iVPAehzjyctzQSoHG 5RjLT39s8Lg2Karaer6/ifAdvMQFNAvzviTTU4UqZk60QEcwSJ0/5SM1pZJcuuQlYroB EFvZMz1ArIb73rgFbv6VsmCGHkwbyk3pc7qyspJDXMJwRbTKH8gIrROWln/DdUrWhpPO nw== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3gs78txpdk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 21 Jun 2022 20:47:50 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 25LKeUhx027847; Tue, 21 Jun 2022 20:47:49 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2177.outbound.protection.outlook.com [104.47.55.177]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3gth8wspfd-9 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 21 Jun 2022 20:47:49 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Nc0irztj9UQFORQIeMusLCXP3LZGrJaNfqyIww6r897oLOce3gg6f4gp6XDWRSdXQ+QnyOCPxwweWJ/fDStY2v+3KteF2SSMdfrMwvPBTwo3S42efvtsL6VF2LgpHqcXgxR7PUXPMX5JvP1UJ34GGNqHRPOR/dmykRqFTKz2eVSG5hyOFrc6W2++595PVd3iXVBR16rqy+Y61xwem2X4NCpoCE0MQG6alwThtPlmd0z6fEl7+ARBx58sdZpdqee6emVodNykyRXOarTou/PHKdMH9ggwa7W1yObMS6RZoTcv/UxAhSWeA80WQlWClSnX5Ggf/s07UO/ISHgE/KxHDQ== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=u+k3TELJU6vrFGinHqw2bL/XhJtqmEuLXB68nnzReO4=; b=GeBgfAdPxAoX2JwoIEEfiVYkeQejPCmt3zXjntviWQdY1H9cs7PRrWeqDpHqmOrlTMAv44GHTyUu/kwGiRsnfXdmaAZOBFTaz+VCMB6iBG3Qivq9bydThDgh6UENsByZRZr/KIM9z+RjBCuRaO7cdztzrqKQdOLBakW4nR+vcp4a7TtF/wjSo4FPJUk0PETq5o/N3VM34wU/qy/P2p46im76lnke+DftwQtIbMW4wAZ/EQqIXqS3AiHqrfdbrjR70kG8B0uZfywOMkQWowyRla7pH5OZ0Gs9rY5FaVWSDbOdJiL/ptUKMN1cE/tQd23YS9BcbZZSiUw0YQF96C6R3A== 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=u+k3TELJU6vrFGinHqw2bL/XhJtqmEuLXB68nnzReO4=; b=sHwEFKFKECIyDnP0MUTapvEqPoFKwz9HK3u4brHTv1HyLKqOUkzjM6hqqfU0vBRfo57wFRffZ5Mxr0VTR9lEHVa24pXCws1SMsvTvAJVgU0KfQ0gJTcV4ntMOIOGwhg7opHkb/Ne+B0PmMdsYIfaN5DWbGD5ALrFmwdpm97t9Vw= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by DM6PR10MB4025.namprd10.prod.outlook.com (2603:10b6:5:1fe::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5353.15; Tue, 21 Jun 2022 20:47:47 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::f59a:175d:d24:949c]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::f59a:175d:d24:949c%7]) with mapi id 15.20.5353.022; Tue, 21 Jun 2022 20:47:47 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "damon @ lists . linux . dev" , SeongJae Park , David Hildenbrand Subject: [PATCH v10 38/69] optee: remove vma linked list walk Thread-Topic: [PATCH v10 38/69] optee: remove vma linked list walk Thread-Index: AQHYhbARjyqwn+AMdkGtxp79JkwcQw== Date: Tue, 21 Jun 2022 20:47:05 +0000 Message-ID: <20220621204632.3370049-39-Liam.Howlett@oracle.com> References: <20220621204632.3370049-1-Liam.Howlett@oracle.com> In-Reply-To: <20220621204632.3370049-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: bc4c96fe-1fae-4c96-0048-08da53c74c70 x-ms-traffictypediagnostic: DM6PR10MB4025:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: YRoz2vkWT0jGQBLZwQfQc6mbGd28qS+cfld34YjeWUYK3mb5xfLCUDckJUHgo7PyHb0tVJjiyGUn4y/UbvQ4EC/uxNRLJv4+zek4IaOvNZAQJaG7Mh1rvn1SYyyjruJN9Z3zcZBQGAONSHqYHm1JUk/gbHaT2LAqJ+XOLyQInQ60ArpKhdjccc0GDIlmjCQfawA6iF+684DsR6MJkw/K1OD7evSrKKXjn/gIk1y046lM54S35RXAVwDQavm4cl/zjSqTIYxLr2JPQkZb2+PKKChQToRvJ/Vc1g9f/o4gMro80KQtLO/AQXJfJBDeJv+Fo6K+2AGz3caRjz1mfq1iolvoMKmNaW/wXJClfDH5MgBzPRlOyhJ5HqZwP9MH1XiLLNt95mvNsLhLxbeApwNjD1/kNqirjGXOggp7R9XgA+nXyixwzJ0pFKTfc4siWfVjTSqBGGie6nlpsX9MICh9Azkab6dI/c7O9jcYkY+fXAVbuby81jNPlW2fmSweLa9o4kykGQp9zZED9xS19dzCCqYz5B4huiRpnmJr5LmMF0hnbnNho2glfUlnFyggKQ2gRRfSdFHIgS4QFq9VS6zx+Ez+Go5PxlS9EwGMf6IhyJ7nARGMdpFkA3B8k/d1GfvQ5LaMJDrZfC9lqcaTMgNuMDB+srUhQFmnC6S3A7Hmhg+tydE5mnfyXKJvhRKJuJ5NB3czcMac4ySOEOgidfG+WGx3roPI0d9doQ6hQQt8GMQXYWJez10gvIJxd3j3XNVT20YYCSouNHiGQSTAu6WdgV6LwV4XrhAIoDJmgeFj0uM= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(39860400002)(136003)(346002)(366004)(376002)(396003)(6512007)(41300700001)(478600001)(122000001)(6486002)(966005)(110136005)(36756003)(8936002)(71200400001)(8676002)(26005)(6666004)(6506007)(83380400001)(2906002)(66446008)(316002)(86362001)(2616005)(91956017)(1076003)(66476007)(66556008)(5660300002)(38070700005)(64756008)(66946007)(44832011)(76116006)(186003)(38100700002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?E9KZzLlN+eSyHGlfbenSIwb?= =?iso-8859-1?q?aXYIw3MKqElS9k+iUNpyBO5YwmJuvt43+sHdkf97+adEAkcxEd/RxzZnPvRk?= =?iso-8859-1?q?6CBsLHhF+X4lFiC5pvRaYzlXzuXNdNQ5OfM26TlFqD+RuDacfNIMK2ztUnks?= =?iso-8859-1?q?idFlhgJUdoVrpJBj96Gg1MCyatCkOR4QHEKnFbRqgQ6CBqfc63feB++ELOGv?= =?iso-8859-1?q?FYc5ophN7+nuGoxvQAqHz5hjg2nqlJhWlgYd01BoD2GiT8hT4ohGv/PRH6f7?= =?iso-8859-1?q?Ldo55vqJpqG2op+ILeqmhO4lE2TBUuRH0NKiA5S4JPfYkmuvVSaRJYm9Y6qj?= =?iso-8859-1?q?Xn2FAqlMWDZuwhhN+NUoPQeJ/hKUkCVNSRXgcb5Xa92XiXxnqYhzgRNdLMOO?= =?iso-8859-1?q?5dtyWlRl4w4yfEQMlpnRAEVRJOaZ2SKx5iAWebYf9+Nqn1ZBeXuAqazQNHgS?= =?iso-8859-1?q?LyuB97bJyLYWYP8ZFXDqqZYEhaUqZVPjCqyQmfzYQv5Mh/imGnHGdQvvh3OK?= =?iso-8859-1?q?yMrp+2fqTVqlJKmTVnbbZ6UHBtpz3p10vu56ns6ziU0DVPzS7O9uDP3R5ypI?= =?iso-8859-1?q?gkCccGm7R+gOLkv33mVNZzw38zdqSx5AEpkf3tYvhoIL6O79S4MEgOr1mhAI?= =?iso-8859-1?q?db2mL+Lss2p9gdwp9/kDX+up+WW98CuttisYZjmcmF9pEp3KhoPzfdfVo6t+?= =?iso-8859-1?q?tOEfGtzXE1tgzNOER1LEKS/yqZMOFdHGxNte9hm+8ZEOc844ihvyObWuZ2k2?= =?iso-8859-1?q?lsi394yl3cq4vuhjeGNpPM/arK0luBjz8w1ojXzx96hPXTksS7r79vt5doT9?= =?iso-8859-1?q?H7jrbVyXPVB6RcthO7gaokaGm8Tsn06kUcUp9DtGJgSYdhbD9c7UEVSs9g1R?= =?iso-8859-1?q?oxu5PQ90um7PVFV2ynPgOxs81+nJT7JVTnjwhJ9jMsdqRgCANCUhFQ40hJr0?= =?iso-8859-1?q?9lxgRoDcVeBEP46LQFEFXNI8FjqzGDDbIBznXXzl+JswDDdi55p0ik0im+OI?= =?iso-8859-1?q?lCGtxCCOh4iXuJehFNtbzFg81sAfQ2BcLwuhvfAGxj/U3D3wgQB9G6qhK/hq?= =?iso-8859-1?q?dgJY7DhcvNQLbFFqlqv6ZBEgjQMy0l58ZYnTJPLkgchLCnRkqOgAJkbG88XR?= =?iso-8859-1?q?L0HNF1FfZV8X67v7KVKRcV9QDNXU/115lDD0FV5x4+wOQJU6rX2bD5DQeaIY?= =?iso-8859-1?q?cHf/+IU12FHgdfRnyslLoLhjibGByieGRYeGX6JhG9jaWrl0B+E397so2zTP?= =?iso-8859-1?q?XLg2uXPqZZJT9TVqLpyLpz6tJIrUfibTffvk7JW/7pKBZTEINaEkz5s1Kv46?= =?iso-8859-1?q?a7veSCkpsiElhqlX33dcZipCAvZwH7AIt8gaGyVS5sqcxeSDqnbifh8JQj6r?= =?iso-8859-1?q?cI2XSBpbr0YBDn1tU+G/9Co0tPTZLHjncznsE8zYQl+5bR8BZFeDdoJoOFSJ?= =?iso-8859-1?q?7om8XGWpdzDGVxDE+FSQgGlwKm95XzvGxkS4gwI7DEa1Dx+JnZrFBrw5+184?= =?iso-8859-1?q?OWhIi6eGLFTIuVNfD+hokazNFjL/hdoEPps6ekN5nTmHAkHFiD/SLD1v1ogj?= =?iso-8859-1?q?+BqSMUnuG7KL1F/mSqYbNJg+nSUp43HNgxGqar52cqobm9lTnEwss46bo24r?= =?iso-8859-1?q?Z9/w5qF4CRKmr3iyMWNAe46dq1eYh6dTnP/fv2y0d5D3FBRud1FyLYex3zwK?= =?iso-8859-1?q?vc23BYtYNIxAwNZmYM7/+9QFfiWOFyhoOXSTKs5dI/CQytiJZIcJF8naKrLE?= =?iso-8859-1?q?FN83hifu9rEK0rHVX50JyQFlvucuHPgYpkaBgAwEivBZJdfEdiuS4TcIxrpb?= =?iso-8859-1?q?N3GdFUXs=3D?= MIME-Version: 1.0 X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: bc4c96fe-1fae-4c96-0048-08da53c74c70 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Jun 2022 20:47:05.6755 (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: z3GPYKJ71lwREnDLL+F9XEDPUL2sOkSWBWa4pLveS7nW4wOLCVCwzWMQH7L0/XgPWua0JADRxVjVG6coBwC23Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR10MB4025 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.517,18.0.883 definitions=2022-06-21_09:2022-06-21,2022-06-21 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 malwarescore=0 mlxscore=0 phishscore=0 adultscore=0 suspectscore=0 mlxlogscore=999 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2204290000 definitions=main-2206210087 X-Proofpoint-GUID: 4eTw7VwHJhGCwPa38Z6jw2SPBZkl7YzF X-Proofpoint-ORIG-GUID: 4eTw7VwHJhGCwPa38Z6jw2SPBZkl7YzF ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1655847710; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=u+k3TELJU6vrFGinHqw2bL/XhJtqmEuLXB68nnzReO4=; b=JnRhpnTaTO5MaaKRy4VMi4/EVOuwJ0j2PRnDGKBpC3cdbKIQ/nFgyyYxbLomeM9t4C/Q0r gpSVkTFHPymFhjglCBvOAIeKOYJhcLPjmdU5trnxw9AjJPnQdGsO1CvPTmbFpNMKSjiRk0 sHl+HOsoPMcDN6Sv5vKpt5S3SbU2DJA= ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1655847710; a=rsa-sha256; cv=pass; b=uZNAihl/7Sgcq4DZu5XSNlK4L+eIO5fKXXVeiCKzPKOSrNoAykFwdt1GmDdUdagQlrgvrE wdlIVeWMnndYBNTiaxHrMIGA4DoapvXtDD62OnS0cIzylOtHHoh7Qxkq3OCK0SaOKhvCQO BC9XbO4HTFKQm+mOWd+LboABtKDO/vE= ARC-Authentication-Results: i=2; imf06.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=ImiYZamE; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=sHwEFKFK; spf=none (imf06.hostedemail.com: domain of liam.howlett@oracle.com has no SPF policy when checking 205.220.165.32) smtp.mailfrom=liam.howlett@oracle.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); dmarc=pass (policy=none) header.from=oracle.com X-Stat-Signature: qnmjhi8tcq5bk891ic6e8u6m537iux34 Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=ImiYZamE; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=sHwEFKFK; spf=none (imf06.hostedemail.com: domain of liam.howlett@oracle.com has no SPF policy when checking 205.220.165.32) smtp.mailfrom=liam.howlett@oracle.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); dmarc=pass (policy=none) header.from=oracle.com X-Rspamd-Queue-Id: 7B476180010 X-Rspamd-Server: rspam02 X-Rspam-User: X-HE-Tag: 1655847710-947647 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: From: "Matthew Wilcox (Oracle)" Use the VMA iterator instead. Change the calling convention of __check_mem_type() to pass in the mm instead of the first vma in the range. Link: https://lkml.kernel.org/r/20220504011345.662299-23-Liam.Howlett@oracle.com Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Liam R. Howlett Acked-by: Vlastimil Babka Cc: Catalin Marinas Cc: David Howells Cc: SeongJae Park Cc: Will Deacon Cc: Davidlohr Bueso Signed-off-by: Andrew Morton --- drivers/tee/optee/call.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/drivers/tee/optee/call.c b/drivers/tee/optee/call.c index 28f87cd8b3ed..290b1bb0e9cd 100644 --- a/drivers/tee/optee/call.c +++ b/drivers/tee/optee/call.c @@ -492,15 +492,18 @@ static bool is_normal_memory(pgprot_t p) #endif } -static int __check_mem_type(struct vm_area_struct *vma, unsigned long end) +static int __check_mem_type(struct mm_struct *mm, unsigned long start, + unsigned long end) { - while (vma && is_normal_memory(vma->vm_page_prot)) { - if (vma->vm_end >= end) - return 0; - vma = vma->vm_next; + struct vm_area_struct *vma; + VMA_ITERATOR(vmi, mm, start); + + for_each_vma_range(vmi, vma, end) { + if (!is_normal_memory(vma->vm_page_prot)) + return -EINVAL; } - return -EINVAL; + return 0; } int optee_check_mem_type(unsigned long start, size_t num_pages) @@ -516,8 +519,7 @@ int optee_check_mem_type(unsigned long start, size_t num_pages) return 0; mmap_read_lock(mm); - rc = __check_mem_type(find_vma(mm, start), - start + num_pages * PAGE_SIZE); + rc = __check_mem_type(mm, start, start + num_pages * PAGE_SIZE); mmap_read_unlock(mm); return rc;