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 71DB9C43334 for ; Wed, 22 Jun 2022 06:59:48 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C72C88E0085; Wed, 22 Jun 2022 02:59:47 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C21F68E0083; Wed, 22 Jun 2022 02:59:47 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A9C1A8E0085; Wed, 22 Jun 2022 02:59:47 -0400 (EDT) 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 960F28E0083 for ; Wed, 22 Jun 2022 02:59:47 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 5FAB73364B for ; Wed, 22 Jun 2022 06:59:47 +0000 (UTC) X-FDA: 79604971614.01.F78EC63 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf15.hostedemail.com (Postfix) with ESMTP id DD9A3A009E for ; Wed, 22 Jun 2022 06:59:39 +0000 (UTC) Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 25M6RUAp024783 for ; Wed, 22 Jun 2022 06:59:27 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=date : from : to : cc : subject : message-id : content-type : mime-version; s=corp-2021-07-09; bh=EHRqdeiBkP64p+hH3vMb1W34dxxtkKU8wTJV8GD5Jvg=; b=sZb91NGjaLTDY0zD9CQLLPpy98edxlljgWnmp7gI+dWXXvPvq5mo5pQO79O4AmNo6UIg y+OfPeLsFxeLtEkng62ZmvkY6c6fe/7BO5ylAl7hbO/3TRLZzdoooLuS+SP6lnw2KeYe RGGI8D//vPrzESuGUNu1zUKdI8Wu0u1Pqv0iF1YgnWXtsaOui+Bf8/ssbg+MtPpYGgEV lIucDMFnmdPMJnG8fYb11tWUQNJrHWzyaoAjSfdON8saZEwB2dLLzn/9+WnjtUvCVrbj LqXviOt7Bt4KJWLXgNlM8RY7F70RCToExJ55NgnQFJ1ERBcw07gdSzrh02LqgmN2RytC qw== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3gs5g1ynag-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 22 Jun 2022 06:59:26 +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 25M6uWdW024500 for ; Wed, 22 Jun 2022 06:59:26 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2169.outbound.protection.outlook.com [104.47.59.169]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3gth8x6s8d-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 22 Jun 2022 06:59:25 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nAD1TqoZ7M9dX4eer2xroO26kRrQ2gc/Lsw1H4Ady2qBI91kTyYpOA8guPxXY8d8tz6bC8fT0AmKhN3/zldoQvZso7SI9ooGPaQhdQbRuLa9rX/oi9POubcfi57BzFKtR43tN/T208IuuupX97KdFyI/JMDf/Ldugknkic0KoOZbHOJJQ9mfpRRgtNeGdx/FF7kbQFmS7mnA7EYzmMZAaDZVJnf+aBqMwCUS5GtdyvgNh9jQReJo3Ucfi8V9dGwNXpdh924BfHJrHTpMbyS3qcDCRfb0I4oLIFP47Fq/u7TU36I6P4T2+xoaPXgxV2aVZ0Gf7mJm8f9liY/KYz6Hbw== 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=EHRqdeiBkP64p+hH3vMb1W34dxxtkKU8wTJV8GD5Jvg=; b=dsTJJMf7trld7YgogL67oaNWltwqHfvB6e4qAA3IQlt1GyyhgRQZKm7kTz4afAkZHw0oXpen8A/FUidQQcrXPAJu7KKjO5YtUDbKCxfdbS0qsYXsDJRpz3dcsa8VesUPT/TE6J4XKzneguIFDZKz1EEc+WLpt8R4l0LOrljoWBrEuHykxUJ9Tuiv9g7pk5HgIafS9wN8gxGTVY6mLkmmIlTrkUm93YrF5Qdt0hzSGTPt0cIB1ubSY8pCJLziH62VFvw83WOSNZPOUHB/UxefFSrwL+cCpOUTyCVWKgcUbGUJerLCkEqL500Xqso4az/f2G0FmmxIY2fdFEg7QsIpZw== 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=EHRqdeiBkP64p+hH3vMb1W34dxxtkKU8wTJV8GD5Jvg=; b=VMAsE6UClAv0wIR/ZebwHrj+cW18G5dXsswuDQo5l4POjRbAVzvddHiklkE+iTlR0/6EueMrNO5yFjoFUWor7h4CGbVW8yGWEFmEEoyOWLg4Fcjl8B77DY+fxGzxd2hSrQF7MTvYMXrGaWTyJZajs0fkmauI7Nbiw1HvlW8PBVo= Received: from MWHPR1001MB2365.namprd10.prod.outlook.com (2603:10b6:301:2d::28) by BYAPR10MB2567.namprd10.prod.outlook.com (2603:10b6:a02:ab::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5353.14; Wed, 22 Jun 2022 06:59:23 +0000 Received: from MWHPR1001MB2365.namprd10.prod.outlook.com ([fe80::5020:9b82:5917:40b]) by MWHPR1001MB2365.namprd10.prod.outlook.com ([fe80::5020:9b82:5917:40b%6]) with mapi id 15.20.5373.015; Wed, 22 Jun 2022 06:59:23 +0000 Date: Wed, 22 Jun 2022 09:59:13 +0300 From: Dan Carpenter To: liam.howlett@oracle.com Cc: linux-mm@kvack.org Subject: [bug report] mm/mmap: change do_mas_align_munmap() to avoid preallocations for sidetree Message-ID: Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-ClientProxiedBy: ZR0P278CA0129.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:40::8) To MWHPR1001MB2365.namprd10.prod.outlook.com (2603:10b6:301:2d::28) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7f7550c4-5903-4337-b3e8-08da541cbd12 X-MS-TrafficTypeDiagnostic: BYAPR10MB2567: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: guOJnx5n4EY2R2Zr8IzsYVAkR6QAaen71X2zxHTpaY59LBE9QgPb8mhbOE1O0/mDHDK0i1zlA2b51CG+pr7rog9DNdag9NwrmwlpERQZwGl7gP2D8LW/b2peEkGnuamb1iOvEv2lsbCoEaHDpc8ifMAyMrdnIRyUw3VGytH+Jho3OMnB8mgoYrXbvDE6G4gm8BHtLx05LkUOD24/RcYN7As8hgMxJXNl5KP4GZcf1AnX3pDOWRWM01E/E5qFLTCVaoejhZpT42QRO8w7VvpQgyb3ZUwYF4UuC2q2T1XSoJ38gbFci3Hvw6y4qoj2hId5rvvdcZfO/5nwoxFGxow/D0SUlYSmW7yllq2XnyD0n7wlEZr6aGAFd3jEoH6tZ6/548PTRTWBo7VhQB6igJg87xBNYSAPKfEQEtpRWUiJYcvFRRsusfJ9QlD84Plqw9ckrwG0odi3nvKXz63i4W+BGS3i2RJn/0SPP9t3mkWnQs6faSt0MGjuqQ02sqxpsBbeeI0klwORE4wI+6s3a84BO2JEQVtEFOQwp0xXwxJfpaHLE8jJNeWvZ4I10W7/VIgnJLMEX3Wy6322zTFCvlgv7ZRg6z6cr6701I9Mk8BPk8nDvIgTjaGGU0pllEh8PYsHp0erYBKiH5RVauuQCD9Vy6ibiQlKyJCLi+g/QX5Et+b9W4b2zMQLs6yBjFVtzzQ3TzyqZrPy/rJUD+aYkZbpFlxcC/9Z/8ZE5wv+GospKyRxNfTimSmAyaIZy5yz5EVIGXhS1Ob5I9S8+BhiKJLLhg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MWHPR1001MB2365.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(7916004)(396003)(39860400002)(376002)(346002)(366004)(136003)(6512007)(8676002)(478600001)(44832011)(6636002)(66946007)(26005)(316002)(9686003)(33716001)(6486002)(52116002)(66556008)(41300700001)(4326008)(6666004)(38100700002)(5660300002)(186003)(83380400001)(86362001)(34206002)(66476007)(38350700002)(8936002)(2906002)(6506007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?WbS2VoLsWrTK+jyBQcD9MAR/Mk/zjxIU61gnuXFDJZY/YWEDjKco6ZnVafn7?= =?us-ascii?Q?M8gb1SH+NiMPiePHtMTkjmrMdq5IP5CyF5Uh/l4aW/nFaU2145dk8T/Y+mJH?= =?us-ascii?Q?QiVc3352ESTFKMnWCF+uvZdWFTdukzfX352NUxItQmjubU9vjwx+NHI2zu13?= =?us-ascii?Q?HmYvqnxeS7nH6QSIXhqpDoWwRWkZfK9Ce2U2+2DG22YtT72Gzl+VdUyG4iFf?= =?us-ascii?Q?wB7brpt+K5ubZq5t0BNt5X4TzHFyJjCKwooQUyhZSn4/9xA7exi2a3QTfsMN?= =?us-ascii?Q?9ukywn4qLTrXhI0nQQCtYqtDA8JvfxL0igGRp3O8QXkVzpKdPPrXt0oxKIKl?= =?us-ascii?Q?GmQB4jY+7Nko2NFkVWNBt24yR11tz5nM9PFw9FNq7KR0+bpWq4YM1CfJ/32v?= =?us-ascii?Q?4yCatQRZrR4oPVZeer1MzkxuXMLj8ANFBKV8eTbNiPWFboBzXmHdFMxe8Sto?= =?us-ascii?Q?HocuPgxZEQ8w4TUrzlsBZc8u5G4mmGQ+RcZT3sL9yX75ypwrQQHlDzwBX1dL?= =?us-ascii?Q?Igrcgs5bI6Dg82H+LobwxKjkcYQR3mzyf/8MLtGV6eqcqdcnBezBv7xlKTnk?= =?us-ascii?Q?Z1SBIhcvJED8rdtUUoA0KpS7VMOXqP5swEhTGQWwsds9Fl31/CnsUl2V6o+i?= =?us-ascii?Q?EzVgz2NnLQ8kFdmpeFJbBXxGVBgbWPkTrCBede3liLGfEcVjR67TXnuyyLE5?= =?us-ascii?Q?FMaCSVDS0b7gaVmtn7vDuOwJ+ZjyfPPZxqn9E5q4J0rgx3QsN5SayBIHpS0r?= =?us-ascii?Q?PbGLR/riQoELMbHnJbYMCOR5a6qCPyko5dQLP2toWfCm+Eq2pS544eFJs4OW?= =?us-ascii?Q?xkDWLLsUYeThDw0b5f6pzO8SIhcMkfuGsmeIU8ON7M5IREqEvF/femeNasHN?= =?us-ascii?Q?+FFf1b8NmIrXDj/7yzjhvGxXQuS1VmHQd8GylqSl8DLwRsBr8D+QNTdSK2I/?= =?us-ascii?Q?pjBYaRvmL/sUD1OnJAmtpini3qSEZkjubQ5tT4RJkbu7jqbfsy08scKBRgg3?= =?us-ascii?Q?M679+V9iMxyp6C1wX2n+2AYnlet2W0vouZLYwUXp5BhHswXVa1pvp4UHCYjs?= =?us-ascii?Q?FKYDJhQUnC8NOx8dUQ/fShVm0JFnuX36WqhKs2KLStl/Zn7ljtI2ZZ30klpv?= =?us-ascii?Q?UuFTcDp18TvULNSoFR3FI1MbDNys19sVxlCIenImycSqZgMihQhKq+qOAad/?= =?us-ascii?Q?inP76y7qMc+bgCxV/iIRhUsFaZqRVn6Y0JagOffnpqSnE46vvlm4eXZ2WQyJ?= =?us-ascii?Q?ui7HTISV+PpAXJ6Jt3tzeByu3vbePh2TVmswzGmvPapWtePU1yr6kBdF6WeV?= =?us-ascii?Q?Cu6HYJwTjwqggVLGBjrD5UGyz5IzjnmCBCcZwfUy8HE6FOb9123rl9JcE002?= =?us-ascii?Q?wC6rfCb+Z2LLE5o6Qc+KC/H1zXsHzr+mbiQxpo+MXmmD9SztAbu3WjcX+3G1?= =?us-ascii?Q?G1cpbiaXV6aQQDP6YxXV1D9RTBEJqRyTqb0JqvcxK7I9GeRVOM2B15FJ3ntH?= =?us-ascii?Q?fp2iO3dXXcbJ3j1redt+z1ASHFvjdvDfAc6XdJ66QoDfDvvJ/Z5TIYpgtKGh?= =?us-ascii?Q?yL8QJz6g6uPobDB7C/l3rpb6KgebW9gswzm8YpPGUMNIabs8N4hv40PTLWKt?= =?us-ascii?Q?nTkX8zFhS/oVrft4iKeWpsvRvA9Bde12lxo2LFlw4hf706AMwlSJp/aIYx4m?= =?us-ascii?Q?X3tboBzqvSiiMIBdBgJ5pVSCl6nos2yD7CaxV5IRSHLGxgAT0mSjwA1o+56p?= =?us-ascii?Q?mvXpIQgpQ0KPyPQFqagXc8EgrFFne7I=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7f7550c4-5903-4337-b3e8-08da541cbd12 X-MS-Exchange-CrossTenant-AuthSource: MWHPR1001MB2365.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jun 2022 06:59:23.7095 (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: tALPnxw7lvsDLBnOtRd94omy4hRZaM90rkFuP65LQrqx1SXJwLqRE0cjKjOhi432GjxSSd+9IOf8Uzg+2zIy1DdKd92X+2KOui4Zt7KH59A= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR10MB2567 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.517,18.0.883 definitions=2022-06-21_11: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=969 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2204290000 definitions=main-2206220034 X-Proofpoint-GUID: pEp6Ol67yJpyuDYF5hGNfB-LV2dXkRJE X-Proofpoint-ORIG-GUID: pEp6Ol67yJpyuDYF5hGNfB-LV2dXkRJE ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1655881185; a=rsa-sha256; cv=pass; b=J/o0ywjWY5h+DxGTs8udtWBVICPZsaejFYw2LcOgX9RIAWW0fDJWWCoirw63lrz3lHDyp6 bhvscykqJ+SK//QkJhsA04uI7jcG2bGdYqYaStwWFMlcczpk7yB+mjKItWAxLjLJN3i1Lr cmJG00+cj3qDO/lbkwPBkFaH+bImDHA= ARC-Authentication-Results: i=2; imf15.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=sZb91NGj; dkim=temperror ("DNS error when getting key") header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=VMAsE6UC; spf=none (imf15.hostedemail.com: domain of dan.carpenter@oracle.com has no SPF policy when checking 205.220.177.32) smtp.mailfrom=dan.carpenter@oracle.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); dmarc=pass (policy=none) header.from=oracle.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1655881185; 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: references:dkim-signature; bh=EHRqdeiBkP64p+hH3vMb1W34dxxtkKU8wTJV8GD5Jvg=; b=FZd8Vp8HxBHbtaPrIyPPu6PLKgB1wXVvUjtBL473FUqLLi1S2FgVLsiTnGYWFRYR46dfIy FYjzHiXw3ZtMSY75rey0xNwSlLGBXDfqXPO5jR4zRVnXiPAgSJ+kN+ir1Bmrx4oeSVv6W1 9aX9uV7JskoceYKOSaHfzOtOZVeL5mw= X-Rspamd-Queue-Id: DD9A3A009E X-Rspam-User: Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=sZb91NGj; dkim=temperror ("DNS error when getting key") header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=VMAsE6UC; spf=none (imf15.hostedemail.com: domain of dan.carpenter@oracle.com has no SPF policy when checking 205.220.177.32) smtp.mailfrom=dan.carpenter@oracle.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); dmarc=pass (policy=none) header.from=oracle.com X-Rspamd-Server: rspam08 X-Stat-Signature: z3ghfq1mrn39n3xd181f5m1p6pc41erw X-HE-Tag: 1655881179-572231 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: Hello Liam Howlett, The patch fecd1f7f7502: "mm/mmap: change do_mas_align_munmap() to avoid preallocations for sidetree" from Jun 17, 2022, leads to the following Smatch static checker warning: mm/mmap.c:2431 do_mas_align_munmap() warn: missing error code here? 'munmap_sidetree()' failed. 'error' = '0' mm/mmap.c 2363 static int 2364 do_mas_align_munmap(struct ma_state *mas, struct vm_area_struct *vma, 2365 struct mm_struct *mm, unsigned long start, 2366 unsigned long end, struct list_head *uf, bool downgrade) 2367 { 2368 struct vm_area_struct *prev, *next = NULL; 2369 struct maple_tree mt_detach; 2370 int count = 0; 2371 int error = -ENOMEM; 2372 MA_STATE(mas_detach, &mt_detach, 0, 0); 2373 mt_init_flags(&mt_detach, MT_FLAGS_LOCK_EXTERN); 2374 mt_set_external_lock(&mt_detach, &mm->mmap_lock); 2375 2376 if (mas_preallocate(mas, vma, GFP_KERNEL)) 2377 return -ENOMEM; 2378 2379 mas->last = end - 1; 2380 /* 2381 * If we need to split any vma, do it now to save pain later. 2382 * 2383 * Note: mremap's move_vma VM_ACCOUNT handling assumes a partially 2384 * unmapped vm_area_struct will remain in use: so lower split_vma 2385 * places tmp vma above, and higher split_vma places tmp vma below. 2386 */ 2387 2388 /* Does it split the first one? */ 2389 if (start > vma->vm_start) { 2390 2391 /* 2392 * Make sure that map_count on return from munmap() will 2393 * not exceed its limit; but let map_count go just above 2394 * its limit temporarily, to help free resources as expected. 2395 */ 2396 if (end < vma->vm_end && mm->map_count >= sysctl_max_map_count) 2397 goto map_count_exceeded; 2398 2399 /* 2400 * mas_pause() is not needed since mas->index needs to be set 2401 * differently than vma->vm_end anyways. 2402 */ 2403 error = __split_vma(mm, vma, start, 0); 2404 if (error) 2405 goto start_split_failed; 2406 2407 mas_set(mas, start); 2408 vma = mas_walk(mas); 2409 } 2410 2411 prev = mas_prev(mas, 0); 2412 if (unlikely((!prev))) 2413 mas_set(mas, start); 2414 2415 /* 2416 * Detach a range of VMAs from the mm. Using next as a temp variable as 2417 * it is always overwritten. 2418 */ 2419 mas_for_each(mas, next, end - 1) { 2420 /* Does it split the end? */ 2421 if (next->vm_end > end) { 2422 struct vm_area_struct *split; 2423 2424 error = __split_vma(mm, next, end, 1); 2425 if (error) 2426 goto end_split_failed; 2427 2428 mas_set(mas, end); 2429 split = mas_prev(mas, 0); 2430 if (munmap_sidetree(split, &mas_detach)) --> 2431 goto munmap_sidetree_failed; Need "error = -ENOMEM;" 2432 2433 count++; 2434 if (vma == next) 2435 vma = split; 2436 break; 2437 } 2438 if (munmap_sidetree(next, &mas_detach)) 2439 goto munmap_sidetree_failed; Here too. 2440 2441 count++; 2442 #ifdef CONFIG_DEBUG_VM_MAPLE_TREE 2443 BUG_ON(next->vm_start < start); 2444 BUG_ON(next->vm_start > end); 2445 #endif 2446 } 2447 2448 if (!next) 2449 next = mas_next(mas, ULONG_MAX); 2450 2451 if (unlikely(uf)) { 2452 /* 2453 * If userfaultfd_unmap_prep returns an error the vmas 2454 * will remain split, but userland will get a 2455 * highly unexpected error anyway. This is no 2456 * different than the case where the first of the two 2457 * __split_vma fails, but we don't undo the first 2458 * split, despite we could. This is unlikely enough 2459 * failure that it's not worth optimizing it for. 2460 */ 2461 error = userfaultfd_unmap_prep(mm, start, end, uf); 2462 2463 if (error) 2464 goto userfaultfd_error; 2465 } 2466 2467 /* Point of no return */ 2468 mas_set_range(mas, start, end - 1); 2469 #if defined(CONFIG_DEBUG_VM_MAPLE_TREE) 2470 /* Make sure no VMAs are about to be lost. */ 2471 { 2472 MA_STATE(test, &mt_detach, start, end - 1); 2473 struct vm_area_struct *vma_mas, *vma_test; 2474 int test_count = 0; 2475 2476 rcu_read_lock(); 2477 vma_test = mas_find(&test, end - 1); 2478 mas_for_each(mas, vma_mas, end - 1) { 2479 BUG_ON(vma_mas != vma_test); 2480 test_count++; 2481 vma_test = mas_next(&test, end - 1); 2482 } 2483 rcu_read_unlock(); 2484 BUG_ON(count != test_count); 2485 mas_set_range(mas, start, end - 1); 2486 } 2487 #endif 2488 mas_store_prealloc(mas, NULL); 2489 mm->map_count -= count; 2490 /* 2491 * Do not downgrade mmap_lock if we are next to VM_GROWSDOWN or 2492 * VM_GROWSUP VMA. Such VMAs can change their size under 2493 * down_read(mmap_lock) and collide with the VMA we are about to unmap. 2494 */ 2495 if (downgrade) { 2496 if (next && (next->vm_flags & VM_GROWSDOWN)) 2497 downgrade = false; 2498 else if (prev && (prev->vm_flags & VM_GROWSUP)) 2499 downgrade = false; 2500 else 2501 mmap_write_downgrade(mm); 2502 } 2503 2504 unmap_region(mm, &mt_detach, vma, prev, next, start, end); 2505 /* Statistics and freeing VMAs */ 2506 mas_set(&mas_detach, start); 2507 remove_mt(mm, &mas_detach); 2508 __mt_destroy(&mt_detach); 2509 2510 2511 validate_mm(mm); 2512 return downgrade ? 1 : 0; 2513 2514 userfaultfd_error: 2515 munmap_sidetree_failed: 2516 end_split_failed: 2517 __mt_destroy(&mt_detach); 2518 start_split_failed: 2519 map_count_exceeded: 2520 mas_destroy(mas); 2521 return error; 2522 } regards, dan carpenter