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 8D1F1C64ED6 for ; Mon, 27 Feb 2023 05:32:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B91136B0072; Mon, 27 Feb 2023 00:32:42 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id B41666B0073; Mon, 27 Feb 2023 00:32:42 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9BA9C6B0074; Mon, 27 Feb 2023 00:32:42 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 8D3806B0072 for ; Mon, 27 Feb 2023 00:32:42 -0500 (EST) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 61BEE80607 for ; Mon, 27 Feb 2023 05:32:42 +0000 (UTC) X-FDA: 80511952164.02.E1121A9 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by imf11.hostedemail.com (Postfix) with ESMTP id CB3DC4000F for ; Mon, 27 Feb 2023 05:32:37 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=CAqXoRyx; spf=pass (imf11.hostedemail.com: domain of ira.weiny@intel.com designates 192.55.52.43 as permitted sender) smtp.mailfrom=ira.weiny@intel.com; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1677475959; 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=VvcNNK7EfqKfXoQPQu79MjvMN+M/+OYkjBTZMYwJgOc=; b=IvmZnDH5ulzQYIR6PXRwXqokbwbmwwMsSuS7ft43E+Udt9FtfZkxThZTAwv7XJxCx28i9E FVwKbdPzuTo/2XdTeTMdfHZ90LYMkmNYEmzkDm7YEWqAWSBoeRexyp1qD9mtYBc0n/ZI6Q VwYcGfQj0GrOkK3oJ7Ul2tib2OrByv0= ARC-Authentication-Results: i=2; imf11.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=CAqXoRyx; spf=pass (imf11.hostedemail.com: domain of ira.weiny@intel.com designates 192.55.52.43 as permitted sender) smtp.mailfrom=ira.weiny@intel.com; arc=reject ("signature check failed: fail, {[1] = sig:microsoft.com:reject}"); dmarc=pass (policy=none) header.from=intel.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1677475959; a=rsa-sha256; cv=fail; b=1XDh+5rE7YCdJ+iE777tUgN62MK1s+uvtkBZeo7ZifFjaEvIyEaViheyWuejFHPmxvbvPA uKnmM43GjFay4ty2bNr36TmVeA6Xo3CLM0FuNybzopp12CQPTydpaEs+pKEE3rjjteK4I1 catK61wmxxU+1YYMvZccemDYPsMvQIQ= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1677475958; x=1709011958; h=date:from:to:cc:subject:message-id:references: in-reply-to:mime-version; bh=8dJ/t65M4pjhWwhmHZCtt1qyUyCjy1rpxHN/peRB1KA=; b=CAqXoRyxqIcVitRqC0Mdr6wZHwu/t3p+VRl8UnB1ogExolSfeHwHys6f ac4XuxQNxbHE9iNq4oI916u6Ukv6NfEV/rdH1ij8D9NLlwkr761qrBIOY hxj3g0MbrIny/O9x9OrGYh6o4ocfm/eUqjA9pOA4y2ayslF3EkcjotK3q nU7VUJCSClPGUaLqrYoxLO6GEs7ngiMjOeunWV9qh8gRirRSfLC6XGFX2 k+k1ni30gz491Xw71H0Sg0s8umD1xYJoa7lkXLmNEdeMZ6CsEVfZymg6p 6Q0dSk1HjHzPzL8EEhaBy+5nj5PcbCbn3lwQQnX5N35XGNnM7pK/n9pmR g==; X-IronPort-AV: E=McAfee;i="6500,9779,10633"; a="420048022" X-IronPort-AV: E=Sophos;i="5.97,331,1669104000"; d="scan'208";a="420048022" Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Feb 2023 21:31:40 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10633"; a="742376516" X-IronPort-AV: E=Sophos;i="5.97,331,1669104000"; d="scan'208";a="742376516" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by fmsmga004.fm.intel.com with ESMTP; 26 Feb 2023 21:31:36 -0800 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Sun, 26 Feb 2023 21:31:36 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16 via Frontend Transport; Sun, 26 Feb 2023 21:31:36 -0800 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.107) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.16; Sun, 26 Feb 2023 21:31:35 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cD8kRVoF5KGAKjTx6MjZSIEozR+K0atCmI6n1oU43GZekSMx/nJrgZEEysi6KXj5wrn8h9MDdNJZWrwcfLwjgEz9NxOqW7qYCxiHODn1iSqvq8CO8dDq24QITA3uBWCvqvDOZeL9Q1m2yYLJnpzN5GsudSfMlRneoZklRUXXhxc63LvzuTku2UZiZVqaZcoYOWyUDjQyoKonpIXdUXt/lngCh028QbH9ZIz3wuXFL48zwhCGhVlIZyetG7rp26JMKRsi5/x6L5HVI2n6Vqk6igi11VdISMrlnDQOBn/8mO23kiLVPySb1Rn4mt+4rP5FgX/AqMym3XtQ2cX16rDNpQ== 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=VvcNNK7EfqKfXoQPQu79MjvMN+M/+OYkjBTZMYwJgOc=; b=odGMEVWYwtrkPpte5lz0bd3ET5xmxZNHXW38+hwYBmvrNqcNR2yA++ovTDQnyQYEOJob+pDp0DBmvvQwY9zV/J6sNH5sQUkK1lbsjYdE3lMIuE2QpVI5aWUJYvRvXF74HjL3JGfMtmC1SNbIJo/VUdi3FP4z1O1SMEQoGhm+O05YTg+e0wTNRzCoiKS+M78xHe++ve3mNVglhr24LIQkIJs/kBhBrnEYZ+bsnzn5lETdtTH1YnH9+CgDVZX+e0PyYY0xJ8NIg2Y8n5FIgxXhSKVNniNsNklwH4rylJ2gJE1Ifmj6lmnS0Mgp0wpsXT/AEZi4FejdFglL7yx5d1IrVQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from SA1PR11MB6733.namprd11.prod.outlook.com (2603:10b6:806:25c::17) by SN7PR11MB6702.namprd11.prod.outlook.com (2603:10b6:806:269::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6134.27; Mon, 27 Feb 2023 05:31:34 +0000 Received: from SA1PR11MB6733.namprd11.prod.outlook.com ([fe80::84dd:d3f2:6d99:d7ff]) by SA1PR11MB6733.namprd11.prod.outlook.com ([fe80::84dd:d3f2:6d99:d7ff%7]) with mapi id 15.20.6134.027; Mon, 27 Feb 2023 05:31:34 +0000 Date: Sun, 26 Feb 2023 21:31:31 -0800 From: Ira Weiny To: Yin Fengwei , , CC: Subject: Re: [RFC PATCH 2/2] mm: add zero_user_folio_segments() Message-ID: <63fc403339d48_3e7f294ad@iweiny-mobl.notmuch> References: <20230216160528.2146188-1-fengwei.yin@intel.com> <20230216160528.2146188-3-fengwei.yin@intel.com> Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <20230216160528.2146188-3-fengwei.yin@intel.com> X-ClientProxiedBy: SJ0PR03CA0343.namprd03.prod.outlook.com (2603:10b6:a03:39c::18) To SA1PR11MB6733.namprd11.prod.outlook.com (2603:10b6:806:25c::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA1PR11MB6733:EE_|SN7PR11MB6702:EE_ X-MS-Office365-Filtering-Correlation-Id: 089b0020-198d-4fe3-7d5e-08db1883e345 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: XY7oMImaUmI5hRKoIE0Ty03KRT2jQymPXJGoTJbZT6/rNiJTDhF2QO1rgX+VFRsvcFTu6oGQvUIy7Q26uKfnAyYSXrw9sIDXCG02/4gYPGpFDecwNLreXeCVfxQZ1Ih/iTVP9qjQj6F2zFBKqyhI45yFBO1pzUekXMnHp3ifJ1pZDam50xnmoq4eiMhfsBp4zwTepBDaXfvpARYTPxw121iLCG5TtERmtCjpC0rrKseN0j98a2JtS5IqVjVfA47aWyhvFHGMST4MoITbu2HoL2aSCvsVb/MDtGFN9kj+wv4ze6xQxHnsGR1v36QWsJQRCZrKp5N/itTVUU/Nq+ePt9QPikF6p9/Ym1yc/Uhf767WXGeVwcH5Nb/kZytxcFsa4ss4R7AqJQNBjaqnwLVquGsB4d6qvc7GQVtl2vC0PmejrqwVSmk1Qm1pdgrFt6zYqSh1Vqn5HQRX5hnFDFc4/oXuUsnUD98Xn8UQ7eR7IDE6FEsK5RdCaB+UdVeuCm+p5o8UgpEqZdymQEvn//zFiHIHp/G/9jr4dQtlZrHShh+8cspTPMmpiIwAWY4fPxXRGeRwqeJyzHaUnB6RZQ7tOr0prjCAMqBIr6tcWyjZs/2fFC0wewlRGpzzXCkHxKa5J/PSLDxjH3QbMibbF+K0ZA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SA1PR11MB6733.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(346002)(366004)(39860400002)(396003)(136003)(376002)(451199018)(4326008)(66946007)(66476007)(66556008)(83380400001)(41300700001)(82960400001)(316002)(9686003)(6512007)(8676002)(8936002)(38100700002)(5660300002)(44832011)(86362001)(478600001)(186003)(26005)(2906002)(6486002)(6666004)(6506007)(107886003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?K/Z2BXN9nugazaWWd7u+KCVouEswtHs6hcypEcVGPZ/a3uT2CC6SXwyV/LBG?= =?us-ascii?Q?MBzJgHRWnqq2aQV7o/6E0X59kkH+DJz+WFAjj/xvty7WaL7FwAdhAHLw4+5Q?= =?us-ascii?Q?XGxVGMiTQaoe/R0OdvSod//sC6IalsjOX9FfA18vrqxGX3dI8c+WcQpSZNP/?= =?us-ascii?Q?A3+24V73WEoBi6H1pRIIw7247kAys2Tbp0gMUN0ObUuKw2laJdhVuCkbhgWa?= =?us-ascii?Q?MWCBSlpprej+zxHaYy+Cx3WgtCqCgFJzUcNW7ctsJtzKwdadvsa7TkKuycRx?= =?us-ascii?Q?ndVk3b7QExoIR17kz8LoNE95dZASLIBVXh0xFLwpjqj5nFOUVb6JdjN6TKww?= =?us-ascii?Q?oYbMK9kZTUs/9fXGrU4Iy6xCwB9gx6jRashYZ4IWWltJ+y1Ph2YRXTp46jSw?= =?us-ascii?Q?EbqNFEt9Zy+ltJRTPs1XiBOEbaCzlYI4+UGKWSb/rl8Y1KB0rVbaHQEQez4Y?= =?us-ascii?Q?JVNcuQqVgyvangMAJ2rk//dzJQNVmua0pXyBUV28iYTJhU3QkcH9ZrSCTnuX?= =?us-ascii?Q?ktErQrNdNm7tgMhDw/vGGHO2wgrcZBbyPJ8gli/B9sn0RXYCVsyL3p06ySqx?= =?us-ascii?Q?1ZzozHzRFDks4vux0MaRrU45qpnY3A7zEEUhjlIHkW4LooQuzdKaUy1RJ60Q?= =?us-ascii?Q?Ztu1pbkSoUpwtqj1SrlK4tlEV7jhJtuZP+USixqwfx6VCRLxeH5WCC0rqr8N?= =?us-ascii?Q?V8jAVxEyre1MQXEhsw8GRudcQ1WG13ydFFvP/O+sbDULWVqZwKpqzqdRJRiX?= =?us-ascii?Q?W+YDWGURoXTJuXTkT5VZ4/43NvrXCPAGcH8IZ+09r9zqbpEPDMyGcWWGhOgF?= =?us-ascii?Q?m/OzXkXZmey8UQSHvTSHyJGxVYdcwudUW3nWxezayet0Pb/dqgrcvqSTjkKv?= =?us-ascii?Q?XLSUy6I0R6d/52M6UK+snbBVAmRACgCfEyOv5XHN2wFH6zLX4MlnOVaKXgld?= =?us-ascii?Q?v7+qdPRdHJ3Oir4SXBB5p3xBkpnXkOi+PgTGYP2Lbo2CuHZ8mnjRiIiEFPn0?= =?us-ascii?Q?HJRzbBXMA+2Q3Jp++LIJYtroeS07FIcxR2lmXPaNVO1VV1Bv5nUCd+rhIdgX?= =?us-ascii?Q?km5x0nbH8YjzyoHkLCVjrw/MHlku2GWNkSQVjuPMHSEp8C8JDH0Baje+diBN?= =?us-ascii?Q?IJl3IdXwPiD8Wr4FaqjWRxmMNxhxynfnq3raXD0XQAL6OejHVlCMa/SBRVrM?= =?us-ascii?Q?6JaXNNkO2iRNZzhSOJ52OIvOPgSOfYGzY3qNlSBsDuOo15KOxnfROPMAawX2?= =?us-ascii?Q?REuLAW5N8JUCVfKZSc4i2kkIyHMi011x81ENc6Sg+3Zh1vLjubzon4p77M3i?= =?us-ascii?Q?4jWGXXxZINDLZpbB4hrDD/pCRDmWUWNzwI03eJYzcs8ZYfNYqY9RmCPcn3b3?= =?us-ascii?Q?1IDRGxcwEqt6tQLz29q07FdhS43xVdWToUYoFcYDoq420qdzBzM+aGeY2U68?= =?us-ascii?Q?kC8n2IQbF+Bq5NdMLCHFnn5QnKAac7bL8MaKG7vNPi2l4OSyDMyPTgnUScht?= =?us-ascii?Q?sPvfAMM3JWQW46AxkzfQN9CW0t/G7ejVJAHX9RIyXxVDZog/8/eSdH9sJajs?= =?us-ascii?Q?98uwn6a1KrHCFCdvCcpVozmKsPzWUNeUOxEdmECL?= X-MS-Exchange-CrossTenant-Network-Message-Id: 089b0020-198d-4fe3-7d5e-08db1883e345 X-MS-Exchange-CrossTenant-AuthSource: SA1PR11MB6733.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Feb 2023 05:31:33.7227 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 9sy8O5+EGgLjeJV9JtB4ztIwuTvix2GgFIeRuac5IdczUK8POm2G91+H+RuTab8HQgdSifB2hipC67cEWphebw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR11MB6702 X-OriginatorOrg: intel.com X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: CB3DC4000F X-Stat-Signature: 1k8xnoaur8cg19ba18qfe1fndq1h47ug X-HE-Tag: 1677475957-697320 X-HE-Meta: U2FsdGVkX19MT/nM2cZInNj82NXYdHbYSQjg0jyQrzzERz26ek+Yig0Ll7AWsOw0Tofap8JrZRM6zvCkV5Rs4XtB2SQo/5aTzdPOqMXoWlmeTeqSdu4AJIwz9NQRO5Q+rvJehooG6p/q3mAnxwQDGLRVsrNtFRBx7YmZs/nJCSO9OjGgEUpFQ3kQMFVPSNM5xgPJeqO+4CgxE443LLbEiPTFX6pt6Ovo7HU1+3QcUMOgIMFsqrzvUTt93k/b3+6dZsSoN2TdYdkv27vbVUf34euZCYktad1BZBNsKkYDeqnEyVNa+uuFX3ICgu2V7sfGEjBKUN+ssVvePMx6UEH4xhQch+1xLnPt+XH0dDVDlIeTNAMl0VonV0I12f9Nqwnovhq5E1OxE/kVaejZ5JuDheXVpKpag02+rmfiKh466TK0nqQWY1eM6Rlp2Vo0ON/5Lo4lbxxrRTpS9etUkgiPf5R/GYNuVuENza73OK6Ba+qv6FGOyuGxcWYUJQ94/jOD7KsKZTFyAA1j/Z4JB0WrOslwPijkmIKs7Vhbm1Utl6v1q49sE3dFnefZYl15LBIBmoPCIfhbxY1hnSKX8MsRqiAb9J+sjQmjn25Trl9QQQ2f4yCyKabkS2deoGq0lM11dKoKu2SJIfshr772zAMASLWn+TTNbvvsVTNrCwEBsZlmVIct9BASOp/fKI12ojlibtlyTU0D2yvAc9ryApfWrVqq8hmudbTWkjXpZPBOgeV86g7JF991kKngoGA2ab567Oq1xZBSp6Q79U2slcUIUqdX5W3c5H7aVVhZrsK480TaeCCiGyJT2pPYgMltIWkZWt2x550fN/4QaM6dheKB8v3Pc5VTv6IwKGRKGURy4XWd3sL6sjXGkWW8tL5J6V+ugDFYriZFbroNR0urWC8RXKpZfoaqsnHQG9lEu6ZbOzcjIJeOBagH8W7RoF40q4egi/ufB1Y4XNWA1ygthjB 2xVM2TRq kjXHWUGDPkukoe3CZ+2AoOnrkfHmo9wjONIvqwB+G9CxQev4j/JCOx7f8Ixol8/Ah6MQPyAmSP7XwwXKJWnl2uwefw7hwwIlGVjZr2i/xKVoRmj9UrSo3LuAInFOCLn/ICRYb91K2JrXmDXWTW+JMw30tZYRypVKtHMHmivnlGLAp9HVofqgvtmFQE3O0HRqhQAzsxXYmYvcl1hxCeOhMQjCdtbaiFLTX/DA3n5y+iLBNGBGmCuLkx9Ohh1DmNI5kQQeC9V6CQrc56AIxjvnAKvOdgNphZhgFqGgHXMgxONJBuHOajQTgWZy9b2xfFpvB3MBQ 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: Yin Fengwei wrote: > zero_user_folio_segments() has same function as zero_user_segments(). > but take folio as parameter. Update folio_zero_segments(), > folio_zero_segment() and folio_zero_range() to use it. > > Signed-off-by: Yin Fengwei > --- > include/linux/highmem.h | 26 +++++++++++++++++--- > mm/highmem.c | 53 +++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 76 insertions(+), 3 deletions(-) > > diff --git a/include/linux/highmem.h b/include/linux/highmem.h > index b06254e76d99..0039116e416a 100644 > --- a/include/linux/highmem.h > +++ b/include/linux/highmem.h > @@ -266,6 +266,8 @@ static inline void tag_clear_highpage(struct page *page) > #ifdef CONFIG_HIGHMEM > void zero_user_segments(struct page *page, unsigned start1, unsigned end1, > unsigned start2, unsigned end2); > +void zero_user_folio_segments(struct folio *folio, unsigned start1, > + unsigned end1, unsigned start2, unsigned end2); > #else > static inline void zero_user_segments(struct page *page, > unsigned start1, unsigned end1, > @@ -286,6 +288,24 @@ static inline void zero_user_segments(struct page *page, > for (i = 0; i < compound_nr(page); i++) > flush_dcache_page(page + i); > } > + > +static inline void zero_user_folio_segments(struct folio *folio, > + unsigned start1, unsigned end1, > + unsigned start2, unsigned end2) > +{ > + void *kaddr = kmap_local_page(&folio->page); > + > + BUG_ON(end1 > folio_size(folio) || end2 > folio_size(folio)); > + > + if (end1 > start1) > + memset(kaddr + start1, 0, end1 - start1); > + > + if (end2 > start2) > + memset(kaddr + start2, 0, end2 - start2); > + > + kunmap_local(kaddr); > + flush_dcache_folio(folio); > +} > #endif > > static inline void zero_user_segment(struct page *page, > @@ -454,7 +474,7 @@ static inline size_t memcpy_from_file_folio(char *to, struct folio *folio, > static inline void folio_zero_segments(struct folio *folio, > size_t start1, size_t xend1, size_t start2, size_t xend2) > { > - zero_user_segments(&folio->page, start1, xend1, start2, xend2); > + zero_user_folio_segments(folio, start1, xend1, start2, xend2); > } > > /** > @@ -466,7 +486,7 @@ static inline void folio_zero_segments(struct folio *folio, > static inline void folio_zero_segment(struct folio *folio, > size_t start, size_t xend) > { > - zero_user_segments(&folio->page, start, xend, 0, 0); > + zero_user_folio_segments(folio, start, xend, 0, 0); > } > > /** > @@ -478,7 +498,7 @@ static inline void folio_zero_segment(struct folio *folio, > static inline void folio_zero_range(struct folio *folio, > size_t start, size_t length) > { > - zero_user_segments(&folio->page, start, start + length, 0, 0); > + zero_user_folio_segments(folio, start, start + length, 0, 0); > } > > #endif /* _LINUX_HIGHMEM_H */ > diff --git a/mm/highmem.c b/mm/highmem.c > index db251e77f98f..e234b249208f 100644 > --- a/mm/highmem.c > +++ b/mm/highmem.c > @@ -443,6 +443,59 @@ void zero_user_segments(struct page *page, unsigned start1, unsigned end1, > BUG_ON((start1 | start2 | end1 | end2) != 0); > } > EXPORT_SYMBOL(zero_user_segments); > + > +static inline void zero_user_folio_segment(struct folio *folio, FWIW this does not compile: s/zero_user_folio_segment/zero_user_folio_segments/ But I agree with Willy here that I don't see the point of this patch. Seems like a lot of extra code for no benefit. Ira > + unsigned start1, unsigned end1, > + unsigned start2, unsigned end2) > +{ > + void *kaddr; > + unsigned s; > + > + BUG_ON(end1 > folio_size(folio) || end2 > folio_size(folio)); > + > + if (start1 > start2) { > + swap(start1, start2); > + swap(end1, end2); > + } > + > + if (start1 >= end1) > + start1 = end1 = 0; > + > + if (start2 >= end2) > + start2 = end2 = 0; > + > + start2 = max_t(unsigned, end1, start2); > + s = start1; > + while((start1 < end1) || (start2 < end2)) { > + kaddr = kmap_local_folio(folio, > + offset_in_folio(folio, PAGE_ALIGN_DOWN(s))); > + > + if ((end2 > start2) && (end1 >= start1)) { > + unsigned this_end = min_t(unsigned, end2, > + PAGE_ALIGN_DOWN(start2) + PAGE_SIZE); > + > + memset(kaddr + offset_in_page(start2), 0, > + this_end - start2); > + > + start2 = this_end; > + } > + > + if (end1 > start1) { > + unsigned this_end = min_t(unsigned, end1, > + PAGE_ALIGN_DOWN(start1) + PAGE_SIZE); > + > + memset(kaddr + offset_in_page(start1), 0, > + this_end - start1); > + s = start1 = this_end; > + } else { > + s = start2; > + } > + kunmap_local(kaddr); > + } > + > + flush_dcache_folio(folio); > +} > +EXPORT_SYMBOL(zero_user_folio_segments); > #endif /* CONFIG_HIGHMEM */ > > #ifdef CONFIG_KMAP_LOCAL > -- > 2.30.2 > >