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 C28BBC83F22 for ; Wed, 16 Jul 2025 15:24:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 672C48D0002; Wed, 16 Jul 2025 11:24:19 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 623D38D0001; Wed, 16 Jul 2025 11:24:19 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 512CC8D0002; Wed, 16 Jul 2025 11:24:19 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 3FE698D0001 for ; Wed, 16 Jul 2025 11:24:19 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id DDF7658BAC for ; Wed, 16 Jul 2025 15:24:18 +0000 (UTC) X-FDA: 83670498996.28.125BA44 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2059.outbound.protection.outlook.com [40.107.93.59]) by imf04.hostedemail.com (Postfix) with ESMTP id 4437640011 for ; Wed, 16 Jul 2025 15:24:16 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=EmKpL5Sc; spf=pass (imf04.hostedemail.com: domain of ziy@nvidia.com designates 40.107.93.59 as permitted sender) smtp.mailfrom=ziy@nvidia.com; dmarc=pass (policy=reject) header.from=nvidia.com; arc=pass ("microsoft.com:s=arcselector10001:i=1") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1752679456; a=rsa-sha256; cv=pass; b=LeSeu/vRIGIvIM5xjaFjAFsA67kkQ72QqwLD/g2rmWH0PGFSy5LNhwXoJw4rKzch8Y2IK+ rIUYTpP9UUpnaiBNtlCoV20Wswi8/t3qtzjeO/Rc9ENgqFpVarkLwlcGVVj0NfhNO8yYum WYOztxEEMH3h628iH6XsiSwOTSv2jww= ARC-Authentication-Results: i=2; imf04.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=EmKpL5Sc; spf=pass (imf04.hostedemail.com: domain of ziy@nvidia.com designates 40.107.93.59 as permitted sender) smtp.mailfrom=ziy@nvidia.com; dmarc=pass (policy=reject) header.from=nvidia.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=1752679456; 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=7o5qCmwc76VIW04rpohiwFYe3PCPMj0fUI9DX2vIaI0=; b=hLwRuXxcG8yuF67koKCU6BZ065Qyn4Qv5YHG5tQZYUqAa7Au5xvQIk/gFMxSGcPuV/jEqE 6O8RC7l8+mGPRCNqIfqCZdJAvmyZJW4kJC3E7LXtQOwbmSrW+SymKTHb9P0fb936peIZt/ 8+JmvbukjWX9iV8Hr2uKGjCn0w5jPbI= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jFv7lavW068TOFuh3I5gne1ciHyKurvPwAweTPZVv3tYk19YO/7Rwt3IAEfSyyOKr5ye7n2rjrusGKa3htoEKFslQb7onMpcz5zM7yECkByBwPti05B3k4n5LnATSNDgAkN5juqDm8hFCRG6EqxsOGWJtJzGRk+PWkiujSp7RV3M8swKLhWhp8ScNGs7b/h4iQBJbgvXdiReulXjOV4I2zPEPJbikbG5/H+rb9tpEz6xMcKER3PlK++wgHjgFuJCuzfuiimzGgPGTZWNW5tvzcG9ajWaE74B5HrDTyuw6CmVGpXKe+dk47hzYq+Neol8vk6Tvvqf+0PpzbsjVSR/lw== 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=7o5qCmwc76VIW04rpohiwFYe3PCPMj0fUI9DX2vIaI0=; b=smGaH0pBVwKaUThNNsyClHSO7t2HrX3mRB5Q8nh/yMx43jXrRqAGcEQaQ10CS4nONx9wfDGw8AmForYrPuD+cQoTwUPX6OOTQdBPBUbffpchBS2uQdco2/Ioe3jl++hRsxK4W6zpDrBa23p/1m6MeRFSuz3QHZN5dRJD0RCk6uSTo1VUW5jiOmpPZABex8hH8L1jNsUmFHg2wIGRhu0/M/ATZm3FOrOil3Y9HDLOPqodr619jSpigcq+XDvXWrAygRnMOPLQ+QGh4aQcRBkYdR0W1dBZVaJvQvtpLDgHRWqdZdDhlSgZoQFssWK6213oPMJOhmUd11Vtsfp2vh3APw== 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=7o5qCmwc76VIW04rpohiwFYe3PCPMj0fUI9DX2vIaI0=; b=EmKpL5ScP0eds75OGA8HklA49tVNsgjFrggXzvKqN55hYAjHyN5mGwUG/tk+UqOOeJXOn1Q2omWJtUj32lmPb497Layn5dT5O8qX3/iMMMZ+judxZrqulHeyTPTiUcvxpCZbpNkJC8GlZEWOTLwDKygV8X6dJPf4Gc5aKA63SZ9XX8TZdS0yY2Jtfj+V3lXJHcObyKV35qov+46SFuuLdUmRciXtKDZyowIWzLZ1bhsatknN35e70CjZehp2ct7Ga7O7axcPpt5AW854P6jq+/ez7ecybO9gCJ4L7G3FsQIv4Au5eLlVMyKENcaPwXFwoClR3vs67ECNGjT7BpfcOw== Received: from DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) by CY8PR12MB7732.namprd12.prod.outlook.com (2603:10b6:930:87::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8922.32; Wed, 16 Jul 2025 15:24:11 +0000 Received: from DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::5189:ecec:d84a:133a]) by DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::5189:ecec:d84a:133a%6]) with mapi id 15.20.8922.023; Wed, 16 Jul 2025 15:24:11 +0000 From: Zi Yan To: David Hildenbrand Cc: Antonio Quartulli , linux-mm@kvack.org, Andrew Morton , Lorenzo Stoakes , Baolin Wang , "Liam R. Howlett" , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Dan Carpenter Subject: Re: [RFC] mm/huge_memory: prevent potential NULL pointer dereference Date: Wed, 16 Jul 2025 11:24:05 -0400 X-Mailer: MailMate (2.0r6272) Message-ID: <120D580D-43F0-4B71-BD03-A74CEB65889B@nvidia.com> In-Reply-To: <955c523e-9eea-48fb-a604-9ec445e563f4@redhat.com> References: <20250716145804.4836-1-antonio@mandelbit.com> <955c523e-9eea-48fb-a604-9ec445e563f4@redhat.com> Content-Type: text/plain Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MN2PR05CA0013.namprd05.prod.outlook.com (2603:10b6:208:c0::26) To DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS7PR12MB9473:EE_|CY8PR12MB7732:EE_ X-MS-Office365-Filtering-Correlation-Id: 634092ed-5b9a-47fb-f37c-08ddc47cd083 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?CvB8KF/Ssp1sIb3XvuHcYbIMp19PaB+JSEBTWeMg4MsaTRkMiChB951JazUf?= =?us-ascii?Q?5jf+4mLK8aha8HS3teb53mUomowJ7RyXEVHKjHHAFqmlf2/77aKaf1lmURib?= =?us-ascii?Q?U7wVJlsj6HbxOvM/H8UA9IVndYd+8qA0USrQ8bwhR55i7HyayeuHqOBesKY8?= =?us-ascii?Q?fQ7d8ofrwJGPN0gTQvRz3GvUnlFdlgY1zzHxcs98HJtH2aAxfKicgSQUmTBW?= =?us-ascii?Q?1RBWM7aOYV31pfviC/NdMFX6YIy3eVS7b6pm+Bbx8S8i6EyXVrtQriweVxDg?= =?us-ascii?Q?oPmWTm5eRBN0Km1SMeFw0x34h9dA0RuShIBcolBNDhbSi4yGW1h3LP/N/4WK?= =?us-ascii?Q?IspUPNcrZ7uzxGULtUY8LuuUN2NaJf3SdDWYt4ofwUlzKcLA7nsdgzqzATo+?= =?us-ascii?Q?fEcWcZi/Z3Y/AZlHwc32ujJHknt+B5uyqhgtP0T57ttjwcCBQnGZl+ImaK01?= =?us-ascii?Q?zv5nWIxZriBQ0dZut4jwQwd81j8HrlDmQIAu5qRd5Mhi8cTF6/EHcujoRTBH?= =?us-ascii?Q?g9HDoulWpCJqIFbC8v3xZbIQMs/Mw18QbpxBd+r5dpJPIxgtjRBTJOKGpi9q?= =?us-ascii?Q?EtB7X91Wq5beRq0AECMyS6yrzoe6CbHEGXylXZafXsrLbc+GIxsGnDEtQXEv?= =?us-ascii?Q?894vOHOn+eBL/+aMilAMVtuIkJHjxoxCe55QFqjPXIs7Mu8X1GdYX06onxCO?= =?us-ascii?Q?BMGFUFzWgVRKy0csxdR2svcXh++J9HMl9mt6HqORSOsKrqb78NP3HntcRDyF?= =?us-ascii?Q?ZKIhO4UsP1xz8ymuEemzPIlv2HrtrsgLvi+kka+f8uPzrw6CP4ngKOOtyY2g?= =?us-ascii?Q?Lit6BsfCeH6MsjjjnXhioHkokK/dPrTI8gffrQPftbVt9rphrdlFM7u0CFdw?= =?us-ascii?Q?12GfQH7Z3x9co7h3eTWQQIxoc9a73HhAskiFGbKaP0qpg/ZwQuX96ErYEEt8?= =?us-ascii?Q?h57lxgvBHpoFAqy5lt3ea380y8bGONTWlF1dLwUMUXbQNRv9rOkBXGA4Dkox?= =?us-ascii?Q?2ge0hzZxu+lMhOuYXBlg8Rc0BF8UurN+yDHRHtaZoLdgEYWl8zC0uSxTTXWA?= =?us-ascii?Q?d8sGdTdsJPw9DUIGa0ezzXa9o4ts3cj0DfFw5ysCCK70yHQKaf4GCLY8Aftq?= =?us-ascii?Q?3sH8jo+JgNvRoAM8Pu3eBZUyBjLN7DD5XH3G04pcnnn+nUc/K7uSDXC26CfO?= =?us-ascii?Q?o0hqOo3MOptTwdIwkqxXxDfXzhhGgj+YwoytEcRFc3r9WIvJfxjVN7JmCqfH?= =?us-ascii?Q?ePBGl7IPFnBVmTJbbI/qx/Uv50JvYiu0ANbFWBeBWVv6MS0LMW3rK2rg6Zc0?= =?us-ascii?Q?Ja4ql7BzsMiu0ujgMUvVtUAK1+JZClBl7TKWUPgKh7bGtR1eeSTbezc3nkXQ?= =?us-ascii?Q?9PYsGxh+P/cUup5ZunHPS+SN+XiJoVqYjz953vQYiSiBOoCo5xodXkIutmTT?= =?us-ascii?Q?7IrBBmF0S8Q=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR12MB9473.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?QfTWBpLXAplGyMIeMFtOl75UY/ths7s11QX2thIqV52yMPOUG76yj6mXFJzI?= =?us-ascii?Q?3G3khjFCMoBc/tlXQdOv/ccwwaSAkIrg5TC4Xoc3ePEUjKyBE/9e4mjsXsXa?= =?us-ascii?Q?JXaBX+DSgmwsJ9UmTZXVdwjiCdWp1MkEuuzYozvE9b9eFmBIO/WepYlBsyFd?= =?us-ascii?Q?sblhr16ETzxThIpaqpMk95ByJzyyDgzBdhJx1wZTy+p+v+2yYsnbnel4NgM2?= =?us-ascii?Q?8fJxDlrDFOt13zjIctds85aeGdIrHpQkkJijCsWuAI6zGg/PrKy3LkboY4eG?= =?us-ascii?Q?pW7uXH0us6/vnlVeD47qt6pLTOuGPgqFOH5lsXpo0H6cIgMXrZAEJmCk9nO+?= =?us-ascii?Q?/xQirayXNnc8qc3qbOEZTsUGKvBS8wYNrZYjfAC67VmDoHuPGYws0K/BHSUa?= =?us-ascii?Q?/QbMfjs54LKOVEhAB3Ig5bDwJcqoTj/jWIh39inxz272nmRPk9zAx68rNi9x?= =?us-ascii?Q?nIjaIEoWaIvy+61o4tMgG1jJ71uJUdE+IkRFCT1VdwM7lHH/X7/K8ftgG60b?= =?us-ascii?Q?EvZyp5ZTK3l3XMKFWKwp5EDfR8SkGiSPDi/jyZ8AKW7SOSDUUm4hYD3dMTse?= =?us-ascii?Q?YxT9GbBwRQ2v2DZyJuE0B7OtwbqjTzE+exC6qN3LLW9yHyBhXh7Cmgo6I+dg?= =?us-ascii?Q?ek4g5I9kgiJYv4gEOD7ERIluVxR9Vioedm9wk7i/HNpKkAarQEPo0Bs+a7aN?= =?us-ascii?Q?5NEYRCeUrTZAJY4DM0NNGjiTgCBTE0dPSqHjV8iBj6Z4jKGnLbhURwVA92LE?= =?us-ascii?Q?PjLZaEA3b1npAXLLrd9b58kHZfGMHHl/sU4oLmXb659hc47OjEUgue3E3cP+?= =?us-ascii?Q?bs3imdVCiPJw8V2oCIVvYTj1Av8wTDECLYtENqpHQ1N/129YaHxiruDnqnsy?= =?us-ascii?Q?gTHrgfCyr+YXdI95RyCRld/ByFT4RbRgzcKKGyb0qU7rF+0KGJqHf0hlpR8N?= =?us-ascii?Q?PSYne8tGrIPuvCNbDUnf/t/wKg9OeNK9eU5ux9YCmRQuIrnH6BS4R2R+tBVn?= =?us-ascii?Q?phk8L9TEYYnIs0ZvT5Uated9BdJe87txlG+K/VXooFEsn0ON/oAm4Y42GSxY?= =?us-ascii?Q?fRJITArnySgRpiDxDVP9evhQFe2qNn+PhCMpfMCbQnHf3KSxNpebE2mP0gbc?= =?us-ascii?Q?LkxfgaeaP+sidEO0EtF0owCDkSQxZePQ6nbWIQazk8u0LPmZQq+rXIsGRvsf?= =?us-ascii?Q?xdsZHWpvukL1onAzlu9TRKAUhSyc+Y9riaiYr6wKGfaAEVqMgi63ZfA8g4zD?= =?us-ascii?Q?hwzq/P8prcONHTb6yJoQ7bzLXrmfHYnpGVXnK+Ot6AlVH2m6a7mM1rK18u+P?= =?us-ascii?Q?UByjCZdJT5ABMelXQegk7Dm9IJLxHij95JSzw8BfzVLir0kmCbKea5kRpMCJ?= =?us-ascii?Q?yUZoRs7MMR6lGMlNOUi+W4l+ix19ilizvA6yr8qQvypfERlZHEg15dmP+ocI?= =?us-ascii?Q?lnRxef1eimscMp/M+rSauQBT7VhppZcXw2AwkFDMaMv13YTyO8n988qmH02Q?= =?us-ascii?Q?CeK6wgN9eP/ReFoAY/O0/umSNzAzK/W8Bi8Imz9HTvJKIxdAAFuu5k5HzbQy?= =?us-ascii?Q?gy+LMtjW+5FEmIh9A9GSaZJSeK4jLFbw9vyqhsVW?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 634092ed-5b9a-47fb-f37c-08ddc47cd083 X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB9473.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jul 2025 15:24:11.0998 (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: V3B3/D6Kigmm6p3E+naYPGgJ5f2ryYU3TDwoKVBvIZBciWd76tJnOgbkWuzHutb7 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7732 X-Rspam-User: X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 4437640011 X-Stat-Signature: fzmniqiy6u93xp36g4pykyhbdyc5mbqi X-HE-Tag: 1752679456-614572 X-HE-Meta: U2FsdGVkX19NQQEQZ7KfrWGaGKpwnwGlR2QK7zo4kcr0CNrX8VixNCpXJzWidOSv5GmCnrxfKzq9GtlgAfl3S1YFHDxkwkH+EOE9Vyd5h1Ta/zdsmhtVh7Bm2Q3sprDjbmiOBKFTB4I73VdSpy2I6rI+tOxa1dwGZ3iG90JywHq8VkC86MuzwmEl+SQ9od9wTs/HfIhaMqnX3/SwdexLVWUerkXUuRrdye4pMcOdSueAJzNJnW3WmYR1TdgwKBJi2laOi1JWhWxyvWmGTR3ztc/PVzAvKTBjKa9T/0N/1+22BUm7J33n2nP7KZxLngN9gWP/XU5JOvWcU4GYKuLy2wAfke1dVqnI7cZTtD65EIHFrHHam8Uk4McUnk4v7STzZTjXayCD/JdfS91cK5bEL98tdqTbVqgFheWqEId2UzDymL7+/W8/IIuyGhJT07meyRhd5H7J5ARtcbWBaKHwMJcC8iaYw0uq/XuJem7uLgqXZ/zv5Glcw2Gme1YgF3AJbYpMtaEeolKOHGODJV7rHdxUImqvRaiwnhGdmi7+xUpXPz35oL8P1DXfc0wa82ZwI65nWC5r8v3Se8mzz09i5LA5mkCbqmS/njaA1NwZIwBAG92PiWfWoQpyyJVaTjlSkxPbAYZGbBxUvNbLR1GVK/bN84kEvaipuz+inaBNkKWvBcJS5/qgHKSrLU5+ocoQ5xC/8OzLbSoUUjxxqcP5LsIRzJb5I4W04OvrQaNOdFHg0zE87E8ESmAi66lYtOmbt0TBUtTF19RqzVSnwxlawzCYXBLKjxL6DDA5tv9Gv1svNEExuUdlLGN6A6ByQUgViE2WXyozizMYm/dtunKA+ju3EnjVOTdFU4agf69PxhdNmBBlC0XLIyWmNU7b28OtD/02HySFx00ot2PilTyhZAiWb2AAT9Al/drWBiJoInwv2gujO9rIraslRBaSWkrWZpzlKqWN8EY= 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: On 16 Jul 2025, at 11:18, David Hildenbrand wrote: > On 16.07.25 17:10, Zi Yan wrote: >> On 16 Jul 2025, at 10:58, Antonio Quartulli wrote: >> >>> I just found this issue in the last linux-next Coverity report and it= >>> caught my attention. >>> I am not familiar with this code, therefore I am sending this patch >>> as RFC because I am not 100% sure whether this is a false positive or= >>> not. >>> However, it seems potentially legit to me: >>> >>> In __folio_split(), when looping over folios we dereference >>> `mapping` before ensuring it is non-NULL. >>> >>> Following code in the loop body performs such check, thus >>> suggesting that `mapping` may be NULL and accessing it >>> without any check may be dangerous. >>> >>> Add NULL check before passing it to shmem_mapping(). >>> >>> Cc: Zi Yan >>> Fixes: 00527733d0dc ("mm/huge_memory: add two new (not yet used) func= tions for folio_split()") >>> Addresses-Coverity-ID: 1647614 ("FORWARD_NULL") >>> Signed-off-by: Antonio Quartulli >>> --- >>> mm/huge_memory.c | 2 +- >>> 1 file changed, 1 insertion(+), 1 deletion(-) >>> >>> diff --git a/mm/huge_memory.c b/mm/huge_memory.c >>> index 389620c65a5f..d649026db95a 100644 >>> --- a/mm/huge_memory.c >>> +++ b/mm/huge_memory.c >>> @@ -3802,7 +3802,7 @@ static int __folio_split(struct folio *folio, u= nsigned int new_order, >>> >>> /* Some pages can be beyond EOF: drop them from cache */ >>> if (new_folio->index >=3D end) { >>> - if (shmem_mapping(mapping)) >>> + if (mapping && shmem_mapping(mapping)) >>> nr_shmem_dropped +=3D folio_nr_pages(new_folio); >>> else if (folio_test_clear_dirty(new_folio)) >>> folio_account_cleaned( >> Hi Antonio, >> >> Is there a way of preventing Coverity/sparse from checking certain cod= e? >> This non-NULL mapping issue pops up every time I touch the code. > > Probably we could make that code more readable and achieve it: > > diff --git a/mm/huge_memory.c b/mm/huge_memory.c > index 24aff14d22a1e..acf56aae1a2ef 100644 > --- a/mm/huge_memory.c > +++ b/mm/huge_memory.c > @@ -3775,6 +3775,7 @@ static int __folio_split(struct folio *folio, uns= igned int new_order, > */ > for (new_folio =3D folio_next(folio); new_folio !=3D ne= xt_folio; > new_folio =3D next) { > + unsigned long nr_pages =3D folio_nr_pages(new_f= olio); > next =3D folio_next(new_folio); > expected_refs =3D folio_expected_ref_count(new= _folio) + 1; > @@ -3782,20 +3783,20 @@ static int __folio_split(struct folio *folio, u= nsigned int new_order, > lru_add_split_folio(folio, new_folio, lruvec, = list); > - /* Some pages can be beyond EOF: drop them fro= m cache */ > - if (new_folio->index >=3D end) { > - if (shmem_mapping(mapping)) > - nr_shmem_dropped +=3D folio_nr_= pages(new_folio); > - else if (folio_test_clear_dirty(new_fol= io)) > - folio_account_cleaned( > - new_folio, > - inode_to_wb(mapping->ho= st)); > - __filemap_remove_folio(new_folio, NULL)= ; > - folio_put_refs(new_folio, > - folio_nr_pages(new_folio= )); > - } else if (mapping) { > - __xa_store(&mapping->i_pages, new_folio= ->index, > - new_folio, 0); > + /* Add the new folio to the page cache ... */ > + if (mapping) { > + /* ... however, drop folios beyond EOF.= */ > + if (new_folio->index >=3D end) { > + if (shmem_mapping(mapping)) > + nr_shmem_dropped +=3D n= r_pages; > + else if (folio_test_clear_dirty= (new_folio)) > + folio_account_cleaned(n= ew_folio, inode_to_wb(mapping->host)); > + __filemap_remove_folio(new_foli= o, NULL); > + folio_put_refs(new_folio, nr_pa= ges); > + } else { > + __xa_store(&mapping->i_pages, > + new_folio->index, ne= w_folio, 0); > + } > } else if (swap_cache) { > __xa_store(&swap_cache->i_pages, > swap_cache_index(new_folio->= swap), > > > Having that logic in a helper would be cleaner, but not straight-forwar= d due > to things like nr_shmem_dropped. Looks good to me. Do you want to send a patch? Otherwise, I can send one.= Best Regards, Yan, Zi