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 37589C52D6F for ; Tue, 27 Aug 2024 05:52:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A981B6B0088; Tue, 27 Aug 2024 01:52:19 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A46886B0089; Tue, 27 Aug 2024 01:52:19 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8C0976B008A; Tue, 27 Aug 2024 01:52:19 -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 6E4DD6B0088 for ; Tue, 27 Aug 2024 01:52:19 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id E14EAC15C2 for ; Tue, 27 Aug 2024 05:52:18 +0000 (UTC) X-FDA: 82496955156.19.D7A1F3E Received: from NAM04-MW2-obe.outbound.protection.outlook.com (mail-mw2nam04on2079.outbound.protection.outlook.com [40.107.101.79]) by imf20.hostedemail.com (Postfix) with ESMTP id 17EB81C000C for ; Tue, 27 Aug 2024 05:52:15 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=Abcm9bh8; spf=pass (imf20.hostedemail.com: domain of apopple@nvidia.com designates 40.107.101.79 as permitted sender) smtp.mailfrom=apopple@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=1724737893; 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=Qr2abrcD6moaH6o+af23nnFzf0ZOWl59WHBtD2yUEiU=; b=8RUNI/zeNDPTU5olNEom+9TNcuB239x7vHaO3hJaGz9ytgRU9HrNEKvRveD1TLBIpj9Djc cLEvRAEr3acCQR9TaDQHcyu9bHh/Q5/etAjiIBx5gu6dZO/nD+2P/M4TWXWGIBgLD9x8RW GOvhiYQcrOsG3XPqAJ3+GPyk6hVzdkA= ARC-Authentication-Results: i=2; imf20.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=Abcm9bh8; spf=pass (imf20.hostedemail.com: domain of apopple@nvidia.com designates 40.107.101.79 as permitted sender) smtp.mailfrom=apopple@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=1724737893; a=rsa-sha256; cv=pass; b=dAKL38RLLfcH5/ijNZiJ+1lE7zLBWeXCK2kgTNggmxC9dl51LqvN798MI13ZyKA1D5jYEB 0mVb2vVM/xZLX67gW4N0WemXrTtOJ5AwyRU9l4Xo/SKMjtwvoWEAv9C/hcvCb8YiCiflE9 IwPfcisXwamX6knaMq3dW1qMevgVVC4= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XWloUZBmNieZLVGlH0ZFTU5wV1sH49LP4Oa7UmJa4XA3vhD89sOLJ+Lm2R4bsuI+zOsSm66KRXlXsPrT9+pScg8qwr8NMNUc425ZpxTBhrNfhKdy7uNuosUyhHNkk0gSDdIEqndv2/uWseYqFtksvgcskVuBHSXw2Z/x5gdf7HK2TP9O/DcQ4c20KAQ6CmU2C8QvRlDwsBo9AoCXONmTBPQPMmDbB97wJ+C9VL7qQ2jDUwc9I0OBt7I+Rou8siw5qCBID1EraPYopIxb9C+1W/kM3qRXN/nDQh0tPF7uq96OEZ3i6x+XcBktP4M93Z4MAuVQ3+PBKcbH00iD/pnyIQ== 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=Qr2abrcD6moaH6o+af23nnFzf0ZOWl59WHBtD2yUEiU=; b=iN+0nMT86Sfa/p9XWoY0nT3Jso8gb0x5V/YXI5fiRUxQRn3pfUsw37GustRTJQbcvcdHBH/07nHqbtY/80g1/WhsUouUVDEO0NSB7y7snSd6iqsEDoaYPk8ylxcGEV3ucqqlysCBGc/d695HXNWpGCbHUydeHG+oh2pysAdj9Ll9uHUp1u9BtmhSKF8z7vvoYBMr45jwUzvwZ65A3NZempkwnp1xpAwwh7P3wyaAsgs6nFoESgC5m8AD0mXusedeF7GhTeTJq0hOZHCiZRbNZ/z3IbRF6+SDYs956M/aMBRlUn3aJlMK93GFy+BbGvwAcPratzWLYLNV6tNfyNgaXw== 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=Qr2abrcD6moaH6o+af23nnFzf0ZOWl59WHBtD2yUEiU=; b=Abcm9bh8aaZgEwAIBH8/xWMVvQMMzoxAzhTOrrAl3RosVilMAbIpYQZHtFzT6YDiKDmC/5Hi1LYjisUFrKaoVsk1xl4iaC2R7y8OeDh8AqYXVsAlXNneuIhiHyem3dSitFMlaEG6LKKhR2cpD0vfMN8Ovls/mQ6SPD/9/EDh64CFSvQLuD6Vy0uNtkn7EQscnogu2zxG8T42CTjoK82rYrfRWf9IpZPT2ihw71uA7Tcy6zeSFDtBn3DTR5iklFHkGcpcpJ3sQwsu6sMMmnHY2j0ACBkxDMSu1a5BYiBXI4XgMkETUUNJHpSWKBEZbzway9CoSB1Pryk6k/aZF/bG9w== Received: from CY8PR12MB7705.namprd12.prod.outlook.com (2603:10b6:930:84::9) by MN0PR12MB6272.namprd12.prod.outlook.com (2603:10b6:208:3c0::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7897.26; Tue, 27 Aug 2024 05:52:09 +0000 Received: from CY8PR12MB7705.namprd12.prod.outlook.com ([fe80::4b06:5351:3db4:95f6]) by CY8PR12MB7705.namprd12.prod.outlook.com ([fe80::4b06:5351:3db4:95f6%4]) with mapi id 15.20.7897.021; Tue, 27 Aug 2024 05:52:09 +0000 References: <20240826065814.1336616-1-wangkefeng.wang@huawei.com> <20240826065814.1336616-5-wangkefeng.wang@huawei.com> User-agent: mu4e 1.10.8; emacs 29.1 From: Alistair Popple To: Kefeng Wang Cc: Andrew Morton , David Hildenbrand , Matthew Wilcox , Baolin Wang , Zi Yan , Jonathan Corbet , linux-mm@kvack.org Subject: Re: [PATCH 4/6] mm: migrate_device: use more folio in migrate_device_finalize() Date: Tue, 27 Aug 2024 15:48:12 +1000 In-reply-to: <20240826065814.1336616-5-wangkefeng.wang@huawei.com> Message-ID: <8734mqjyww.fsf@nvdebian.thelocal> Content-Type: text/plain X-ClientProxiedBy: SY5PR01CA0004.ausprd01.prod.outlook.com (2603:10c6:10:1fa::8) To CY8PR12MB7705.namprd12.prod.outlook.com (2603:10b6:930:84::9) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY8PR12MB7705:EE_|MN0PR12MB6272:EE_ X-MS-Office365-Filtering-Correlation-Id: 594f7eef-9784-4028-ba1b-08dcc65c63c4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?1+1xUe2nwSzqliMCcG24VPx47KhobtpLgNRiu+dQOOWJODngs98rdpsCUYlO?= =?us-ascii?Q?trLWBSE3f76z7VVRFX8EEgJNo6mCUEhF4ZonHd+QAUSakxYFAw3Wt5rPWM2V?= =?us-ascii?Q?BtREc5wn5njCKcXZ/mk13vJ4+8A2MCTYfDq1255SscAUHjoNEtx8Ia8YJwDU?= =?us-ascii?Q?4CobF9dlWjuaLNBqUyvs8bytMEOsu2uNMMBQdWiHfhOT9r/uuLZ0hIQFZiJl?= =?us-ascii?Q?91z58B0MoV65mCneWLSlRzpl2PTWti4sotAtWA1lE9DI7VLtzauvGiN7RcXx?= =?us-ascii?Q?8X8/bcRy03DmTugS8u1Cf8h6MJrKuqcWT/0gHSbGv31aRYVV423MpZ4FMEqk?= =?us-ascii?Q?+ygqimmPMKFZN00NLkmcHKAKMAeKh8bD8ylZ6eE/Nk2UOTpzugXGx45ZYyu5?= =?us-ascii?Q?GPvci516sSwyIahRxLqZKG85uiJP1WU0fd15BkulWZ/h2I3CoUmv7EJNFVNE?= =?us-ascii?Q?Y4I/4TQRnoL2if6kDD4APXGqAYpLqFPFASbJwc+3Nb3J9cG1mhHJkqCPFPJE?= =?us-ascii?Q?9Uqzcg6VwAnDI2z6KizXOQF1R1G/6eWwETKnOWtjMKD+3fxpC0bpzkuwxqMy?= =?us-ascii?Q?7bXi2IKKYpGxk5qx16etiCUhHE62KFzsfvEcwR1JbhsehsEHFxtJhZKf7MNM?= =?us-ascii?Q?AZD/myEA+xr4oE4TcUmDLnGBZRj4Z3rXBxp7In+qlBmSUi7OUQWsZ46xspNY?= =?us-ascii?Q?3yXKNf1nwVM8xOBb5DqBx1xUrK1lU15wHoyu4T/YnX9araCq4KdHcoApvi/8?= =?us-ascii?Q?3Xvm2pUNISxAD9goAIG3NaxIL/PkFb2WXR8J7MbLNYEQ0RR0mns2bbEuWPCs?= =?us-ascii?Q?ViC3jCWHQeW1FP4+h1tVa2mxrpOUT+F6lViBmhis5nITR67EXo3EfVNDrRkB?= =?us-ascii?Q?E5n0mtLKUqsNn6CXDf9rsKsWsFsWIGdeODuHdBR5+iEu1l8JpxK6SIUhtELU?= =?us-ascii?Q?M6b5zTRGPdnacIGDcCSAaP3wx7E20zIzHGUaMhsiUmT3dDmDx4BQq35avYmz?= =?us-ascii?Q?cGbteSogPecYjLvCLJ2AAnq4zeZUvdiuyWE5hh88dHw/KVrjjcVnK1HWWbRk?= =?us-ascii?Q?jWcuWdPjmsPILVGp1Gee2Imv76V5SVJpMZNPc3UKLY7NC5ROtRunLiE64wLk?= =?us-ascii?Q?FgKiOGuCk0u+g/ZuWxWcRBHFGNg0NXBrUPX6utGzE2gIkB5zJnKju1nPjViV?= =?us-ascii?Q?1Dbi0hTcCiy0ASVoWj3e7LySOp+Tk4/lGOtwBnZ988aRCIFtFFVUJ56HmBXw?= =?us-ascii?Q?bP8Ent4dDqSMUX2A8QdAVNAcU0KD8jnZcd78b+NvdIOAktVoRu+UBte5hszL?= =?us-ascii?Q?f2qfbMa064azAx2PNkyYMeglP+RWyt9bjwNL2XbkkgmTpA=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY8PR12MB7705.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?CDF1Zvzrsm3FMAxZx795OJbJLnpMYfiI5usZGT6B2JFIq76UaToN+d/sjAme?= =?us-ascii?Q?LYj08TYL5SX6dU+bXyLPJJhhbWMqrG0/5ny31bvvUFdYJKPK7/69E6/LukOR?= =?us-ascii?Q?kCk3WCe0twfD9aCG3NAue1D15FrNbh3h9eSl9Wbnr1hp5vOjRrcjVtf4wGqe?= =?us-ascii?Q?AJ4ebestELuF2ixnBuCrfOBJwaO0pMe9rPxRgQgrmOKUpA8ssRytJSOu+g7Y?= =?us-ascii?Q?h7IO/K5L7S191r2cet69/56K4ERc7/cNkLV8vxarl0uqWzjiMVEm76zbtQam?= =?us-ascii?Q?UwNurzWVhpGY3d/Kt/Oqoj9ySa0agNngf4q7eQ5Fd15ov2Z4ieIUoqXj/jIP?= =?us-ascii?Q?m1RXBgxQOoF6YQ8XHR2O7W7HTqdtC7Hv2UeVg+tYH4ztZD7nfdzA9isq6KTH?= =?us-ascii?Q?Lz5d6Yr+LmX9z6PNbWb/WrybVZYCnyFIr2JC9ri+s2qxSqqUMvwTXubKMFL3?= =?us-ascii?Q?Q+ptZHyJIqU3hXydQ5Q9jPaQYqelLMukaFdrvYQy6uNmxVHdLznpWkJCnM32?= =?us-ascii?Q?t9vVPo5XAvoCa1G0OmiO4LNXdva69mTkbk6fqSzG6mJiCbFCQnkBbYNHLOAX?= =?us-ascii?Q?lpGV4JPHOacW2tVLqwoW9kbW41kIEkxjns9isu5LTwjZaypsOzdUulf9FM9s?= =?us-ascii?Q?e+UpkgcdoicG38+lTQ0NttoSrsGE5v+bwOrL7LfvKDlg6qyXE/exUX9ujmUW?= =?us-ascii?Q?V567M1SOxqoUPUJmZWqEDqY8dK+zWLqxZDevMkr8tksy2mlg3Z1Q8cUZGdww?= =?us-ascii?Q?zTbzTi2A7c9HauJ1cEmVmrlwAoyQfvsJcNIQlRfhh9bN/BQvVWHpgZVYfXsd?= =?us-ascii?Q?Z5N5gCdut7dRpvzRlAkj5KYhlU8fQx06Q7ssoxZ8vcuGFgpZduTUy5ON0hYU?= =?us-ascii?Q?ghyZ0M0XrskUnLvmjSlh+JHmGIwQfmc53z2ufEL3C019r/sBC2pNp0O0i/St?= =?us-ascii?Q?McKGybJtyaSOYClhT2v4q+4WTxEAA6cXcm++kR5whqqbtgUHGH94zUEjKpC5?= =?us-ascii?Q?tRRaWysNg+itw0w0m7oJpy1LFS6Xpu7cSBJww3wQuVwlGWVkNl8d3iCRn4WQ?= =?us-ascii?Q?pFJSQPKin8QoBWDfocqLLGh6igaFEYyr3KAUT6D9Zu5FskmlxnNKKpz0G8+j?= =?us-ascii?Q?j+ElYcHRjoeCUyCTSyLXt+GgBa5Ai13RGW5CEAwF0eoFWorPcRtld0h5F90Z?= =?us-ascii?Q?GW0fiOt8jCmvv+LrRIr4pBTKqJHyjXLQe7oXYTbPWY2PlVlDhopi04O0ZWty?= =?us-ascii?Q?OAczgmmiOLWUTgbVL+roW4D/fX19FkVSXHt6pVJgUiPZdBrRXmscC8z3OO7H?= =?us-ascii?Q?pYXw0jnHj1syhwW8evtiQaGmXi8ei4JTg8gPsbZZYvesqfSkogdaLB1hA0IQ?= =?us-ascii?Q?vh7Htr/rNj3g65PPKiFAewBPeVgfoSHe8Wpiyg7OgJ6oezM64FSEKKjTtEoZ?= =?us-ascii?Q?p0v0M5VU9YsDT3rC5HodwYdl0/JBSQrB49Vj5m7AhPsgUjNsH77WMwMccbVk?= =?us-ascii?Q?p8KzqhXOSA95fmImhUfxElmWxEL/fcfPjzfdQchZRq91y8RJAjQWD9Py8iTB?= =?us-ascii?Q?McMsauqJhtlq6wb1B8nM1Izm8ri/UFgUhYJUv/ak?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 594f7eef-9784-4028-ba1b-08dcc65c63c4 X-MS-Exchange-CrossTenant-AuthSource: CY8PR12MB7705.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Aug 2024 05:52:09.3547 (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: hn5yMQdMrZ8RuhTf2sChcAt4k8H/IgC15xgHtGBY6HGC9N172LDt5aHC1rw47X8VjjmoKj4y7BMCbfZSAGn0Ng== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB6272 X-Rspamd-Server: rspam03 X-Rspam-User: X-Rspamd-Queue-Id: 17EB81C000C X-Stat-Signature: rm3iqb5964qcuzbbxgaodbkpxrrw66fu X-HE-Tag: 1724737935-51987 X-HE-Meta: U2FsdGVkX189msHppwLv+20M2vD4UD1i4V5Tt6aBmYMLeCW+d7e6O8ZZGYNhHNAOjq2P5Ok3hs5Dlqa2idAfuXMSZj0Ww0/DaEKk28jKlob/zGOWapK3yj2lzKY0+pKjeKop45qRoQxKOpzOdUtePgZ6rA1KeUIBYSYmaqPcqGyjIbAv2zu9IhLVSe7YJPNVmPJKSmet890h/22grGJtHIZLXPpM9OKFtLcCf/mm63XA8JglYO9xuda+VcotujQtQENUYNC6ru+W6io/ABh1n556ywhbFsOkWqaUR+UPXdi7G0/MQLXHDmndlRjvzI9pR03dxn0D810Cu/8TrjpfPgydENfRxwsdD1gJfcSf7WCEIKIYaGzmym191Rdmfl7ogthNLzjVAr6GPjg1rgRa1WYLI57ZKxSFW6OIO7EqC3I/knNnS4MdUwODcEkmgtScsdl05Ausw9N1g8UuQ5xfZve4eYsTZa+ch0btwnGrXNhAgqK8vmYkfxCZyD+cdyipgfL6MUtscrhGcZje5cxLkdcB7n2Dxw8GHpyfMipLHo45omCOBC9UBTGmzc7KlZxelCWjKsAtun7ZHvXojwmjniLOPMEvUquLx45chzX0LcCk1lWkl/mYqX5nFoBUYvAo2QPbprtr9CGMCFH4q+9LzyJ1/3AFWV3mr2e2z8pj+wEseogZZcYOIt5M2CRdmca5Q6j6ATqiI3ChtvqbG1IEIf1tggU/80kE0ZZ9s7G/uLepgCkh+qYtgNS66+YQa9oKsot9+R6MlkSRRkS1w3PhT17X6NhLHFOI5GLhmO/hinj7cPldcpiBM4DpiGyDTh//jc6DCvzl5PARSB9Owa+HKF57Hg/KEVZe7tVBmcoHBQsYEB0AMqKfREiIe4qDO8m69qPWPiRVrqtGu8Wd7rF0oHMIr6a2yX4WZkS/KvTJggWX0nGZ617DXwYNgDTDYTnaRmc4DTEpwbzh3ICG1Qz WGS+cKMQ Mze5PQ510zIbXnAhpTjS4mw8OTWNuRWrTUItQD4/CZ2dZwm0A9QKi4xDnlMVnoL2/y8vreF3z/mrBM+iAX2xpcnxYIBneC9cixcuZ4gyO9KbjSx96/pUSEtQAq+7KORNm/ZHuPEQ/qWIqf9x1Hpzz67wzO+tBntQHX+OYi1n7QfQxvulVBMAIZfgkooNOjeUx4twg60eWG1yiUEm9/WUcoIrq+4kEbxZXIZ4E4MW3rXUYa6YkQKUnTCriV2cWyUQEUeSA 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: Kefeng Wang writes: > Saves a couple of calls to compound_head() and remove last two callers > of putback_lru_page(). > > Signed-off-by: Kefeng Wang > --- > mm/migrate_device.c | 41 ++++++++++++++++++++++------------------- > 1 file changed, 22 insertions(+), 19 deletions(-) > > diff --git a/mm/migrate_device.c b/mm/migrate_device.c > index b49f4956617a..6ea3d055f520 100644 > --- a/mm/migrate_device.c > +++ b/mm/migrate_device.c > @@ -815,42 +815,45 @@ void migrate_device_finalize(unsigned long *src_pfns, > unsigned long i; > > for (i = 0; i < npages; i++) { > - struct folio *dst, *src; > + struct folio *dst = NULL, *src = NULL; > struct page *newpage = migrate_pfn_to_page(dst_pfns[i]); > struct page *page = migrate_pfn_to_page(src_pfns[i]); We could probably simplify this even further with a migrate_pfn_to_folio() function. I'm still working on extending ZONE_DEVICE to support higher order folios though (held up fixing refcounts) so this can wait until then. Reviewed-by: Alistair Popple > > + if (newpage) > + dst = page_folio(newpage); > + > if (!page) { > - if (newpage) { > - unlock_page(newpage); > - put_page(newpage); > + if (dst) { > + folio_unlock(dst); > + folio_put(dst); > } > continue; > } > > - if (!(src_pfns[i] & MIGRATE_PFN_MIGRATE) || !newpage) { > - if (newpage) { > - unlock_page(newpage); > - put_page(newpage); > + src = page_folio(page); > + > + if (!(src_pfns[i] & MIGRATE_PFN_MIGRATE) || !dst) { > + if (dst) { > + folio_unlock(dst); > + folio_put(dst); > } > - newpage = page; > + dst = src; > } > > - src = page_folio(page); > - dst = page_folio(newpage); > remove_migration_ptes(src, dst, false); > folio_unlock(src); > > - if (is_zone_device_page(page)) > - put_page(page); > + if (folio_is_zone_device(src)) > + folio_put(src); > else > - putback_lru_page(page); > + folio_putback_lru(src); > > - if (newpage != page) { > - unlock_page(newpage); > - if (is_zone_device_page(newpage)) > - put_page(newpage); > + if (dst != src) { > + folio_unlock(dst); > + if (folio_is_zone_device(dst)) > + folio_put(dst); > else > - putback_lru_page(newpage); > + folio_putback_lru(dst); > } > } > }