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 B9098CF538E for ; Wed, 23 Oct 2024 14:22:17 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 50EB96B0083; Wed, 23 Oct 2024 10:22:17 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4E5656B0085; Wed, 23 Oct 2024 10:22:17 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 339716B0088; Wed, 23 Oct 2024 10:22:17 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 1225B6B0083 for ; Wed, 23 Oct 2024 10:22:17 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id BDE24A0C81 for ; Wed, 23 Oct 2024 14:21:44 +0000 (UTC) X-FDA: 82705081536.04.CB952D6 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf07.hostedemail.com (Postfix) with ESMTP id 3CE1540022 for ; Wed, 23 Oct 2024 14:21:49 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b="Jy/wua1A"; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=cSAnHFd5; spf=pass (imf07.hostedemail.com: domain of liam.howlett@oracle.com designates 205.220.177.32 as permitted sender) smtp.mailfrom=liam.howlett@oracle.com; dmarc=pass (policy=reject) header.from=oracle.com; arc=pass ("microsoft.com:s=arcselector10001:i=1") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1729693256; 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=4wSbRWmfpw609tJ810eEnTnfCv7MCpwAcGQSn9IXd2A=; b=4xKh+ZJ8V6oN5bmkWsmSh+YkET0L29HRNq3JP2ca3oA0hokNFq5HeBoJvv58qttFxaK5cS rdRfZ1sREpq/i5/uozgJT6KlHydTt8FXU34w80xt9pfolw1nWWyhOi432SwyIxFLyyAkUg 1RAuwZ4CaFhhWFP30QF5UGTuE9OVvbE= ARC-Authentication-Results: i=2; imf07.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b="Jy/wua1A"; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=cSAnHFd5; spf=pass (imf07.hostedemail.com: domain of liam.howlett@oracle.com designates 205.220.177.32 as permitted sender) smtp.mailfrom=liam.howlett@oracle.com; dmarc=pass (policy=reject) header.from=oracle.com; arc=pass ("microsoft.com:s=arcselector10001:i=1") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1729693256; a=rsa-sha256; cv=pass; b=hhNoi+bkUbWHKLextWWKEofAWviaALK+clVJn6XHsT2ENpuHylrLLVIcAlWWCOYu4jz7OX rVvY8UPtysMMfNKCUl/ZpDECp7mCMGPOG23TMPgHKU+1OYbaTwAVRPPBOZVTJ3AmL7zL7q dTFnkFb6hGpmWny/1YkScCILSMnBpnQ= Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 49NBQYH2032099; Wed, 23 Oct 2024 14:22:11 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-type:date:from:in-reply-to:message-id:mime-version :references:subject:to; s=corp-2023-11-20; bh=4wSbRWmfpw609tJ810 eEnTnfCv7MCpwAcGQSn9IXd2A=; b=Jy/wua1AKnbQOA2O32n0FqHgnh/QefanoX EJ+5j7X1P4IMDGZBSm4aK5HPm1471ouIAPyKghtLgGOg3QVhbf2Pdt2CdVYWrKWG zDKYN0+qV1U3jWPhDRsvmNUQpfFD4Wrn559tWJffCzZ3XYqDNZbXbaTPEqmtL+xo WPPJIfKESPI9LqQ0sRxniWrPsK2tez0+vIMKToZdD0HiWj9y308sBRSg9XCinD6+ BucQrJOAYjcQhnGMlNXHKCh80N8NYskEAaDiLTYYz/uuXhAlDpP4sCMmSR/N4818 ny6vdcBPfgr8hGuTtUtSQpdI302Cf4YdqbFh2q+TzUB5FF+R+SXg== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 42c57qg9nn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 23 Oct 2024 14:22:11 +0000 (GMT) Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 49NE6gYb036236; Wed, 23 Oct 2024 14:22:10 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2046.outbound.protection.outlook.com [104.47.55.46]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 42emh2kfds-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 23 Oct 2024 14:22:10 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=qgU0mD5sEHXrKeoQMiEuV9ejOQdzsIZMYBwynpRdH1S2IaG8xKnVuREHBJUOOptL/2GER3bxWV5xVTJR8RKyAZ5NLb8mXXdlnqTjE+fW8OjW8Zhf+VKlvInO/S6TvDpenQWeVoX85tEDHPKVi89ed8fuvvBuvDQtoQ5xn5hHtWqviVazZX2JFE69DUdB93H+u2awRl9vX5hpIukvLkH8pitqWSaMcjjjZcl/jqaVzQ8YhvDyjIS1DDKN86MWEiXXzYOW+SOlwgzx1bpzQhZhWBDC5CJH3saSRXV96ai8Jh1b2yXGQuBWNeckmeq4yCqCxnXDwRn6TYQytiLYW/XYKQ== 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=4wSbRWmfpw609tJ810eEnTnfCv7MCpwAcGQSn9IXd2A=; b=ynbHUR6DV7AleNH8yOw4pySd2AgCgQnQDsBh+ubWTO8cafnlLw3w430NlmxFZT1tuxE6Qr1e7RAFeSSlrqhneiXBa+bNwY1ksv4Rh9VP4VZHMtjyq1ciFTvqeEeNKauhZJPmmHKMUgZudKO449gvyQbxMcTTEFnTt7+2FgyMXBClxzGj2NAmk5dbY8jg/xYqUO7N0rTsUCyfMlPvSHw2OD4WsWjAq01Tt2IwrN4ATeGSa2YXVY55TqroAoyUjR+/3YVVrXev6wEn2Jr81I6WYtUKJe5AnQ9mxVJVQ/gEht40lN0lh2qu3oN7bU4OyK2dDN0fokP270BLran7hUt03g== 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=4wSbRWmfpw609tJ810eEnTnfCv7MCpwAcGQSn9IXd2A=; b=cSAnHFd5KiVa9cGI2R4RJaVyW9tNHkA6hst7mCtM2g//A4LzqcuE1O7quFtZGLEgtPAbRBtjXpmgPGGUPyZQPfVMrnwDL/BA6XCyWpTDlSl2tMjYJaze9LNCORSOhVnGQy8BuW71fhfrzR61xTn4hwoI6Aa1iKAvLT3FrELYIy0= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by CH3PR10MB7394.namprd10.prod.outlook.com (2603:10b6:610:149::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8069.28; Wed, 23 Oct 2024 14:22:07 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%7]) with mapi id 15.20.8069.024; Wed, 23 Oct 2024 14:22:07 +0000 Date: Wed, 23 Oct 2024 10:22:04 -0400 From: "Liam R. Howlett" To: Lorenzo Stoakes Cc: Andrew Morton , Vlastimil Babka , Jann Horn , linux-kernel@vger.kernel.org, linux-mm@kvack.org, Linus Torvalds , Peter Xu Subject: Re: [PATCH hotfix 6.12 1/8] mm: avoid unsafe VMA hook invocation when error arises on mmap hook Message-ID: Mail-Followup-To: "Liam R. Howlett" , Lorenzo Stoakes , Andrew Morton , Vlastimil Babka , Jann Horn , linux-kernel@vger.kernel.org, linux-mm@kvack.org, Linus Torvalds , Peter Xu References: Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20240425 X-ClientProxiedBy: YT4PR01CA0499.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:10c::12) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS0PR10MB7933:EE_|CH3PR10MB7394:EE_ X-MS-Office365-Filtering-Correlation-Id: ddb2f196-e771-44b7-cc7d-08dcf36e12e2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?dsh1Qe5TVnmLlAYjo4RhQvNS/kWqjtGZzGhG3H/Rv1PS3p4u9z/BwYs1SS++?= =?us-ascii?Q?aeY5clFZ7iK38a0hfTRBQvifFuCZtK63KdWdjUmQxSy0MuD9SE7WbRIDN7Td?= =?us-ascii?Q?KBb+WF83ua4jb4BhyvVpONwjgyQt13BYAljH7XeRmZpSnUcL8fOvZ+DsyOEh?= =?us-ascii?Q?NuWkdzn2p+CR8aY2K513zQYnya79tqvd2CjqJpl7/UMc7mNbBaJwECPKbxKq?= =?us-ascii?Q?qhDkVNlLVbrPd/AIAbhgUl0T8A94yVX8YskWQdZeNa/3uh12+8bTSelw2DtY?= =?us-ascii?Q?kmztIvMAOwlO0HIaeRbxYP7oApLhKqWbraSLK4wyKBrg+I3yK7udw4vs4upa?= =?us-ascii?Q?MURolcBpsklaTUWpuQcWd/nuVHVU55FhFuvjfTQb7sKJIkPMVyZEisAMCgYB?= =?us-ascii?Q?H2nQWwD+fUtCEy0CnmvpGx19vTAa+8POQ5maUISmRebtir2FvvztrM6JxXyj?= =?us-ascii?Q?04ppJyXR3UHcgxOHHDAMQ2JTd23NUy4yoSXYTSsZcmp8sjxoHClww/UVKRBa?= =?us-ascii?Q?f1VUCZVHMm13LQ/bhnWhE2xm5iKWFV8XiDETY+n5qEyleEBv8AX0JrwCAAKr?= =?us-ascii?Q?mbDCEWxzOJqw8YLN3V1lmzbhnyl/CDwsUxqPimYaj5kBHv+2beMW2J9pt7LS?= =?us-ascii?Q?hYgpuOfIrD/Jlf8ZDiVL9t0muo83IlVYuW45HiptJ0LNTs3JQSmvouKvR4q2?= =?us-ascii?Q?zTpLFfYnwBknhy4IxF6InLc297VBhbJlGqEWUBcaQqNWn/rhB/zZ7qkZyYMS?= =?us-ascii?Q?M5DbLV41haHey+/1GCS+S8Vf3ZK+8/f+rTwRj1iAdTKVs4vfU0vMBveUSk99?= =?us-ascii?Q?8LJMfHoWmW8NNsg18S6ZzsPkhh8aaM4f8jmwPfpuoYJDhJzxUgtp+9Fr4puG?= =?us-ascii?Q?zDjEbKcdHKPxDiQ/sxVKr9TgDwU7BvIUHeUpta80ZyU126wRLDnuWYoeHlx0?= =?us-ascii?Q?uMNI3RXrPVWQxCq2wfWuGDpxhDssZb9XA7jNgKcfabdARyWHdMTqN9YRwRQ3?= =?us-ascii?Q?M4wY5BkqvvWLhvRE7qk8fulF/CTimF42xXS0TzTbATtfQBdk+1jsLRRtqnc1?= =?us-ascii?Q?hGg0tHAYlkpj8A2GEp8VV7nrDbMKcD4qWT/B0hs/3BoqI4LWCbD5gpMceAVi?= =?us-ascii?Q?rKl3+j0FPFUA8MmRx69Ynic9UfabOTPBLC6bosowU/k2/JWGNvjwcUYVG304?= =?us-ascii?Q?rny+Pm7yzQlxwO8lKlMBYWpa2qS6J9r85xXh6MU6kYt06WfsouSLzqnIXO5O?= =?us-ascii?Q?STzJJ1pSK5CwgXjtVSln3AFbXC8IujDNjuEO5QTMHYLVcbPf/03TqvKY1IZz?= =?us-ascii?Q?aDRQpiz1PscqvT9bPxF18H0P?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR10MB7933.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?m+l/LN14lZ8dMNx3LB20+C8NbEvnx5Rcn/VqI6gctQp98gE9xTS9GXNB8ig3?= =?us-ascii?Q?fQm1ZBVkelYDV+h+nH2T8zDKDG/LsJdHmt9joB7krhBe0F4uOBs1TFa7uAdw?= =?us-ascii?Q?RGZkYSj6U+bxHbJNrVEShquDACj3xeRbQYan05S/NjvLbrDk0h5V8TeLFbc2?= =?us-ascii?Q?eSqz4WxWxBkX16gbwNk0qdX52rCVSXOWb7tzg5w64WG2No/BbDRGCB/q1XKA?= =?us-ascii?Q?Env5yhnSvER3HOImH+wdwkXKAsNVXwF7ixBDYLUxFiq850Ve7qybbt/FbjLg?= =?us-ascii?Q?dP8viTzSWTPXzL7uTSbCqAgb1Q2xInSc9lYcs2bbmiaonSNRgRPSzoce8aS/?= =?us-ascii?Q?LsWdCLpqnrEDueWZ/4Cp/uo/0nfDPejxDCN0+ZxP27V60DxFakRk3LmtviC1?= =?us-ascii?Q?N+khVGW6/NbtF6u4K1YFQSYamVO8ISsukUU/3BpC2DSMJrDhpV9X5Bj/pXyk?= =?us-ascii?Q?OA/RNWqi0JCLhyO1c3eTAb69O1cJxIX0x8m7uSepg4bF1jRNuxGwpH206eUH?= =?us-ascii?Q?RCkIpykdCnj0FqsA4eqkc9Ljuj0qPr3QvSGFDoFrRPTTHiEPKbOfDDD/cv/R?= =?us-ascii?Q?Qrd2pdhdKA5mWc/U18Z09pDtN/OMRa2bP1lK0dwhgBxhuRaIPGKLOkmPiiQ5?= =?us-ascii?Q?egQUPKOM9jFee3uEn03WaLJl8vgXzVBXTtDw0i9xuFHb1zGsAMoaBpAokqrS?= =?us-ascii?Q?p6VXgLmDf0atOFiOsQc+NnFImUcq2yoSvgytzuahKKOMaiYlKju+Z9lpiwQE?= =?us-ascii?Q?Pnxf996n9QwLuW1Z+yIf0qaciekxjk3cyF3MIZWKTT9rh58SJ9zY4nbASmI9?= =?us-ascii?Q?svaDfnI+PVdzfrpj/s58COPpw4Ebfh3kTp8MyCfB0FNRTUWpCF/nPvN/Usfn?= =?us-ascii?Q?4bkLSMXOV4kB5r93cOPHtEgi9v+MxzNIB7xBN+GsCYgUXHGYAuwAtny9vnfW?= =?us-ascii?Q?bpo2t4Wx4WFZQMdb/4Ch8UCvl4SyzGTfNwyMOHWVyfzcsBbaxvF4PblwY2jJ?= =?us-ascii?Q?nHajFFqnDja4VX1flWHfyNkPXoL7XzDmmMlXLT3RatbFapMHzTs3cm6+uiJH?= =?us-ascii?Q?owbjerD6S3WeODdezZasqOGxoDDvFoVBbm0HAUpf30RaYFvoP51SXqpweHO5?= =?us-ascii?Q?fjjnBcuxBa2TFYuVhLj3Omr4fp4YInHdQsI1Fbr/uDm8YBPadXW931NRUHVx?= =?us-ascii?Q?LEQABDiGfq5DH70f6ZXQnMcPGLxXbrE63NpzdAc2R6bq4IDDKrzmdnua7vY3?= =?us-ascii?Q?/og33w1PeI3FqRl7P/iMYSmdrMHv7ytnYHMdpmdjeKwOVlzqn00NvLOui3A/?= =?us-ascii?Q?eSnbaU55kcimJ1E+nwOLi2ih8bmLWFE/QQYik/w+ubIJvoSgoRDo8S6d4Ph9?= =?us-ascii?Q?EyouzGQe48+5P0stZteH2FCEfRClgMYHNtj2FeHhXBsWQfYxfI+XxJi2/Fbq?= =?us-ascii?Q?j0KK8bnehzYLntreiLXsBkdFe+6EcqFwA60N85ohEaEpwdI1k9vgVH2rzO+v?= =?us-ascii?Q?8awfvCcNZWPIFD3ReXjbQ62bfMy/OiFDatg5TNdbbyS93TQWOTWPTYjUBcxR?= =?us-ascii?Q?KRdGUWC4BNl2swAUhFZVg3jFKgfvT4R+xuDchhbwELA8dpzAKUKzQsNaU/Wj?= =?us-ascii?Q?lA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: Qc0Q8taqF5IemnlICyyBCpTwdrnQUyDu62Jvy53BHVl9XtbN5E0ZcILfwP6e3xMZXOF+pyTQ+tQfcXGcGdFfH7d4VZy0RDU5NruCh7AqmEfi6p6pasAQ3avHTWZBDg3oei4HAeuI+epZmB9lm1bhQWKT3eoY2VvE9o1bIYT7m+FU8ZoL9jYJN22VyOGaTc+WzTh8uuO9h8RGAYdlx8ewoCH2yqtDBDD0t9tNnF7YueHy2Irz2nzpvr7nyn/aw87YxqEUBV8l2biUwU1Rw/Khxozckyub2DWmnmenyDAauQ5mCoZpcSrAkyXLIrBUKmsdV2qVlfoqxicWoqHujbdd0R0lAgJGkWOcUSJNj415nA63QI7siAO2xG/U4NlxkpX2Idi3mcINpJ2lTyQcQ6Lchwd1kCqrO4CNzuHrW8G/CBnlqL0dhcqwdA+HxiTX10R/cG/TaqfW909Ug8fN/fgGd4j3kQzpPO6QXDnlWSffS54IMTY0UU5F8uF5BEGQ0L5MH3X2iWFW3e/jhpEiC8wzAnib5tyAapACHl2BQp/rigvWS+m8Yd2FWA2ck+bJQWxv7ruFG+5ZKUQh9L2bhPiYkw5xwuOjrMKtxAbX5tiQrFM= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: ddb2f196-e771-44b7-cc7d-08dcf36e12e2 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Oct 2024 14:22:07.0559 (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: OuxBr3vFzrSVxUd6yHDJ8HK9EpdUbtdd/tpJrir8TMUQ3PqCXp1LMq8qCzoBho7v5jBKF31omr49Qe9+Vo/lWQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR10MB7394 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1051,Hydra:6.0.680,FMLib:17.12.62.30 definitions=2024-10-23_12,2024-10-23_01,2024-09-30_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 adultscore=0 mlxlogscore=999 mlxscore=0 bulkscore=0 spamscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2409260000 definitions=main-2410230087 X-Proofpoint-ORIG-GUID: 2IAMCwjTnt60QuaqGhw0XOoZj19C0_wg X-Proofpoint-GUID: 2IAMCwjTnt60QuaqGhw0XOoZj19C0_wg X-Rspamd-Server: rspam03 X-Rspam-User: X-Rspamd-Queue-Id: 3CE1540022 X-Stat-Signature: bidac7tma5kitk7dmosfayyydwfyk3nm X-HE-Tag: 1729693309-241596 X-HE-Meta: U2FsdGVkX1+xSDzMq3gRXwaz49iIeq5vdnVQIwTdrzmzWnUJOImhw7wjA2NY94oIDAQpZjU2MFUvywt56HPKXNibJKdktuYOwk39jG6RR+ctVhmO0fuiojmN+y98cAUXk6NYBoWK1VMwtcTrWNrvC8aQMiy13uDM+ojHVmFgoQCJae/LzIzWAIobgpqKgKjzR+sej/nYeB5QHqC3fUVV4PZ59RohCqgMiuczxZLG2zgY55BwKFb67jKDYM+VS5Ap/zPj9kw6qR36nN24RZ6trWL9DEYaLA+ZP3L35x8K2pjAdntH6xg/JEIWbBWr5jNRGSlVezPbCLi3K2Fhjj8+syA2YAOGNyKWHO8+e2YcWU/Wdvn02XJ9IQkaXqgggSlGFj2pCD1PvkGPAW+GUKUnajonPGaX0bLt1O2cT4lCFlxSPPnK1jTUWbaBdnQobozUYluf6XYAUrSu32IRlNmoKd6ePNiUjx7aGKT6kSM1n2K36MeDJh9m9EXG3GXXXv9poeOvunGSq5Jwsn7RRDyF6i7eDleejsZhG7ZsLL+eeNEPs4r8XZ0inunLHZ+c5nB3N8CnH0AjWIliBJAyMwHg0H4zGeDVTPRn5/JAyRibtyph7faTlr6/a4yBkpcCBlAmKSMfWt5kKW+QeRLMySRwCpr7CEZoQV0D5+YsHlpdKWQhOH2z3ibET/9FLO1dpzeBe5oVPUoEPydh0PouKGgwltw+/kIMc2ite7pDjf2AyrS10HnGGCp3uisVLNma6c6cedcrjbt2gqgjB+gox8EH3BGvWvl2Nwf1LXD1Rn95cnNSvb8X2g9+Xyy6w8r9Rs7owRcTml02AGmI5bpTMe7PejhxPpzyuTofQ3hdnyLOQ8LBho1FVzu2IKLS9Vj5cbBvtfjbtVZU0Q4ZLlKFoL0TMmVxn930qlsNgOUMlp1NIcfOFQ9/VEkxLQqAsRWFiUlAvOBtlq4VZwNuhwBClvA pMU5MTBU tXDhYW4tfskpvrP8nmKCUMIzILlpAdwesbPFNTnqDtO8vujSowOp9o9cZnDpQbRRRNtVOrN8YbMuAClAEgZFKm30rnNnGEEITkw5JpoFJnbp2VbSlfxBBB2vE3UAqCP21YAphVhPP2BHJ+06ItyPdkGEI8IJ9ceHUm12DSFWUn+H6pGWWgdMQZ8pUJ+IuqNOrgVTSmuiGRPmdVhuLuzx9VQ3xJoFkP4PrjZQaykPjj2hJKeUjRB3QW42tlX5VsDw5gGb4gRVuwlnFgY7ex+ysvvWLhuYxadJda5UpKyHBoT3WkGjWLXORWW5EcUHMorI0XDQKMg5IkZBai3cXzm+4sUx9bTLpKzlGj+VsxA2C85KMJ9zxyF4FhamaCJZSqi8ys4j6fMFO89KMOpL7UprC1Nl4zbBq4RAMSqzjc/lX15WDvBBifX977vBEs0iAyBcDGPK+h3HZ+0jAnwk1dh8LXMKfz+8rvS0dAPFf3k2fY8gfDKokn57xWuddiLrYabMZ5QLZLAc8JJAZnp8+USnq0OJTzIbcrlyKYpTWanWpSsU3XE6gt5waRC/lPYJ0v9i7i3sq 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: List-Subscribe: List-Unsubscribe: * Lorenzo Stoakes [241022 16:41]: > After an attempted mmap() fails, we are no longer in a situation where we > can safely interact with VMA hooks. This is currently not enforced, meaning > that we need complicated handling to ensure we do not incorrectly call > these hooks. > > We can avoid the whole issue by treating the VMA as suspect the moment that > the file->f_ops->mmap() function reports an error by replacing whatever VMA > operations were installed with a dummy empty set of VMA operations. > > We do so through a new helper function internal to mm - mmap_file() - which > is both more logically named than the existing call_mmap() function and > correctly isolates handling of the vm_op reassignment to mm. > > All the existing invocations of call_mmap() outside of mm are ultimately > nested within the call_mmap() from mm, which we now replace. > > It is therefore safe to leave call_mmap() in place as a convenience > function (and to avoid churn). The invokers are: > > ovl_file_operations -> mmap -> ovl_mmap() -> backing_file_mmap() > coda_file_operations -> mmap -> coda_file_mmap() > shm_file_operations -> shm_mmap() > shm_file_operations_huge -> shm_mmap() > dma_buf_fops -> dma_buf_mmap_internal -> i915_dmabuf_ops > -> i915_gem_dmabuf_mmap() > > None of these callers interact with vm_ops or mappings in a problematic way > on error, quickly exiting out. > > Reported-by: Jann Horn > Fixes: deb0f6562884 ("mm/mmap: undo ->mmap() when arch_validate_flags() fails") > Cc: stable > Signed-off-by: Lorenzo Stoakes Reviewed-by: Liam R. Howlett > --- > mm/internal.h | 27 +++++++++++++++++++++++++++ > mm/mmap.c | 6 +++--- > mm/nommu.c | 4 ++-- > 3 files changed, 32 insertions(+), 5 deletions(-) > > diff --git a/mm/internal.h b/mm/internal.h > index 508f7802dd2b..af032e76dfd4 100644 > --- a/mm/internal.h > +++ b/mm/internal.h > @@ -108,6 +108,33 @@ static inline void *folio_raw_mapping(const struct folio *folio) > return (void *)(mapping & ~PAGE_MAPPING_FLAGS); > } > > +/* > + * This is a file-backed mapping, and is about to be memory mapped - invoke its > + * mmap hook and safely handle error conditions. On error, VMA hooks will be > + * mutated. > + * > + * @file: File which backs the mapping. > + * @vma: VMA which we are mapping. > + * > + * Returns: 0 if success, error otherwise. > + */ > +static inline int mmap_file(struct file *file, struct vm_area_struct *vma) > +{ > + int err = call_mmap(file, vma); > + > + if (likely(!err)) > + return 0; > + > + /* > + * OK, we tried to call the file hook for mmap(), but an error > + * arose. The mapping is in an inconsistent state and we most not invoke > + * any further hooks on it. > + */ > + vma->vm_ops = &vma_dummy_vm_ops; > + > + return err; > +} > + > #ifdef CONFIG_MMU > > /* Flags for folio_pte_batch(). */ > diff --git a/mm/mmap.c b/mm/mmap.c > index 1ba0878bbc30..10f4ccaf491b 100644 > --- a/mm/mmap.c > +++ b/mm/mmap.c > @@ -1425,7 +1425,7 @@ unsigned long mmap_region(struct file *file, unsigned long addr, > /* > * clear PTEs while the vma is still in the tree so that rmap > * cannot race with the freeing later in the truncate scenario. > - * This is also needed for call_mmap(), which is why vm_ops > + * This is also needed for mmap_file(), which is why vm_ops > * close function is called. > */ > vms_clean_up_area(&vms, &mas_detach); > @@ -1450,7 +1450,7 @@ unsigned long mmap_region(struct file *file, unsigned long addr, > > if (file) { > vma->vm_file = get_file(file); > - error = call_mmap(file, vma); > + error = mmap_file(file, vma); > if (error) > goto unmap_and_free_vma; > > @@ -1473,7 +1473,7 @@ unsigned long mmap_region(struct file *file, unsigned long addr, > > vma_iter_config(&vmi, addr, end); > /* > - * If vm_flags changed after call_mmap(), we should try merge > + * If vm_flags changed after mmap_file(), we should try merge > * vma again as we may succeed this time. > */ > if (unlikely(vm_flags != vma->vm_flags && vmg.prev)) { > diff --git a/mm/nommu.c b/mm/nommu.c > index 385b0c15add8..f9ccc02458ec 100644 > --- a/mm/nommu.c > +++ b/mm/nommu.c > @@ -885,7 +885,7 @@ static int do_mmap_shared_file(struct vm_area_struct *vma) > { > int ret; > > - ret = call_mmap(vma->vm_file, vma); > + ret = mmap_file(vma->vm_file, vma); > if (ret == 0) { > vma->vm_region->vm_top = vma->vm_region->vm_end; > return 0; > @@ -918,7 +918,7 @@ static int do_mmap_private(struct vm_area_struct *vma, > * happy. > */ > if (capabilities & NOMMU_MAP_DIRECT) { > - ret = call_mmap(vma->vm_file, vma); > + ret = mmap_file(vma->vm_file, vma); > /* shouldn't return success if we're not sharing */ > if (WARN_ON_ONCE(!is_nommu_shared_mapping(vma->vm_flags))) > ret = -ENOSYS; > -- > 2.47.0