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 4FFF1C54FB9 for ; Tue, 21 Nov 2023 06:55:01 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D434E6B024A; Tue, 21 Nov 2023 01:55:00 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id CF3356B0252; Tue, 21 Nov 2023 01:55:00 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B46326B0280; Tue, 21 Nov 2023 01:55:00 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id A3CDA6B024A for ; Tue, 21 Nov 2023 01:55:00 -0500 (EST) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 777ABC0476 for ; Tue, 21 Nov 2023 06:55:00 +0000 (UTC) X-FDA: 81481049160.01.4909650 Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.20]) by imf07.hostedemail.com (Postfix) with ESMTP id C60E940003 for ; Tue, 21 Nov 2023 06:54:56 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b="GfWC/B7R"; dmarc=pass (policy=none) header.from=intel.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf07.hostedemail.com: domain of vivek.kasireddy@intel.com designates 134.134.136.20 as permitted sender) smtp.mailfrom=vivek.kasireddy@intel.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1700549697; 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=Hjhw3+TrDTwE27xlBAvrOcA5tnccSKMJxuGbblx2KwA=; b=uEoTiwmhkbPbSJTdBhorzjcK3Q4FHFrtAitWIthz8X7+0WXaEGJo857nodAuDL+2qWdYul zPMiF+YZTr62snd8gauXrPKrByKpMbyHR/UPZlCq9xrbr6RyEH1USqFwavPlkMyNTJyfEr mDkwiy79rRZ0IC9IUm2Gg0QOA3kZF8w= ARC-Authentication-Results: i=2; imf07.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b="GfWC/B7R"; dmarc=pass (policy=none) header.from=intel.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf07.hostedemail.com: domain of vivek.kasireddy@intel.com designates 134.134.136.20 as permitted sender) smtp.mailfrom=vivek.kasireddy@intel.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1700549697; a=rsa-sha256; cv=pass; b=Bii8iwEUGzrqwMcwxpOcmp9WY+v2oUtNt/k2xv72aFNkiuPpz2qLnIi6sMnh6BnrReqTJ1 1SwVsff5andUt3Uem7kCzKwRKLEwd2o0cpB2moHr+6O6h6dTcfb2tngHATqMZkCkrzvDPI DjFI1RRF8tuo4NxeTlI8uf6to5wIrHU= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1700549696; x=1732085696; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=Hjhw3+TrDTwE27xlBAvrOcA5tnccSKMJxuGbblx2KwA=; b=GfWC/B7RCrq4hpDfcTFDsPxZc423e6i9cZr8kv7Oksm7q9XW6A2n5tQ9 qPOhbB/YganSOxJ7xWyKNowbWDPL8I7oxCz2dHWTnFLz7yhlgSjIx7dxy m+MiVsclnKy9b4ChQCs8UX+uGhP/JQw7dpuo3b1NKrKcQGuSEwLwYhxWQ cmMWkfnlF+r4zmBWANZZOkiP8/+uj2R8tZhO/E9jbzCO/xJeQVTRZccRk kcnR3Thd6nu/VPI21cxmBnHxMPRj45uHA+Q0C1sHrQQWS2rsfZwitzEy/ 3lDSy6kF1wYxFja/J7vCM7I2xNX/6rxWQREvOvGL6HljDPtwIwcbV6iiD A==; X-IronPort-AV: E=McAfee;i="6600,9927,10900"; a="382171372" X-IronPort-AV: E=Sophos;i="6.04,215,1695711600"; d="scan'208";a="382171372" Received: from fmviesa001.fm.intel.com ([10.60.135.141]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Nov 2023 22:54:55 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.04,215,1695711600"; d="scan'208";a="14808479" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by fmviesa001.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 20 Nov 2023 22:54:54 -0800 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Mon, 20 Nov 2023 22:54:54 -0800 Received: from fmsmsx602.amr.corp.intel.com (10.18.126.82) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Mon, 20 Nov 2023 22:54:54 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34 via Frontend Transport; Mon, 20 Nov 2023 22:54:54 -0800 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.169) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.34; Mon, 20 Nov 2023 22:54:54 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FdGWYxevhKBFW5M5hPiI9FR1TUYLit02eL/3BJxlR/HO2DdBApSgemQWaUPq3nzEggzlnK4vBni/f6quNzKZwPyBTAmFB2H9SUh6jqXTmALiPlyC809Xar+zTUv5N7JdWHxgso/Fu+2NFPsInFPBiOlLaxB/eYGp8gKK9rYBqbRn1vTbRwsj4CuW7c+JqLZc8NZkD22eqxN3ZFd99D3Bc+2Scj9GWs52/DfnBpFYyQ4mhZ4q2ULwBq+I7YgqyTCIkDSQQ3q9rm0EaMfKMrElLcaNKERvtxAq5pJ9yG1ohQz+VquM1enbgw+0Xs6Hgck0BPXjUxfuKuEeGpxsPGe2+Q== 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=Hjhw3+TrDTwE27xlBAvrOcA5tnccSKMJxuGbblx2KwA=; b=E1IANikk7W0ccpaiqJoo2bp6mrGAJuf/A24iEBBAOftbZkFL4uIvq/Rzm6tGDLJo1JJevqpRTq8sNWP/n59G0T+u09pfCnLyNlPgr17/yQ1udKUKgslUDbsxYc9o2ne/sizYTOgcWdJpcf+ezu3erzRU15/Iad5VIg3HqXez83XGANOQzQt22+Odc38w9ew1t+DkgPB4MZHRd8t7pf74sj3mUzTYVdQjgKs/3JNmUtUBiwG6Y4dnLf1hN+ZZ2WN2gHQh9YwhK/T/ocjVERurehDltZz9IcpDTgUxRfjgYE7GuLiLfFYcPi84eoZf1ocVcuUz5QMh+Jei2+wP3SGFfg== 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 IA0PR11MB7185.namprd11.prod.outlook.com (2603:10b6:208:432::20) by BN9PR11MB5292.namprd11.prod.outlook.com (2603:10b6:408:119::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7002.28; Tue, 21 Nov 2023 06:54:52 +0000 Received: from IA0PR11MB7185.namprd11.prod.outlook.com ([fe80::b6a:cf27:4d2d:1df4]) by IA0PR11MB7185.namprd11.prod.outlook.com ([fe80::b6a:cf27:4d2d:1df4%4]) with mapi id 15.20.7002.028; Tue, 21 Nov 2023 06:54:52 +0000 From: "Kasireddy, Vivek" To: David Hildenbrand , "dri-devel@lists.freedesktop.org" , "linux-mm@kvack.org" CC: Daniel Vetter , Mike Kravetz , Hugh Dickins , Peter Xu , Gerd Hoffmann , "Kim, Dongwon" , "Chang, Junxiao" , "Jason Gunthorpe" Subject: RE: [PATCH v4 3/5] mm/gup: Introduce pin_user_pages_fd() for pinning shmem/hugetlbfs file pages (v4) Thread-Topic: [PATCH v4 3/5] mm/gup: Introduce pin_user_pages_fd() for pinning shmem/hugetlbfs file pages (v4) Thread-Index: AQHaGexUW9wq30bqjU+nhWVSPwUCj7CC6L8AgAFErgA= Date: Tue, 21 Nov 2023 06:54:50 +0000 Message-ID: References: <20231118063233.733523-1-vivek.kasireddy@intel.com> <20231118063233.733523-4-vivek.kasireddy@intel.com> <22794df8-b1d3-4cb9-846f-dd5afe8b880e@redhat.com> In-Reply-To: <22794df8-b1d3-4cb9-846f-dd5afe8b880e@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: IA0PR11MB7185:EE_|BN9PR11MB5292:EE_ x-ms-office365-filtering-correlation-id: e0272e77-ada5-48d2-2e4a-08dbea5ec21b x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 82RjfHuVedXsQtQr3e3Pp5YVeDCjv3UdAhv6CPHi9Ib4FfLNn8MAvxvVchvqWFtUmkvrn3UYtHYypcHXo14JPqh80eDMGeBmpqNdA7MtUmDnzkbenIsz/WsWZMwBj25uIvd5UhwJEvxqYWDtvZ6b9fgpMx/4Niw1pAjdjZjUZEzb8M2PW5Lm74gDCJ6dCAv/fSjh5nwmUf1VU7kOSfAEcAIYYxLfKKiCBHNprknZHEjTGRYoj8azLGiuiTmtOXaX47+/4LAyVRsLpSL1dhKC0/d3V2nCE2dt2wUyRaT57eqfX2eTvdBp/TrULb/O7tYU07QgQRNqI+TQxSSR4X4JU/SDSImIKNCgJB08xVIXZM+ZNfIQgEUq1OvvXkAmQC0GUcybk3ip9yuy/tWd0cj45AEJCGlFw9vw8UBvMCYEEGxKC9VonPq6FEBcjUFKlkxVFFnGN4s40N4MPGhWFxlNoVLtOTSIpuvogcrk75UM6o+suMQ6Q8+8RHslQiUt7D8wvCmHttxDUmXxWzmFW8wKO6INtIEdLne4dlyS0KaeDsIhhFb2P//ba1BHXQDkmX6eudr3q2jBVhPTVBoxCXUmdZA7Mo4e+jzFfrOMDx1aOcF5WFTq/1dJszHT9X2uLtIl x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR11MB7185.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366004)(396003)(376002)(346002)(39860400002)(136003)(230922051799003)(1800799012)(64100799003)(186009)(451199024)(55016003)(5660300002)(8936002)(4326008)(52536014)(8676002)(2906002)(41300700001)(76116006)(316002)(64756008)(54906003)(66946007)(66476007)(66556008)(66446008)(110136005)(86362001)(478600001)(38070700009)(9686003)(71200400001)(53546011)(7696005)(6506007)(122000001)(83380400001)(33656002)(38100700002)(82960400001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?eTVYamJYTlYwRVpwWGowT0pWcGlZbDY3QnJIUU54RmhOY1JnNW9rVEhiZ2p2?= =?utf-8?B?MEN6NTJDTEJQclduVHRXUUZwVFp4N01yMXAwNlFWbU1JOHh4VGFqWG40SFVm?= =?utf-8?B?ZlZ4WnhkdkQ5SEttVWw5MWhXaW5IVEl6MEFXcDY4L3hkRXcwOUkrWDV3TVd6?= =?utf-8?B?MW0xSDk2aGdwWnY4UTA0c3o1QlA3aTB4SkxHZWRDMzNBL3E5aDdmNUdxeWlE?= =?utf-8?B?bU1IU0hvckZNTis1bkk3OUVvQmF1YnFyU3BUNERRSHFZYVdBazZnbEFsOU5L?= =?utf-8?B?Tk5pOHF3Wlh1V21CM05YR0xqN0tlRityMHV2SmJZc09jTDB3VGNIRktiSEN1?= =?utf-8?B?YkhJZTVUK3lSVFN6UXcyZ3ZSdkJMTXV4LzhHejkxaWZIZE9ueGpLRXZrMEdT?= =?utf-8?B?SVJtYlRSbW5pZWdVcXVZc2Y2TjFqZitiTTZEN1dHaXJKUjRMS2Z0TGIvZzN3?= =?utf-8?B?TnZGMmpZVzdacENYcmIwdG9ZaDNwdlorZ24xdlR6ZDFjNWpLc0t1Yk5EVCtS?= =?utf-8?B?aVZuckdZZkdOZHdLWDRYNTVkeU90dnRZbzRqRkw0eGphOERleXEvOHFLcWpG?= =?utf-8?B?b05LMWpwTzZ0UkxjTXhCTVNvTjRKZmgzdytyK3pjeTRPak1wakVLN3dzdXMx?= =?utf-8?B?MEczWUhmVzVRVWhPaGtzVFg2WmZTR0Q5eEQwUDIwd2Z2dlBDelpYaFdQeUk5?= =?utf-8?B?MnRDMzRhajBsS1BlY2xnY3ZlQzJvVlZXWVVtZWxXL2R0NStzRk1KcndvRity?= =?utf-8?B?WDMrcVNKeXdoMXV3eHZaUnFFMmxRbC8rQ0lDcjNtcjdpbDNPbVc0L20wRjJD?= =?utf-8?B?R2pmcExmOVdOZHZKVkdETFlmZnRLTjJMUktvVW5GVEQvU0xFc05qek42anJl?= =?utf-8?B?WlQ1SklJUUNJOUZtcUdSdkk4eTVKT1pvSVlhM3R6UUVzdEU5ZWgvbmpYN1VJ?= =?utf-8?B?c2p1UG1ScHEwcHVhNkZzOXZBNXNuT2swODNULzRwbitpM3NxblpoNVJ4OXNj?= =?utf-8?B?WTFZUmlqUnN0WTZoOHZHcVJtWHdlRms3eVJRUkJUS1d1NWEveWZMOHFrNHo3?= =?utf-8?B?RXJySDlXRE5HUzZQTzU0NFVLWm5LcDMxdHlHMW1Va1cxbENueFlPcGxXVjBt?= =?utf-8?B?SGpQWGZVTXAwOWVoVGU1eCtaMWd6bWFYTGpBbjdUMEJYaFJnaWt5bkdGbEJI?= =?utf-8?B?WGxTUFd1eld5MTNkQk50ZG8zVVptRWVVZmNIc1dnOG9STkN3ZTZWU3BpcGdJ?= =?utf-8?B?bktKbVNZTUZ0ZVVMV2l2cXVISzFlRXNQSnBFOWVYYytVa1dKVEdxaEhOSWRW?= =?utf-8?B?dzRXUmhveGYzZGZlblREOE01cE8reDhMY3B2ZE5aN2pmLzJQeXVPWEE1K2pw?= =?utf-8?B?dG9JbDdsQnNCZUVLOEhlVzFMeFhpNTFhd2s1cVYvVVlqRnlEZ1lHTXlhaGVm?= =?utf-8?B?dkxmV3JER3E0bjRRVy80Q0lyQ3ZUeWl2VHh3NXcrOE5IN3czSitvdlZWNFVG?= =?utf-8?B?dm1VMjJMb3gxU3FRZ2I5OW5qcGNBYmlGMXYrYVVpNTVwVnd6RnBLV1AzYjNG?= =?utf-8?B?bWZ0a2VycFVvZzkvU0RJL2ovbWlZRXdCWHZwaHBMaUJXci9ZTzEzN25vUHUr?= =?utf-8?B?azg4NWcvWEc3Zlg4NTJTbzVHVGNCL1d1cEVSdzhHSXk1VW1IMlBkM1lCUFEv?= =?utf-8?B?NE1Oa2VuT3kyRVJWRWNBVkNEVjRsaDc1NW5QUDkwZElWcjZiZW9wOWRrYmY0?= =?utf-8?B?WDgrUlJONjQveXMrWGtUb3BaTU5kUHV6Q2lEQVJYOU1yWlE1cGVMWmlVbTBL?= =?utf-8?B?REY2Vitma214WmVCTDMrVzBiSE9WUUxrSEZaMWhsRGJYMUwvVnI3V21FOHI2?= =?utf-8?B?L2VuNWQ1RDVTVFFXRWpVck1QUHZVOTByQVBUaVBDRy9wcUNsVzNDZjB2OXli?= =?utf-8?B?TlRnTkhpbHFaVk1GUlNSbXFKM2x3aXl4N3lzWFYrVldoNmdkUW9MWTRhRVA4?= =?utf-8?B?VHYzd2xsN0tscFloTkkrMVVFWjA2cmJzM0lzdTZ4VHR5dElDeDJRSW9zdk5G?= =?utf-8?B?YWNod2dGVzRXTGtNTkhrK1JzZVRXZWpRVTgvcXBwbldUVElvOERTYmtHR3BC?= =?utf-8?Q?yyno=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: IA0PR11MB7185.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e0272e77-ada5-48d2-2e4a-08dbea5ec21b X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Nov 2023 06:54:50.7032 (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: DmYKNtSegwbqj6qY4ByurWaTkdDsscHDakOQvhdTazT3TwTq1rcCj279j9CVxViNYWFsMuMjgIEo7AjjUrYg5YIXs40s7XG0QukUqgtvrVQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN9PR11MB5292 X-OriginatorOrg: intel.com X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: C60E940003 X-Stat-Signature: mhu1i5hr4mgs9dk19reunxr6o7gcxebb X-Rspam-User: X-HE-Tag: 1700549696-314123 X-HE-Meta: U2FsdGVkX19HWh0fyJH92zNtJBlRnoM9cni1p89GxW1OnJwlJriC46OAM3lCmGjquH/QkW6mZUJChs01TOcuBfi3KPmJnvgKWR8bgom6RnwDCoW9xC4cbpWrl5MZ/MY6xLSRM/LKKreKh8YM/sb2IEt16INnJBGauGZklBqNNJKeV2B6Q8ony9J23y7VyG07w0J3YTXdE/CAhV86+rruLOMLuFjE7V8oX0JfdItRVYLdL+ScNAs9gJpxF5Y3t6P/JhjLS4/XxNtWXR9m1HPCio437KjZf3IU5EyWIB2IHuqmTVRrDho0KgJFP8tpbYYW+P0bmoUYebr3/oOPoWopxFqgGqSkDV5wBxkOP3lxC/xL6hf2SMnSBEz9VnrmtKfBjDyrK8mJA9JFVKkR8jvygacZhBa/vNmGslp1cAiXf8DVReRLZjCkqweckUnDmSBfTCbJzcIrq2V+dSCt+k9HlKFmBn3xvXi6cGayFNThTbc+xCMZTa69IBo8x5qsZWegN+NvXzcszIgxtPqCTBG4UBPg8UF25RJQ2GDRuA/MV9s2HSc/7c1UsoKmX/hK1NsG28wsrTJEdoY1RT/nrACsO32JYn/YOV8cGkXY5QNhoeFx0IldyVr0kzNdDaCBeLIJGO/yr96LBSYYuu5LvardwgP7suKUSi4K6eRR+XIvNH30x6sVBVPz/ujkfCUik9xHcitDyWHwS2pxeQYVLY3R9kP9h1U7FhCgJ3aXEEfaDhniA7ETpQ6re789b97NKt1az/GeVaGExZ+ULFwFYFOPgZRuGKt0kbyn7zfdS0TCITxlwu8W2I0OCaCI3ofbK3hpQhb7oUepEQDHyecgcOecNEimvI/MFH89jlBOZCsuowZiY+tWrSGUvVNkumAaH8ZAY23nLHgrcvnsolDcghpEj3yE3hwq2asVTPiLJCirtb7N1KqEU9qtwOk/kOiSQtTQf0I9pP78Ot1jdPLlgAu RYig42oS vdLGyXLMoDHtHMBN4SGbRqBxPqF69ri0Z+3BYxe7sPpVyOV374/fuZapUSTob68htnm5l/Xlu8WRRz7jhjFamAQOaAFC0JgqYhqNTPiKUVMGrG1jP8ETGh8nQKdqxka/aS9Uuoitp+9615nQ5Kyg+n+6lbK1fOPQJvY3PTRJ2iukINZRaS9lhfhmkMZJaD/mKpRpkevsDk4l4xFDFh0Pts4P4ocyeaPUQ6diHk8YbmYiqxPvhx+fQiWoAEnXP1FnSF8Xx25/uqPCykO32RAgQiKoa/U6MINsqUpXO2L4S+1z1Cb9vMMKOH8oGUNMvLX5pxA/NcisbwXW0bCvnalY6EAVLAd8vtg+LWFckXWzt699hJXNg4vQN2MqaX+ZDeO0aJ+GaLQaKj4r7JkM8UPa7rBx+Ooi6eBTPln6BzCRWggLxQqvcyVDFpY1ePpUGPO7VSQFP+Rkg39cq1KOBeZId56Gij7xHvHgc0BUifStv/I8W0ey3oRTp4yG7bZcqig+Zs5nUTkbqNLdBf8L2fkxXSg/WfHCuIY2/EC0/bZ5lwQHu6nlUKn6Tx+OTPgejvBdr1/DAaijt62ZK1tOKD2AppAPYZ+/zGHD6ep/eZqDohy43Vy9U9iqYKap//UM+skptEkgQKNpRLkbAnEb2X/+GjXQQJObwnYkCkQF05a6hrvDxpro= 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: SGkgRGF2aWQsDQoNCj4gDQo+IE9uIDE4LjExLjIzIDA3OjMyLCBWaXZlayBLYXNpcmVkZHkgd3Jv dGU6DQo+ID4gRm9yIGRyaXZlcnMgdGhhdCB3b3VsZCBsaWtlIHRvIGxvbmd0ZXJtLXBpbiB0aGUg cGFnZXMgYXNzb2NpYXRlZA0KPiA+IHdpdGggYSBmaWxlLCB0aGUgcGluX3VzZXJfcGFnZXNfZmQo KSBBUEkgcHJvdmlkZXMgYW4gb3B0aW9uIHRvDQo+ID4gbm90IG9ubHkgcGluIHRoZSBwYWdlcyB2 aWEgRk9MTF9QSU4gYnV0IGFsc28gdG8gY2hlY2sgYW5kIG1pZ3JhdGUNCj4gPiB0aGVtIGlmIHRo ZXkgcmVzaWRlIGluIG1vdmFibGUgem9uZSBvciBDTUEgYmxvY2suIFRoaXMgQVBJDQo+ID4gY3Vy cmVudGx5IHdvcmtzIHdpdGggZmlsZXMgdGhhdCBiZWxvbmcgdG8gZWl0aGVyIHNobWVtIG9yIGh1 Z2V0bGJmcy4NCj4gPiBGaWxlcyBiZWxvbmdpbmcgdG8gb3RoZXIgZmlsZXN5c3RlbXMgYXJlIHJl amVjdGVkIGZvciBub3cuDQo+ID4NCj4gPiBUaGUgcGFnZXMgbmVlZCB0byBiZSBsb2NhdGVkIGZp cnN0IGJlZm9yZSBwaW5uaW5nIHRoZW0gdmlhIEZPTExfUElOLg0KPiA+IElmIHRoZXkgYXJlIGZv dW5kIGluIHRoZSBwYWdlIGNhY2hlLCB0aGV5IGNhbiBiZSBpbW1lZGlhdGVseSBwaW5uZWQuDQo+ ID4gT3RoZXJ3aXNlLCB0aGV5IG5lZWQgdG8gYmUgYWxsb2NhdGVkIHVzaW5nIHRoZSBmaWxlc3lz dGVtIHNwZWNpZmljDQo+ID4gQVBJcyBhbmQgdGhlbiBwaW5uZWQuDQo+ID4NCj4gPiB2MjoNCj4g PiAtIERyb3AgZ3VwX2ZsYWdzIGFuZCBpbXByb3ZlIGNvbW1lbnRzIGFuZCBjb21taXQgbWVzc2Fn ZSAoRGF2aWQpDQo+ID4gLSBBbGxvY2F0ZSBhIHBhZ2UgaWYgd2UgY2Fubm90IGZpbmQgaW4gcGFn ZSBjYWNoZSBmb3IgdGhlIGh1Z2V0bGJmcw0KPiA+ICAgIGNhc2UgYXMgd2VsbCAoRGF2aWQpDQo+ ID4gLSBEb24ndCB1bnBpbiBwYWdlcyBpZiB0aGVyZSBpcyBhIG1pZ3JhdGlvbiByZWxhdGVkIGZh aWx1cmUgKERhdmlkKQ0KPiA+IC0gRHJvcCB0aGUgdW5uZWNlc3NhcnkgbnJfcGFnZXMgPD0gMCBj aGVjayAoSmFzb24pDQo+ID4gLSBIYXZlIHRoZSBjYWxsZXIgb2YgdGhlIEFQSSBwYXNzIGluIGZp bGUgKiBpbnN0ZWFkIG9mIGZkIChKYXNvbikNCj4gPg0KPiA+IHYzOiAoRGF2aWQpDQo+ID4gLSBF bmNsb3NlIHRoZSBodWdlIHBhZ2UgYWxsb2NhdGlvbiBjb2RlIHdpdGggI2lmZGVmDQo+IENPTkZJ R19IVUdFVExCX1BBR0UNCj4gPiAgICAoQnVpbGQgZXJyb3IgcmVwb3J0ZWQgYnkga2VybmVsIHRl c3Qgcm9ib3QgPGxrcEBpbnRlbC5jb20+KQ0KPiA+IC0gRG9uJ3QgZm9yZ2V0IG1lbWFsbG9jX3Bp bl9yZXN0b3JlKCkgb24gbm9uLW1pZ3JhdGlvbiByZWxhdGVkIGVycm9ycw0KPiA+IC0gSW1wcm92 ZSB0aGUgcmVhZGFiaWxpdHkgb2YgdGhlIGNsZWFudXAgY29kZSBhc3NvY2lhdGVkIHdpdGgNCj4g PiAgICBub24tbWlncmF0aW9uIHJlbGF0ZWQgZXJyb3JzDQo+ID4gLSBBdWdtZW50IHRoZSBjb21t ZW50cyBieSBkZXNjcmliaW5nIEZPTExfTE9OR1RFUk0gbGlrZSBiZWhhdmlvcg0KPiA+IC0gSW5j bHVkZSB0aGUgUi1iIHRhZyBmcm9tIEphc29uDQo+ID4NCj4gPiB2NDoNCj4gPiAtIFJlbW92ZSB0 aGUgbG9jYWwgdmFyaWFibGUgInBhZ2UiIGFuZCBpbnN0ZWFkIHVzZSAzIHJldHVybiBzdGF0ZW1l bnRzDQo+ID4gICAgaW4gYWxsb2NfZmlsZV9wYWdlKCkgKERhdmlkKQ0KPiA+IC0gQWRkIHRoZSBS LWIgdGFnIGZyb20gRGF2aWQNCj4gPg0KPiA+IENjOiBEYXZpZCBIaWxkZW5icmFuZCA8ZGF2aWRA cmVkaGF0LmNvbT4NCj4gPiBDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5j aD4NCj4gPiBDYzogTWlrZSBLcmF2ZXR6IDxtaWtlLmtyYXZldHpAb3JhY2xlLmNvbT4NCj4gPiBD YzogSHVnaCBEaWNraW5zIDxodWdoZEBnb29nbGUuY29tPg0KPiA+IENjOiBQZXRlciBYdSA8cGV0 ZXJ4QHJlZGhhdC5jb20+DQo+ID4gQ2M6IEdlcmQgSG9mZm1hbm4gPGtyYXhlbEByZWRoYXQuY29t Pg0KPiA+IENjOiBEb25nd29uIEtpbSA8ZG9uZ3dvbi5raW1AaW50ZWwuY29tPg0KPiA+IENjOiBK dW54aWFvIENoYW5nIDxqdW54aWFvLmNoYW5nQGludGVsLmNvbT4NCj4gPiBTdWdnZXN0ZWQtYnk6 IEphc29uIEd1bnRob3JwZSA8amdnQG52aWRpYS5jb20+DQo+ID4gUmV2aWV3ZWQtYnk6IEphc29u IEd1bnRob3JwZSA8amdnQG52aWRpYS5jb20+ICh2MikNCj4gPiBSZXZpZXdlZC1ieTogRGF2aWQg SGlsZGVuYnJhbmQgPGRhdmlkQHJlZGhhdC5jb20+ICh2MykNCj4gPiBTaWduZWQtb2ZmLWJ5OiBW aXZlayBLYXNpcmVkZHkgPHZpdmVrLmthc2lyZWRkeUBpbnRlbC5jb20+DQo+ID4gLS0tDQo+IA0K PiANCj4gWy4uLl0NCj4gDQo+IA0KPiA+ICtzdGF0aWMgc3RydWN0IHBhZ2UgKmFsbG9jX2ZpbGVf cGFnZShzdHJ1Y3QgZmlsZSAqZmlsZSwgcGdvZmZfdCBpZHgpDQo+ID4gK3sNCj4gPiArI2lmZGVm IENPTkZJR19IVUdFVExCX1BBR0UNCj4gPiArCXN0cnVjdCBmb2xpbyAqZm9saW87DQo+ID4gKwlp bnQgZXJyOw0KPiA+ICsNCj4gPiArCWlmIChpc19maWxlX2h1Z2VwYWdlcyhmaWxlKSkgew0KPiA+ ICsJCWZvbGlvID0gYWxsb2NfaHVnZXRsYl9mb2xpb19ub2RlbWFzayhoc3RhdGVfZmlsZShmaWxl KSwNCj4gPiArCQkJCQkJICAgICBOVU1BX05PX05PREUsDQo+ID4gKwkJCQkJCSAgICAgTlVMTCwN Cj4gPiArCQkJCQkJICAgICBHRlBfVVNFUik7DQo+ID4gKwkJaWYgKGZvbGlvICYmIGZvbGlvX3Ry eV9nZXQoZm9saW8pKSB7DQo+ID4gKwkJCWVyciA9IGh1Z2V0bGJfYWRkX3RvX3BhZ2VfY2FjaGUo Zm9saW8sDQo+ID4gKwkJCQkJCQlmaWxlLT5mX21hcHBpbmcsDQo+ID4gKwkJCQkJCQlpZHgpOw0K PiA+ICsJCQlpZiAoZXJyKSB7DQo+ID4gKwkJCQlmb2xpb19wdXQoZm9saW8pOw0KPiA+ICsJCQkJ ZnJlZV9odWdlX2ZvbGlvKGZvbGlvKTsNCj4gPiArCQkJCXJldHVybiBFUlJfUFRSKGVycik7DQo+ ID4gKwkJCX0NCj4gPiArCQkJcmV0dXJuICZmb2xpby0+cGFnZTsNCj4gDQo+IFdoaWxlIGxvb2tp bmcgYXQgdGhlIHVzZXIgb2YgcGluX3VzZXJfcGFnZXNfZmQoKSwgSSByZWFsaXplZCBzb21ldGhp bmc6DQo+IA0KPiBBc3N1bWUgaWR4IGlzIG5vdCBhbGlnbmVkIHRvIHRoZSBodWdldGxiIHBhZ2Ug c2l6ZS4NCj4gZmluZF9nZXRfcGFnZV9mbGFncygpIHdvdWxkIGFsd2F5cyByZXR1cm4gYSB0YWls IHBhZ2UgaW4gdGhhdCBjYXNlLCBidXQNCj4geW91J2QgYmUgcmV0dXJuaW5nIHRoZSBoZWFkIHBh Z2UgaGVyZS4NCj4gDQo+IFNlZSBwYWdlY2FjaGVfZ2V0X3BhZ2UoKS0+Zm9saW9fZmlsZV9wYWdl KGZvbGlvLCBpbmRleCk7DQpUaGFuayB5b3UgZm9yIGNhdGNoaW5nIHRoaXMuIExvb2tpbmcgYXQg aG93IHVkYW1idWYgdXNlcyB0aGlzIEFQSSBmb3IgaHVnZXRsYiBjYXNlOg0KaHBzdGF0ZSA9IGhz dGF0ZV9maWxlKG1lbWZkKTsNCm1hcGlkeCA9IGxpc3RbaV0ub2Zmc2V0ID4+IGh1Z2VfcGFnZV9z aGlmdChocHN0YXRlKTsNCmRvIHsNCglucl9wYWdlcyA9IHNobWVtX2ZpbGUobWVtZmQpID8gcGdj bnQgOiAxOw0KICAgICAgICAgICAgICAgcmV0ID0gcGluX3VzZXJfcGFnZXNfZmQobWVtZmQsIG1h cGlkeCwgbnJfcGFnZXMsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1YnVmLT5wYWdlcyArIHBnYnVmKTsNCkFzIHRoZSByYXcgZmls ZSBvZmZzZXQgaXMgdHJhbnNsYXRlZCBpbnRvIGh1Z2UgcGFnZSBzaXplIHVuaXRzLCByZXByZXNl bnRlZCBieQ0KbWFwaWR4LCBJIHdhcyBleHBlY3RpbmcgZmluZF9nZXRfcGFnZV9mbGFncygpIHRv IHJldHVybiBhIGhlYWQgcGFnZSBidXQgSQ0KZGlkIG5vdCByZWFsaXplIHRoYXQgZmluZF9nZXRf cGFnZV9mbGFncygpIG5vdyByZXR1cm5zIHRhaWwgcGFnZXMgZ2l2ZW4gdGhhdA0KaXQgaGFkIHJl dHVybmVkIGhlYWQgcGFnZXMgaW4gdGhlIHByZXZpb3VzIGtlcm5lbCB2ZXJzaW9ucyBJIGhhZCB0 ZXN0ZWQgSUlSQy4NCkFzIG15IGdvYWwgaXMgdG8gb25seSBncmFiIHRoZSBoZWFkIHBhZ2VzLCBf X2ZpbGVtYXBfZ2V0X2ZvbGlvKCkgc2VlbXMgbGlrZQ0KdGhlIHJpZ2h0IEFQSSB0byB1c2UgaW5z dGVhZCBvZiBmaW5kX2dldF9wYWdlX2ZsYWdzKCkuIFdpdGggdGhpcyBjaGFuZ2UsIHRoZQ0KaHVn ZXRsYiBzdWJ0ZXN0ICh0aGF0IEkgaGF2ZSBub3QgdGVzdGVkIHdpdGgga2VybmVscyA+PSA2Ljcp IHRoYXQgZmFpbHMgd2l0aA0Ka2VybmVsIDYuNyBSQzEgbm93IHNlZW1zIHRvIHdvcmsgYXMgZXhw ZWN0ZWQuDQoNCj4gDQo+ID4gKwkJfQ0KPiA+ICsJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOw0K PiA+ICsJfQ0KPiA+ICsjZW5kaWYNCj4gPiArCXJldHVybiBzaG1lbV9yZWFkX21hcHBpbmdfcGFn ZShmaWxlLT5mX21hcHBpbmcsIGlkeCk7DQo+ID4gK30NCj4gPiArDQo+ID4gKy8qKg0KPiA+ICsg KiBwaW5fdXNlcl9wYWdlc19mZCgpIC0gcGluIHVzZXIgcGFnZXMgYXNzb2NpYXRlZCB3aXRoIGEg ZmlsZQ0KPiA+ICsgKiBAZmlsZTogICAgICAgdGhlIGZpbGUgd2hvc2UgcGFnZXMgYXJlIHRvIGJl IHBpbm5lZA0KPiA+ICsgKiBAc3RhcnQ6ICAgICAgc3RhcnRpbmcgZmlsZSBvZmZzZXQNCj4gPiAr ICogQG5yX3BhZ2VzOiAgIG51bWJlciBvZiBwYWdlcyBmcm9tIHN0YXJ0IHRvIHBpbg0KPiA+ICsg KiBAcGFnZXM6ICAgICAgYXJyYXkgdGhhdCByZWNlaXZlcyBwb2ludGVycyB0byB0aGUgcGFnZXMg cGlubmVkLg0KPiA+ICsgKiAgICAgICAgICAgICAgU2hvdWxkIGJlIGF0LWxlYXN0IG5yX3BhZ2Vz IGxvbmcuDQo+ID4gKyAqDQo+ID4gKyAqIEF0dGVtcHQgdG8gcGluIHBhZ2VzIGFzc29jaWF0ZWQg d2l0aCBhIGZpbGUgdGhhdCBiZWxvbmdzIHRvIGVpdGhlcg0KPiBzaG1lbQ0KPiA+ICsgKiBvciBo dWdldGxiLiBUaGUgcGFnZXMgYXJlIGVpdGhlciBmb3VuZCBpbiB0aGUgcGFnZSBjYWNoZSBvciBh bGxvY2F0ZWQgaWYNCj4gPiArICogbmVjZXNzYXJ5LiBPbmNlIHRoZSBwYWdlcyBhcmUgbG9jYXRl ZCwgdGhleSBhcmUgYWxsIHBpbm5lZCB2aWEgRk9MTF9QSU4uDQo+ID4gKyAqIEFuZCwgdGhlc2Ug cGlubmVkIHBhZ2VzIG5lZWQgdG8gYmUgcmVsZWFzZWQgZWl0aGVyIHVzaW5nDQo+IHVucGluX3Vz ZXJfcGFnZXMoKQ0KPiA+ICsgKiBvciB1bnBpbl91c2VyX3BhZ2UoKS4NCj4gPiArICoNCj4gPiAr ICogSXQgbXVzdCBiZSBub3RlZCB0aGF0IHRoZSBwYWdlcyBtYXkgYmUgcGlubmVkIGZvciBhbiBp bmRlZmluaXRlIGFtb3VudA0KPiA+ICsgKiBvZiB0aW1lLiBBbmQsIGluIG1vc3QgY2FzZXMsIHRo ZSBkdXJhdGlvbiBvZiB0aW1lIHRoZXkgbWF5IHN0YXkgcGlubmVkDQo+ID4gKyAqIHdvdWxkIGJl IGNvbnRyb2xsZWQgYnkgdGhlIHVzZXJzcGFjZS4gVGhpcyBiZWhhdmlvciBpcyBlZmZlY3RpdmVs eSB0aGUNCj4gPiArICogc2FtZSBhcyB1c2luZyBGT0xMX0xPTkdURVJNIHdpdGggb3RoZXIgR1VQ IEFQSXMuDQo+ID4gKyAqDQo+ID4gKyAqIFJldHVybnMgbnVtYmVyIG9mIHBhZ2VzIHBpbm5lZC4g VGhpcyB3b3VsZCBiZSBlcXVhbCB0byB0aGUgbnVtYmVyIG9mDQo+ID4gKyAqIHBhZ2VzIHJlcXVl c3RlZC4gSWYgbm8gcGFnZXMgd2VyZSBwaW5uZWQsIGl0IHJldHVybnMgLWVycm5vLg0KPiA+ICsg Ki8NCj4gPiArbG9uZyBwaW5fdXNlcl9wYWdlc19mZChzdHJ1Y3QgZmlsZSAqZmlsZSwgcGdvZmZf dCBzdGFydCwNCj4gPiArCQkgICAgICAgdW5zaWduZWQgbG9uZyBucl9wYWdlcywgc3RydWN0IHBh Z2UgKipwYWdlcykNCj4gPiArew0KPiA+ICsJc3RydWN0IHBhZ2UgKnBhZ2U7DQo+ID4gKwl1bnNp Z25lZCBpbnQgZmxhZ3MsIGk7DQo+ID4gKwlsb25nIHJldDsNCj4gPiArDQo+ID4gKwlpZiAoc3Rh cnQgPCAwKQ0KPiA+ICsJCXJldHVybiAtRUlOVkFMOw0KPiA+ICsNCj4gPiArCWlmICghZmlsZSkN Cj4gPiArCSAgICByZXR1cm4gLUVJTlZBTDsNCj4gPiArDQo+ID4gKwlpZiAoIXNobWVtX2ZpbGUo ZmlsZSkgJiYgIWlzX2ZpbGVfaHVnZXBhZ2VzKGZpbGUpKQ0KPiA+ICsJICAgIHJldHVybiAtRUlO VkFMOw0KPiA+ICsNCj4gPiArCWZsYWdzID0gbWVtYWxsb2NfcGluX3NhdmUoKTsNCj4gPiArCWRv IHsNCj4gPiArCQlmb3IgKGkgPSAwOyBpIDwgbnJfcGFnZXM7IGkrKykgew0KPiA+ICsJCQkvKg0K PiA+ICsgCQkJICogSW4gbW9zdCBjYXNlcywgd2Ugc2hvdWxkIGJlIGFibGUgdG8gZmluZCB0aGUg cGFnZQ0KPiA+ICsJCQkgKiBpbiB0aGUgcGFnZSBjYWNoZS4gSWYgd2UgY2Fubm90IGZpbmQgaXQs IHdlIHRyeSB0bw0KPiA+ICsJCQkgKiBhbGxvY2F0ZSBvbmUgYW5kIGFkZCBpdCB0byB0aGUgcGFn ZSBjYWNoZS4NCj4gPiArCQkJICovDQo+ID4gKwkJCXBhZ2UgPSBmaW5kX2dldF9wYWdlX2ZsYWdz KGZpbGUtPmZfbWFwcGluZywNCj4gPiArCQkJCQkJICAgc3RhcnQgKyBpLA0KPiA+ICsJCQkJCQkg ICBGR1BfQUNDRVNTRUQpOw0KPiA+ICsJCQlpZiAoIXBhZ2UpIHsNCj4gPiArCQkJCXBhZ2UgPSBh bGxvY19maWxlX3BhZ2UoZmlsZSwgc3RhcnQgKyBpKTsNCj4gPiArCQkJCWlmIChJU19FUlIocGFn ZSkpIHsNCj4gPiArCQkJCQlyZXQgPSBQVFJfRVJSKHBhZ2UpOw0KPiA+ICsJCQkJCWdvdG8gZXJy Ow0KPiANCj4gV2hpbGUgbG9va2luZyBhdCBhYm92ZSwgSSBkbyB3b25kZXI6IHdoYXQgaWYgdHdv IHBhcnRpZXMgdHJpZWQgdG8gYWxsb2MNCj4gdGhlIHBhZ2UgYXQgdGhlIHNhbWUgdGltZT8gSSBz dXNwZWN0IHdlJ2Qgd2FudCB0byBoYW5kbGUgLUVFWElTVCBhIGJpdA0KPiBuaWNlciBoZXJlLCBy aWdodD8NCkF0LWxlYXN0IHdpdGggdGhlIHVkbWFidWYgdXNlLWNhc2UsIHRoZXJlIGNhbm5vdCBi ZSBtdWx0aXBsZSBlbnRpdGllcyBhbGxvY2F0aW5nDQphbmQgYWRkaW5nIGEgcGFnZSBhdCBhIGdp dmVuIG9mZnNldCBpbiB0aGUgbWVtZmQgYXQgdGhlIHNhbWUgdGltZS4gSG93ZXZlciwgSQ0KY2Fu IG1ha2UgdGhlIGZvbGxvd2luZyBjaGFuZ2VzIHRvIHByb3RlY3QgYWdhaW5zdCB0aGlzIHBvdGVu dGlhbCBmYWlsdXJlIG1vZGU6DQogICAgICAgIGRvIHsNCiAgICAgICAgICAgICAgICBmb3IgKGkg PSAwOyBpIDwgbnJfcGFnZXM7IGkrKykgew0KK3JldHJ5Og0KKyAgICAgICAgICAgICAgICAgICAg ICAgcGFnZSA9IE5VTEw7DQogICAgICAgICAgICAgICAgICAgICAgICAvKg0KICAgICAgICAgICAg ICAgICAgICAgICAgICogSW4gbW9zdCBjYXNlcywgd2Ugc2hvdWxkIGJlIGFibGUgdG8gZmluZCB0 aGUgcGFnZQ0KICAgICAgICAgICAgICAgICAgICAgICAgICogaW4gdGhlIHBhZ2UgY2FjaGUuIElm IHdlIGNhbm5vdCBmaW5kIGl0LCB3ZSB0cnkgdG8NCiAgICAgICAgICAgICAgICAgICAgICAgICAq IGFsbG9jYXRlIG9uZSBhbmQgYWRkIGl0IHRvIHRoZSBwYWdlIGNhY2hlLg0KICAgICAgICAgICAg ICAgICAgICAgICAgICovDQotICAgICAgICAgICAgICAgICAgICAgICBwYWdlID0gZmluZF9nZXRf cGFnZV9mbGFncyhmaWxlLT5mX21hcHBpbmcsDQotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdGFydCArIGksDQotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGR1BfQUNDRVNTRUQpOw0KKyAgICAgICAgICAg ICAgICAgICAgICAgZm9saW8gPSBfX2ZpbGVtYXBfZ2V0X2ZvbGlvKGZpbGUtPmZfbWFwcGluZywN CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFy dCArIGksDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgRkdQX0FDQ0VTU0VELCAwKTsNCisgICAgICAgICAgICAgICAgICAgICAgIGlmICghSVNfRVJS KGZvbGlvKSkNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZSA9ICZmb2xpby0+ cGFnZTsNCisNCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcGFnZSkgew0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwYWdlID0gYWxsb2NfZmlsZV9wYWdlKGZpbGUsIHN0YXJ0 ICsgaSk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChJU19FUlIocGFnZSkp IHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXQgPSBQVFJfRVJS KHBhZ2UpOw0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXQg PT0gLUVFWElTVCkNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGdvdG8gcmV0cnk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Z290byBlcnI7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCg0KVGhhbmtzLA0K Vml2ZWsNCg0KPiANCj4gDQo+IC0tDQo+IENoZWVycywNCj4gDQo+IERhdmlkIC8gZGhpbGRlbmIN Cg0K