From patchwork Tue Jan 17 02:34:23 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 13104098 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 629FBC46467 for ; Tue, 17 Jan 2023 02:35:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C56606B00A6; Mon, 16 Jan 2023 21:35:09 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C07446B00A7; Mon, 16 Jan 2023 21:35:09 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 920886B00A8; Mon, 16 Jan 2023 21:35:09 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 744B96B00A6 for ; Mon, 16 Jan 2023 21:35:09 -0500 (EST) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 4DD59140A8B for ; Tue, 17 Jan 2023 02:35:09 +0000 (UTC) X-FDA: 80362723938.17.14AA6DE Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf22.hostedemail.com (Postfix) with ESMTP id CFF33C0004 for ; Tue, 17 Jan 2023 02:35:05 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2022-7-12 header.b=eVK5SD03; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=J0+dqPRH; dmarc=pass (policy=none) header.from=oracle.com; spf=pass (imf22.hostedemail.com: domain of liam.howlett@oracle.com designates 205.220.177.32 as permitted sender) smtp.mailfrom=liam.howlett@oracle.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1673922905; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=1BgCv6KPHQPA9madWtiugJOXRBCoZ3mSdPjJPZaavpU=; b=l076F7gwOIJm6fGz1eH4o+QV+PG599zXnGSsL0e7miizArFTWnKx1VJr+Qkq2QFt+yIRyh hzaMo4y0gbBQFTCYOna3n88h5qN6BQs1EjmbC8ue0OjxQAtzxmemofPY4FjSgZJvziUKE/ pIs2dyJWxZRumWU9ciNOrNf/JFA3cn4= ARC-Authentication-Results: i=2; imf22.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2022-7-12 header.b=eVK5SD03; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=J0+dqPRH; dmarc=pass (policy=none) header.from=oracle.com; spf=pass (imf22.hostedemail.com: domain of liam.howlett@oracle.com designates 205.220.177.32 as permitted sender) smtp.mailfrom=liam.howlett@oracle.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1673922905; a=rsa-sha256; cv=pass; b=s4ZomCDVo1DPjv7q96BpPui63AdUUJZy0AK+L0CPKa1EhK/MZ0PWO7bmVKXv8zDCShcyGp F8iH/RBacEh8m9EEqAv5qGyX6T9qAg7s6I/+81RkGrffDymZC3jwcWDSkYlL4P/VYzsCwX nV8Hq/7SlByha+Rt49NWZ2qlyyxR3U8= Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 30H092Bi023154; Tue, 17 Jan 2023 02:35:05 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=1BgCv6KPHQPA9madWtiugJOXRBCoZ3mSdPjJPZaavpU=; b=eVK5SD03i7wLzTutUqXuUIWd53kh9BMirZKSypt+58dks5NHXPpjJKYbg22+Q+EMO/u/ XVFggwiHHWmizpwdcL7OYVl/x6bw28rA7Q0GnXzhrCGVJYVC7O8BEe/oAmWAibH0sV0m BXjvf21uxN16may4r9fgjMwxBHvR2+2f9vs2ml/GhlbWo6SgVqcMGArQl4e7oUTSsrwc VqjpumgbhWadIDo2o8m2CRL098VniqWWMUUTbS/y04C+f9EvN+W7u+bMCBnwNMBkxMrV T8TIoDAY5nP+moOwdo0CZUaCy65TjiPZxqotC9XKcbYm4pLr1PQFT7dExW+n468G529d IQ== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3n3jtukq2t-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:35:04 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 30GMXP45028373; Tue, 17 Jan 2023 02:35:04 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2173.outbound.protection.outlook.com [104.47.59.173]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3n4s2rfy4x-6 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 17 Jan 2023 02:35:04 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GImZAtuUCm4lZXwg8T+5V4LRMoT5bwpiMEcCqIaa9ky9yoQXGY7KSvnNaVhy/bEd2qrHVJj/1N8L/avFjXyNL9tdM/laLj5OLWMp7nFtWuaj9OC4I/dOckaRHda0XArr4b/5CjJe2JLSLE+2Bp8p8Lq04KXK+vDBje1woR34w0a+W8MsF0o5lwrR9WJefHrAuTaT+AxbbYaEJvJk8yByYFmEX94XKxJr20ELU3/xD9m3UJroqyjxXHNnW2+j+BwMuqAmmHtlBiA0i7aJSXWBAt4MkGx+R+/+IngIHo/WwXIZKntdn631v69ZU1jI98h3Ot74ml2Xt24V5llktHaSww== 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=1BgCv6KPHQPA9madWtiugJOXRBCoZ3mSdPjJPZaavpU=; b=bMdBZBQ/7KIQTnLmpWunfH2DzZXlAricFIu5+fhgW+cOdbvY453rooSXkstktGDQDFgsb0moX33W6+MPTH+iVFeVnNU86pZclP37r1+Rln3DoseXIe/hEaPQ8LDD9BXWo+cI3P6o1rc2BmNtGMLoAxZyy6RY1ie5pBu7clsfhvr78Yt8PBCrNZNcmPmLCuTVyZnz6IGnHn7hvyfZILOH5UO8kMiB60GoyNBQzKlHdZ5nwOIsjJwr/91IGN3y8wskOhJ1DsFdJJCifb1x0ivrPPuYMgOiGf0g/MYSIbUeWrhJsQNWGoDEJUYgLGJOAXry154DqZvbKfV85CzZTVjmHw== 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=1BgCv6KPHQPA9madWtiugJOXRBCoZ3mSdPjJPZaavpU=; b=J0+dqPRHqo55z/gzFvA+cBkHOT0r79SEAk8pnby+cXFe5fONHKyQqp2M1/vpzjZIuIS/fY3Ht4Qs+4vgMI/pTqeGUp6+axW6SZaIDwSThc5H7+M35uhYKZYjWiJDqNzAFeF9nyopESbaSYYS5mjZauwkSPkhVMjnrc2b0TqCqqU= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SJ0PR10MB4814.namprd10.prod.outlook.com (2603:10b6:a03:2d5::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.12; Tue, 17 Jan 2023 02:35:01 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::a02:2ac8:ee3e:682%4]) with mapi id 15.20.6002.012; Tue, 17 Jan 2023 02:35:01 +0000 From: Liam Howlett To: "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "maple-tree@lists.infradead.org" CC: Liam Howlett , Liam Howlett Subject: [PATCH v3 44/48] mm/mmap: Don't use __vma_adjust() in shift_arg_pages() Thread-Topic: [PATCH v3 44/48] mm/mmap: Don't use __vma_adjust() in shift_arg_pages() Thread-Index: AQHZKhw1tU1Rx5vwfUi9LCp2M7SsaQ== Date: Tue, 17 Jan 2023 02:34:23 +0000 Message-ID: <20230117023335.1690727-45-Liam.Howlett@oracle.com> References: <20230117023335.1690727-1-Liam.Howlett@oracle.com> In-Reply-To: <20230117023335.1690727-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-traffictypediagnostic: SN6PR10MB3022:EE_|SJ0PR10MB4814:EE_ x-ms-office365-filtering-correlation-id: 082412cb-0bbf-4825-9f6a-08daf8336f2c x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: qc72xEoAijJwk7pJ0JJrDYnZB3SJlNDmTJDsrIZB5doUAxMfkFhXNwW6C/Yx3dK9k+aZyo+n0KacKKNqOxPl5Bh73ecNvQS3cLaL9QBOoc0nhSoDtT8NkneeuBw6jDCZUMr9mqp7lGshlIIAkIzQ0F1F3QLh5X/z1/zAyCShE6bgVlYn4k+NzK6NypimkxsplY0PKpdd811SO0StivkwbeX7/QDSD55UCVPNPmiTL9IXxJk2X3kdbkeVPTZZtPuRqyn8yg3FnOm9uhOn2c+0ClAVZ8IfUFmAjx43wgYKjbaD8jVqs8v7eJOddr+1vU41wiyD782LSltT4cF1E7Z/NX/ctpczRW6pmwvmoaL/APhlp5bhYAMY1L+mXRz4MUI4D8eYS+3Ke5h0NmQkvK+YjPdp8IEnI0izw5OVfb11LNfuDt7Wntpu1+Te99LllOxBPlj4nFCP5G/72ChORX6Xp63wG1yAsfZEmfXNTgN8oO8+vVI9AV8G1mOMADtU7MFTJFNVKKQD8JAjQnM9j5zOFPmBWXQ6ccs4iHb55pI+aSH6mwPbFGYvqYr8+d2SkHL0aH68YaEl5bLbFN2rqYqv4T5yKSw0HMGIBdEfGj8aGq0PcT9ANWtbYWmf5dx0cuAPQ6W9GMjWvihmieBo7SC7l0tDCz20h6G2dlanXcsc9xbbighmg7S7q+b4EDAk6i6WiPoyY52Q0Pl3+mAFo6peHg== 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:(13230022)(346002)(39860400002)(396003)(376002)(136003)(366004)(451199015)(6486002)(6512007)(478600001)(186003)(26005)(6666004)(107886003)(71200400001)(6506007)(91956017)(66556008)(66946007)(2616005)(76116006)(66476007)(122000001)(110136005)(316002)(64756008)(8676002)(4326008)(54906003)(66446008)(36756003)(83380400001)(8936002)(41300700001)(1076003)(44832011)(2906002)(38070700005)(38100700002)(5660300002)(86362001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?gL1mQ/hGofT93C+A3EjEiXb?= =?iso-8859-1?q?X/jfbmevISuJdygTTsAC+u6DXfWp1oTJPE1ahRrkvXmtMSIj1HJh1t0XNCSb?= =?iso-8859-1?q?p7vvpzWyzVf97OFXt+XuE3DTiVnMfRJLjv5LU8moOwoqIqaLng2TncOq8vNJ?= =?iso-8859-1?q?z46RaaOjOB6J4LPVZF2/W9EnSUKE0+PAUKcMoLbk9CfWZK0CLAzY08dEY/yt?= =?iso-8859-1?q?DjL9CoE1WINFn+1y0hSDcfhHuB/zz6FtSDxIcI7NUy0PoLW1uG8rhVVEGxWE?= =?iso-8859-1?q?94oUeyoBBesZ3o3QWgCcf/j2gyoiPYaKAvu+SnMkY/sFLShGuGTT4xgCXlBy?= =?iso-8859-1?q?xpQrnzeB534VLowLotDP9JCfJUuytyIZVGWQC6utHFgkRnJQ35XgQv4BC65+?= =?iso-8859-1?q?wI9cM0sgylS4J0qUv9t6m+2NMIve4numq/2WOm+il9qlbXQgReC6c3klqNRI?= =?iso-8859-1?q?yumLmOS60yiday3wCuhzPK7m6EApNP/0ArPNoOwSvshT3oy7++vtSQPIrWDy?= =?iso-8859-1?q?p/yy0+/cKQTVkk2HdB8K4GIrfsaCzEfLQZf9w6rD+XC5VSGPY1OBGwQTRs8l?= =?iso-8859-1?q?9Qz3WfbrDSGcD8oGITycnllUTa3KvbltX54en4AtnE9oywzSrIDlbZDiigwp?= =?iso-8859-1?q?0sDIVQP+kEzApp5KRolE9zD+gww1AqjK6+d7sQGxAZWYrgV8acWGJYyCfZOE?= =?iso-8859-1?q?yaf7s34n82NpF5uLkNTceXFviH2ejREGEx/+Alo1A9YALKtqdFfQoilGqtI4?= =?iso-8859-1?q?P4Pp/fXyKuG2PQPxUzsvgqYEoP0Ruv+qNYrgUj+Xps165FTAMsaYCfBrvLs4?= =?iso-8859-1?q?vggXbqkd2zx+xXsnn+k4vqf4BFrbbvNyEkIRjBi+P4c+HIOruU4cuKyvkbT8?= =?iso-8859-1?q?eSK1YMsGxHH+EFqwGZKANu+7QhjQ49tQCx3hpkrohbyVZMIMT5fZFgvAoSOB?= =?iso-8859-1?q?ExhvQrah7g6JvD2tBjICZkXbl/p8kS18cZrrD9NTu/ROAxackJI/H/FGowm8?= =?iso-8859-1?q?LuTUZsaIxP6zrIHhkbIFzPfUKON+1+Tdas2FT2fQzA7k/oDZky2ydQfE2L7l?= =?iso-8859-1?q?xAkcLQZXzFqKlT7s7N4OMrAKRwRIf4dXtT4yG0tDBrHKos+rcQjB47274GT7?= =?iso-8859-1?q?EUmKAzNSXv6N6bO2b9IJnFynwHO6oxoxCRVsXYLHcEm4qwv+BMx1xR/x3sAs?= =?iso-8859-1?q?jg7DfV0wfoPB0eBrzGdJSmzeTzgGZ3dOgzBUSGOfBohkPx7FF4vsbVJJ2ymC?= =?iso-8859-1?q?2JI+QEaIqAPX1gwxk5+uvv+42Nu4pd8m6/J5X3J8pBYTaDuHy3LhFHzKt2Ui?= =?iso-8859-1?q?Mq1hTk7ThTBl9tMwD34Nj/PPVw7gwhOEVZHkUMo27mtGbQNaoYLa2z+YdD+L?= =?iso-8859-1?q?Ol2Xak5f+3Z3Mq/YPaqytmQd3MBrcJICIlVnyr1D3W0pIS2KUPgWvuvrhcty?= =?iso-8859-1?q?aoNjxvwCQaUAd8TqPsS159CtLs1S4seDgYHUeMFvP0nBFniTkWjWHnK2b/In?= =?iso-8859-1?q?htw5JmBCqGA31t9iu4T3yWhPgBj2C8i8Hl+97nE9bdrmgsUlYb98ucphJ+PX?= =?iso-8859-1?q?aKpqV3fdbsDwvKkpXh0TDpMHqsraRELTFHQqDN8qCswJKz4vt6snmMwfeetm?= =?iso-8859-1?q?rBD7ufRbl9oc9ibXHYDX003M91A7MxzQZiSB7mQ=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: ENwXwpWAKVpLRdUeYnNKU7FjhWnb6FQOvnczwFBFsw7ZjKB1AkUUKVB7MFmlVMengC9X93z6EpSJ1MI3ml6Iz/fvwQlm+XdtHEKL8h1WEXhhxjfgbR0oKBm7LH6C5sR1Y43o0Zjg82ASfipOaeZLOwagmNiXZelyeJsee8Z4Z6GheYmbvhnrci7IdckLjTSVEsFsbMeyu8niZvQqR/MDjfZHdGP99tHTr0fKHM8+Vq7o1f++8SdPB8zByu6JNq7MJojFLWRZKvo9sm/UBvkiRfdOT1omaTAwtRiXdGTshh4aAYsFmCIfdJWJ2bBekxVjyphweGNyydexeBcxknwpjxM02bOUTDOS5TbosTpb1X/MoWW+wYmRaXpaKp0O2/7lhNR80KzVIladnCTHsuRjXFphAx+PKvlY5GSVkqFZZogQu03xr0hkoTwACnL+sc9FgHx9uyKoAC8rIJGbyhzMOcQRm7kAUvUgOHylthOBBx9UejZBrRFnxd7U8oWDf+MXyampjm+poUD2oeR/lsfBgFFaA7oOAOjXt1FbXn9phmH5Jve1/vu3+F4R6+SMTJG4LDwXIA2ONE3cohTWkDvqseDFr3SLq+IGwYj3ul6c4APl4XNunnwXSzGmO/URkfgTIT2S9g0e0Ie3k9rspw+Ht72Usra3cnuIWgbq1c5gIh5N2K5PFPcdF76ii75AlLXNlzoeWDvjBr2hw4XZ4rroQdTTkLiwhEtInzVkjuKaq7xQ3tVeXUUFsrj/emGYIbNje03nc1s1MiT40vvf2ObTpoqmq2v4cBGHFZdU3R8X5jy7NgfiVynmL7ZOirNaUQm9b4sBEdh9MKWz1hi6k2FRoPOhDZeOINI+V+IGhGDZR/rm95AKGTYH7DPKq8ncnUUocRotyHTEZZXfORnUn6gx4A== 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: 082412cb-0bbf-4825-9f6a-08daf8336f2c X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2023 02:34:23.6088 (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: SYXoq9EBK9ube2ivbb195FZer9T7dwhMML1J/R0weSkPg2SY98lHGV4L8/5O1YCsG4HY355LeE6G0DFArphpWw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB4814 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-16_18,2023-01-13_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 adultscore=0 mlxlogscore=999 suspectscore=0 malwarescore=0 bulkscore=0 spamscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301170017 X-Proofpoint-GUID: HMD8jwVCL3Q15RGzH15oO5Xq5Y3B06yR X-Proofpoint-ORIG-GUID: HMD8jwVCL3Q15RGzH15oO5Xq5Y3B06yR X-Rspamd-Queue-Id: CFF33C0004 X-Rspamd-Server: rspam09 X-Rspam-User: X-Stat-Signature: s8ki67i551xf84fw8chzzgwf1mzj8f38 X-HE-Tag: 1673922905-649856 X-HE-Meta: U2FsdGVkX18g5jkwA//YDu579eFeNa81qOT89+PqPP0VvbC65UYe9+LS4AYrUWktCDyB6lmoD6UUz8plxrjCVVPVA+XLp5oXgwYhe7hCpKgKjn17AQwmE8QWoE/VK+7mD88XiQwKJSB3I4tX15n7yOr7fBg2CqQl5SohC3i2U9GJSrPp9R8KnagVI4FSmETqX7oRlYoph4uSQVYRNvUzFKbK1TUVfnuvJmtWZhuzqkLobTApz8GVchUKQfHLLVa7blimj4Cp+q2rmAztlWpbNeXsWQrkATmzbPlV71CKhsbCxcvHmyqag+AjtxIEEeQIra1E6lsz+21M7rg+vEW4ErUrNf+xgp49qlpZaNxzOy83dgR3RVCkJpuL3CpZA3RKzqCGhZqUM/fGsGuIYLsBN1vhRh3hoSNd6tuGRL1lrdjYPzXOhKWLF79G2PtwVruxLtwxqBTNIp/S5+ObfCtY/WvzHgmIPXsYNPrpIcqJpybU+aGJ+SG5sdzW04fnd8icGX+RpadxBS9rD9Jmtc5KaoD1s2EnxCA6/Q74Tx6u1y/IOzseRd+b6oC1wqv6M3XjLVjemtDMlfw417jsNXj0JB8RowEVe3gUQfHW3MUMyY9EqnkyJz5lAW6IBV2koNWFHtoFdPDNOFZQTMWoaqooHIMeP69LYX2efNncCwgzmwKMn4zD/vz1ZZhloN3igq3K0UPdcDXy2UZynIVvGzvdNd/k+t1uND/q6yaxsU2nx5YDCQGscVR0dsRbFLRLGYyzexq4k8MXF1IP6V4Q+BM/Szjtiamu7NdJlY96yMDkpPW4fa1ufkPGZHOGSz19Aog1sxPt7YDuq+J7QWzC578ELX+fugRgo/cFax7UX53myK9LjJlVBvhJVteftPIUbkruOCiAbkptAtri2JG30NGMfB9D23SOsIQEWhwDa4uFvWYVAZ9O8L+4y0ZpnWw8f2lRPV6lP3r7rntAhugMteO luwYfgLk hCIIC53Y//05CFW9CN7cwoOBsM0rSyqMGuzf1c8OC2ky0moIUDqfaeco4jJbQTi7uklKglWxddsV+tiyRqT1hPMd3J4E5LOqng+qUDOMJw5QUwmA9PxhH4PeekDuOUWL06GZo+m+zyJzgujHb9snv5xLeLA== 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: "Liam R. Howlett" Introduce shrink_vma() which uses the vma_prepare() and vma_complete() functions to reduce the vma coverage. Convert shift_arg_pages() to use expand_vma() and the new shrink_vma() function. Remove support from __vma_adjust() to reduce a vma size since shift_arg_pages() is the only user that shrinks a VMA in this way. Signed-off-by: Liam R. Howlett --- fs/exec.c | 4 ++-- include/linux/mm.h | 13 ++++------ mm/mmap.c | 59 ++++++++++++++++++++++++++++++++++++---------- 3 files changed, 53 insertions(+), 23 deletions(-) diff --git a/fs/exec.c b/fs/exec.c index d52fca2dd30b..c0df813d2b45 100644 --- a/fs/exec.c +++ b/fs/exec.c @@ -699,7 +699,7 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift) /* * cover the whole range: [new_start, old_end) */ - if (vma_adjust(&vmi, vma, new_start, old_end, vma->vm_pgoff)) + if (vma_expand(&vmi, vma, new_start, old_end, vma->vm_pgoff, NULL)) return -ENOMEM; /* @@ -733,7 +733,7 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift) vma_prev(&vmi); /* Shrink the vma to just the new range */ - return vma_adjust(&vmi, vma, new_start, new_end, vma->vm_pgoff); + return vma_shrink(&vmi, vma, new_start, new_end, vma->vm_pgoff); } /* diff --git a/include/linux/mm.h b/include/linux/mm.h index a00871cc63cc..0b229ddf43a4 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2822,14 +2822,11 @@ void anon_vma_interval_tree_verify(struct anon_vma_chain *node); /* mmap.c */ extern int __vm_enough_memory(struct mm_struct *mm, long pages, int cap_sys_admin); -extern int __vma_adjust(struct vma_iterator *vmi, struct vm_area_struct *vma, unsigned long start, - unsigned long end, pgoff_t pgoff, struct vm_area_struct *expand); -static inline int vma_adjust(struct vma_iterator *vmi, - struct vm_area_struct *vma, unsigned long start, unsigned long end, - pgoff_t pgoff) -{ - return __vma_adjust(vmi, vma, start, end, pgoff, NULL); -} +extern int vma_expand(struct vma_iterator *vmi, struct vm_area_struct *vma, + unsigned long start, unsigned long end, pgoff_t pgoff, + struct vm_area_struct *next); +extern int vma_shrink(struct vma_iterator *vmi, struct vm_area_struct *vma, + unsigned long start, unsigned long end, pgoff_t pgoff); extern struct vm_area_struct *vma_merge(struct vma_iterator *vmi, struct mm_struct *, struct vm_area_struct *prev, unsigned long addr, unsigned long end, unsigned long vm_flags, struct anon_vma *, diff --git a/mm/mmap.c b/mm/mmap.c index a8c941e3be84..a6e07edc15e9 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -637,10 +637,9 @@ static inline void vma_complete(struct vma_prepare *vp, * * Returns: 0 on success */ -inline int vma_expand(struct vma_iterator *vmi, struct vm_area_struct *vma, - unsigned long start, unsigned long end, pgoff_t pgoff, - struct vm_area_struct *next) - +int vma_expand(struct vma_iterator *vmi, struct vm_area_struct *vma, + unsigned long start, unsigned long end, pgoff_t pgoff, + struct vm_area_struct *next) { bool remove_next = false; struct vma_prepare vp; @@ -686,6 +685,44 @@ inline int vma_expand(struct vma_iterator *vmi, struct vm_area_struct *vma, nomem: return -ENOMEM; } + +/* + * vma_shrink() - Reduce an existing VMAs memory area + * @vmi: The vma iterator + * @vma: The VMA to modify + * @start: The new start + * @end: The new end + * + * Returns: 0 on success, -ENOMEM otherwise + */ +int vma_shrink(struct vma_iterator *vmi, struct vm_area_struct *vma, + unsigned long start, unsigned long end, pgoff_t pgoff) +{ + struct vma_prepare vp; + + WARN_ON((vma->vm_start != start) && (vma->vm_end != end)); + + if (vma_iter_prealloc(vmi, vma)) + return -ENOMEM; + + init_vma_prep(&vp, vma); + vma_adjust_trans_huge(vma, start, end, 0); + vma_prepare(&vp); + + if (vma->vm_start < start) + vma_iter_clear(vmi, vma->vm_start, start); + + if (vma->vm_end > end) + vma_iter_clear(vmi, end, vma->vm_end); + + vma->vm_start = start; + vma->vm_end = end; + vma->vm_pgoff = pgoff; + vma_complete(&vp, vmi, vma->vm_mm); + validate_mm(vma->vm_mm); + return 0; +} + /* * We cannot adjust vm_start, vm_end, vm_pgoff fields of a vma that * is already present in an i_mmap tree without adjusting the tree. @@ -801,14 +838,7 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_area_struct *vma, vma_prepare(&vma_prep); - if (vma->vm_start < start) - vma_iter_clear(vmi, vma->vm_start, start); - else if (start != vma->vm_start) - vma_changed = true; - - if (vma->vm_end > end) - vma_iter_clear(vmi, end, vma->vm_end); - else if (end != vma->vm_end) + if (start < vma->vm_start || end > vma->vm_end) vma_changed = true; vma->vm_start = start; @@ -821,7 +851,10 @@ int __vma_adjust(struct vma_iterator *vmi, struct vm_area_struct *vma, if (adjust_next) { next->vm_start += adjust_next; next->vm_pgoff += adjust_next >> PAGE_SHIFT; - vma_iter_store(vmi, next); + if (adjust_next < 0) { + WARN_ON_ONCE(vma_changed); + vma_iter_store(vmi, next); + } } vma_complete(&vma_prep, vmi, mm);