From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9478B606A31A for ; Fri, 23 Oct 2026 12:21:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key, unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=KNf5z+bA Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 45E61112B2B; Fri, 23 Oct 2026 12:14:51 +0000 (UTC) Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.18]) by gabe.freedesktop.org (Postfix) with ESMTPS id E72EC112AFF; Fri, 23 Oct 2026 12:14:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1792757685; x=1824293685; h=from:to:subject:date:message-id:references:in-reply-to: content-id:content-transfer-encoding:mime-version; bh=DBivDipaY43Cwb96wJoMcLWPbcWbgOUCxXWeJ2IE3Gw=; b=KNf5z+bAS5FzfUHPVnmq7WuH2oqdQJ9h+iAWUiXnGVphhNFjmMOZfrja talS4D446P8AyL+Tpp1ACFYT+4xiLNsIQRrzYt6034WAIqgR420MKG1eK ILnSbMq28lu7GyJWp3HhkeTntZq9wPCQRmucG+hz46XzfC88mCpNPBVDq UYisaP+vkbxVa1zY1ZoMrrEl15UXaR3/uI6MFZgb3CKSEjDKStDm77/Sy oREwmMqv2ZQYVqkgunV813EYLe2cfEEIpyhGzN0tzjLhu7T9LBBfK49Ro Q378k4u2UC+J7VfrWv/RkoBe4EtKIkvTeGgT7pjYhYT3lOW8ieFNOGGvx A==; X-CSE-ConnectionGUID: fvmTNfxsRYiwBoNFExPJvA== X-CSE-MsgGUID: NbG0RMe4R02QI0vkLwZ/sg== X-IronPort-AV: E=McAfee;i="6800,10657,11943"; a="1521890" X-IronPort-AV: E=Sophos;i="6.27,174,1787036400"; d="scan'208";a="1521890" Received: from orviesa005.jf.intel.com ([10.64.159.145]) by orvoesa110.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Oct 2026 05:14:44 -0700 X-CSE-ConnectionGUID: mZtZiSDhS8S1Y7Dab7TtaQ== X-CSE-MsgGUID: JuCdwr7XTeKm0W1UkouNrw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.27,174,1787036400"; d="scan'208";a="3569215" Received: from orsmsx903.amr.corp.intel.com ([10.22.229.25]) by orviesa005.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Oct 2026 05:14:44 -0700 Received: from ORSMSX901.amr.corp.intel.com (10.22.229.23) by ORSMSX903.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.49; Fri, 23 Oct 2026 05:14:43 -0700 Received: from ORSEDG902.ED.cps.intel.com (10.7.248.12) by ORSMSX901.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.49 via Frontend Transport; Fri, 23 Oct 2026 05:14:43 -0700 Received: from BN1PR04CU002.outbound.protection.outlook.com (52.101.56.1) by edgegateway.intel.com (134.134.137.112) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.49; Fri, 23 Oct 2026 05:14:42 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wuYfDAeNJaYEilG3adCl6tiCX3rmPEGiFy0rsxRWAM8/6U2nI/6OarpkUlq5J4W9KbDvOdi3Ux2bH5C1MLyFEX8zgFH/xnTb07N0iMMvdmuTWRdU36kXv5z8z2K4DIzTwGhA86phQ45tzDWuv7d3+73JAy6j0NBK2qCwEVfCmWAWJGDc7c61q0eX3kagCvTH+aZ/0bXNbVAlsL19Br3LYuCWe/uUSK3yeLKviUi4eGbVvSeUnV5DxbRKl7UvHB6A0+vQ3T15f3P9jebQMOpdfyVDZJ6qrOfH0MQ282GiaSHGEjJ8OHp+ndoMCGvCxk3qE4vfIqXSZ6wVOwuV/x5dAg== 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=DBivDipaY43Cwb96wJoMcLWPbcWbgOUCxXWeJ2IE3Gw=; b=HMwyPR++MVPiG3z/ORe9peIxXWbyanCgqJct1gWhdAHGdyYoANbEGVFOKTgoozxfMgZV6Zw/2pnSjLjR9sdBkCwu3L7FTw7PwFuxCbQXoH9W2eYANff2ODzAk9s4oWEasTjxLPigBfOebd+xYndf4JoTeSBfyk4sn1VcmxsGGWHsWAwBwfPt5GkznwZ8Ox0OKYZch4KMySbvL8QeVycE/mg0HIz/6f4ZOUiRmDyuWVFCebu9KHxejKwp2h8riwTK6GiZPVodlTu35ei7uEGQU7exS5OuxEcc0Kw2cTOIua4SpT5cqTkxp3tKcXE7WHAkmkP+o9jWACjhU6xvlm4NVA== 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 DM4PR11MB6019.namprd11.prod.outlook.com (2603:10b6:8:60::5) by SJ0PR11MB6575.namprd11.prod.outlook.com (2603:10b6:a03:477::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.546.19; Fri, 23 Oct 2026 12:14:34 +0000 Received: from DM4PR11MB6019.namprd11.prod.outlook.com ([fe80::9086:5e0b:ad24:762]) by DM4PR11MB6019.namprd11.prod.outlook.com ([fe80::9086:5e0b:ad24:762%6]) with mapi id 15.21.0546.016; Fri, 23 Oct 2026 12:14:34 +0000 From: "Hogander, Jouni" To: "intel-xe@lists.freedesktop.org" , "Kahola, Mika" , "intel-gfx@lists.freedesktop.org" Subject: Re: [PATCH v3 4/9] drm/i915/psr: Split the selective fetch calculation into helpers Thread-Topic: [PATCH v3 4/9] drm/i915/psr: Split the selective fetch calculation into helpers Thread-Index: AQHdYtV1cdwrU29w4Uq2cX+Kgi9UnbcLCnMA Date: Fri, 23 Oct 2026 12:14:34 +0000 Message-ID: References: <20261023100052.683192-1-mika.kahola@intel.com> <20261023100052.683192-5-mika.kahola@intel.com> In-Reply-To: <20261023100052.683192-5-mika.kahola@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM4PR11MB6019:EE_|SJ0PR11MB6575:EE_ x-ms-office365-filtering-correlation-id: 305eda3d-251c-4961-7804-08df30ff3331 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|23010399003|366016|376014|1800799024|10067099003|18002099003|22082099003|11063799006|56012099006|4143699003|261009223027099003|261022105027099003|261021135927099003|261021123027099003|261021121427099003|38070700021; x-microsoft-antispam-message-info: 7QgV//3js0XHbFYw8CpGLAQKuXednqRbboGMczNUiD3zXZMrTLoL/9X9X/SHJToPdBnTEGHuyJkA6kEpO02LlM2jSq3PvVMrIEf4mO4Zv6jKFk89P9q8unEY9t+Xbxp6lWDzsvVGKyNgS651EQbQCKXge6XRr2+r2vxwoWTuqTvjvEmFkoRn1rSFB8R4d0eU1Mi+akMGLFFo73Xu3btiIA20Wjij17Ji0ABMCZC8xMR8QWHYwjesome19mYh1p1fu1bqgqv11r+n/ivEAzIk1A86Iw3xkp1HPKyaW3vkMJXdjnHDjUr58qOrgvzENflUbZ9deuuK0OBW2jWtBIa6YfpLYV3v5NRV152PHfWeu4cyLQ39xuYRA0AZcGYcLiug+EkTFdHSxu59Q7YidYGZSjSUxJTTggiCie90PbGjRle3Ugd4+/0xMC7O6iOeFKJdmTfrY4+sTT5jmmZgU8FQtx8SKD1fFrzxqKheq5TgRimXet/GpGI7Y/qBx1y8QZGjcIat/nDPLRyrPwazRiNkecmMFPmDL+77gzjwrZBexkNm5x8KilAoKedmhG4Umj9QN9XpiRozrZmN+stz97phgBVwZ8pzcJKCWkDH/JyM+zY6628eiZnzDXxZfnHCYq/b0FYK/Y0/Pu+j5DKZ1+uLtQdlpME+dKSH/ml2oAfP8fV3CQT6KY7QNMUNChJ6hZcd+2TRAzLfV0UNmj1A+rTpeshR49+ww5PmaZfoQiK4Sf8= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR11MB6019.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(23010399003)(366016)(376014)(1800799024)(10067099003)(18002099003)(22082099003)(11063799006)(56012099006)(4143699003)(261009223027099003)(261022105027099003)(261021135927099003)(261021123027099003)(261021121427099003)(38070700021); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?dERXdGtsNTlxbUdZVitYZXlnM0JCNkMzdW5sVFlvQWprcXBmN3loS1ZXV3F4?= =?utf-8?B?eFM0Z1BtWEcrR2ZvOTRzSlF1MEZKcDcxMGV6a2tOa3RIVVhFTHJFZEVYNjgr?= =?utf-8?B?citUNU1CbWFXV3g5Kzk3K3E2S1d3Z1VoKzVoNWxsVWgwODhzeWN6TG1ncEo4?= =?utf-8?B?MVBvdStsZW9CcC9Nb1hHd2NFUy9QTm9WWnZyNVJjMFhjeGZBUEdOUnVpbzJI?= =?utf-8?B?cjlDcHRxSDZ3VnRlNjZZTWhjWHpTbEZSQ0gzWUsvTzRrcFhNUFVXZVMxOEpk?= =?utf-8?B?YXpHM2d1dThPMnNHNGFTTm1TMkozQXJvcnNsUzFBNmRpbzBKZzFEQjlOb3Ji?= =?utf-8?B?bzd2STRzSDRrM2g3bE5WNi84WU5tZFozelgrL1ZVRy9HeDZkbllZUnJqQnkr?= =?utf-8?B?K29oMHJrVVVNcHZnK3pKNFo2ZlJOdDRMdm0zT0psZlFKbmpDa2prRlR6dnlQ?= =?utf-8?B?SUdMR1J2M2t6ZXV3d1lOLzVWOTR0cWV2K1ZROWdYRW0ycmhwUFFkRExWeFJ2?= =?utf-8?B?SEgwVjYxa0RoOEkzbGFzWU42N1pydDJZZ0U4bU9pZ1hoZU1LaGEzWFE5WXZj?= =?utf-8?B?a0FUaFJ5NmtTNVdLZS9SVEhVUDNnUng3SUxqQUNqZnJzbXBvaTl6V1BXK096?= =?utf-8?B?aHAxN1h3MEQwSXdxRXFQeWpBMzlBOGp6YTg2VUc1dS9Ub2krZkRqYy9IQ3ZW?= =?utf-8?B?WTk3QW9LMGFla3AxcjhGWHNzNGdsSzRsREI2R3RlYlhMdlVpSDJhODh2ZTJ5?= =?utf-8?B?ZVp1TnhJcGtxSnA3ZjliYTZrSzU1ZjNnVjl2Skhmb0txV0lzS1VEZlR5eVI3?= =?utf-8?B?bVVDVUppQ0NaVkdoY3RleTlnZ0U1VjA5UkNNZ3NCZGU4eXRnVlZnUy8rWlB6?= =?utf-8?B?bHhmdDZnRmYyd0pUT3ZXSUcyNHBoQnh6VnNqc3FlVFpEWmN2Y3ZaZDlGSzIv?= =?utf-8?B?eGdpMnh3cnhKZHRwOXdIaUQzakNueGtmTXBxa2x6MXcyZHphVUI3RzFEZnpF?= =?utf-8?B?VTZjNVljUzBFSTRwMzV5UEkzUGFPbTZBMlh6RnRCRXBVVXo2UjdZS0Z3WUI5?= =?utf-8?B?enJiS1Z2UWtWbmRvUStJdkY3Nk92cm5sM2FGZlFUMnlnS2JkUU01SFZoUWhD?= =?utf-8?B?QktETm9BMEtOdVExY3JKUUNZbGxKa2ZFczl3N2dwL0MzT3Jsd2c5WWplNzB2?= =?utf-8?B?QUZLdzBrQmR5b3hEWFJmTWM4dU5CeGVHTTdxd0Nndit4dHpiREJoOGpPQnZG?= =?utf-8?B?MG1OVEpLZHUzNWpkRXN1ZXRIV1NnV1d2UlZ1UnE5emQzaDRKT3pTZmVmMEgw?= =?utf-8?B?ZjNsaGZhbmdwclhzRmdvSkp0S0VBUUdVTDJmWTNJL2l5NnhWVjNqQnVEdmlM?= =?utf-8?B?dXZZUzVUekdObTd5UzNpSWQvN2xybDVxV0U4Zm1QMGxYcTdUZmtZWFJWaWJM?= =?utf-8?B?VGt6WWw1MFJhb0FLZGkyenZNM1o1NzVKWnpqeGpZSUYyRjBET29aV2xWTm9q?= =?utf-8?B?VGRaSG1nSEF3a095SlIvZG8xR3g2OEozc1M2QndER0lzY0JLblB0VUdiNytG?= =?utf-8?B?a1V0OXVmbDN6aEJ0eFNLQ1VaOWl0aWtRRnF4Nnk1VmcwamVnTXUrN2o1UjJN?= =?utf-8?B?Z0t0UHdWd0ZHdG1WMGxWV2VLamRCODdFNzN1R3E5TWpjMHBTOTZBbEsycFdp?= =?utf-8?B?MEVRWVZyVG9XWnFPWU50WmFvTnFtOTYzM1FhaTQ1eWRCY1pLRFYwUlVHbWYy?= =?utf-8?B?bW1MS0NYamhaUWZEbGpsY3E5OUtsREFWVFFneCtzaTUrbTYraTNDUUFlendW?= =?utf-8?B?NEpPU2t6b2VCTzB5bTV6bzF2N3hWVnoyUG5IZHQvTTR5dE1VR2p3aGNTNzlu?= =?utf-8?B?WXhlSkFuWWo5ampoN21uZzh4eU9HUUptNUROVzY0WktLNTduMGx3SXcrVVg2?= =?utf-8?B?YkxORWEyaURtSldjd3NyVlQ2UHZFWm90ejFEUUdjOTdmaS9FR2habEs0WVJZ?= =?utf-8?B?ZjAvQjJLblpWRDZFU3ozL1dYdmJWZEUzZnFWclBlZ0hwWjVrVUZJT1ZsN0tO?= =?utf-8?B?Z3ljOVAxQUtIRFI5cmgzS016VDd5VWM4NjFzb04xc3ZtenYvQUtuS3MzU05y?= =?utf-8?B?NWFVaFBTRVVteVRrYUpMUFJiQ0Z6U21UV1ZsUmxJTVZiZzJLanNHWXhYek5w?= =?utf-8?B?MDY5empxVW9uUWRIOHFiMnJLMmo2cnVzNys2a01MdlFiU1ZPMWkzZUdCS1A1?= =?utf-8?B?YUFpUEcrUFh4WGpETUErQVpZVVg1L2JKeTZxSUhNWE85MWhhTDFJV1ovd1pZ?= =?utf-8?B?TE1CWWVXUnJmKzBiT2ROL3JiT1BiM245MGl2SEtpMmZEdVZuR3h4M3BqYWhI?= =?utf-8?Q?fVIX8zqrNFfTG2m8=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 X-Archived-By: MIME-Version: 1.0 X-Exchange-RoutingPolicyChecked: BdCAXQr4l5Lfpjx0odE16N3aaqTy3OoqxBbBZEYGN21z+su1GzbrIxLmlerC8bL4JbZa6VzaMAG/tu2TWs2ZUQJIALsD96q3Wwm4TJM5t4XQis3j/7v18qUE2Sd1a89HqWyQSRektH3YNqBbFC9T17V8K7RrcJGLcoW1COlEtqOIQXTmsLWzV61yNFc6YgQ9l+6q/KyAHiPTzub+pavnovczOMlJWetKdZ2orZvh1pd7TbE9DA89lrFvF4o/EfoZgQ0iN+WFXaxPJpJwa3pT+Sas0+fmXgzuI+LlEJAjJhYgxctNLEKRQrqJzaUjwLIJNjwZBf8e0vBkkCgA/Dyf3g== X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB6019.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 305eda3d-251c-4961-7804-08df30ff3331 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Oct 2026 12:14:34.3318 (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: nUMxksI1gf2KoPZ3m4hQrYWkimGYleatlH6IEpraQtRMTj0Xohkf5IQw3iBXN9fOMSRCwK+O62owFr40EP0bwtNqVOlNqRU4rOHhChCYP3o= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB6575 X-OriginatorOrg: intel.com X-BeenThere: intel-xe@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel Xe graphics driver List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "Intel-xe" X-Spam-Status: No, score=-16.1 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=4.0.1 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on aws-us-west-2-korg-listserv-alma10-1 T24gRnJpLCAyMDI2LTEwLTIzIGF0IDEwOjAwICswMDAwLCBNaWthIEthaG9sYSB3cm90ZToNCj4g VGhlIGpvaW5lciBuZWVkcyBldmVyeSBqb2luZWQgcGlwZSB0byBoYXZlIGl0cyBzZWxlY3RpdmUg dXBkYXRlIGFyZWENCj4gY2FsY3VsYXRlZCBiZWZvcmUgYW55IG9mIHRoZW0gc2V0cyB0aGUgcGxh bmUgYXJlYXMsIGJ1dA0KPiBpbnRlbF9wc3IyX3NlbF9mZXRjaF91cGRhdGUoKSBkb2VzIGJvdGgg aW4gb25lIGdvLiBNb3ZlIHRoZSB0d28NCj4gaGFsdmVzDQo+IGludG8gcHNyMl9zZWxfZmV0Y2hf Y29tcHV0ZV9zdV9hcmVhKCkgYW5kDQo+IHBzcjJfc2VsX2ZldGNoX2FwcGx5X3N1X2FyZWEoKSBh bmQgY2FsbCB0aGVtIGluIHR1cm4uDQo+IA0KPiBObyBmdW5jdGlvbmFsIGNoYW5nZS4NCj4gDQo+ IFNpZ25lZC1vZmYtYnk6IE1pa2EgS2Fob2xhIDxtaWthLmthaG9sYUBpbnRlbC5jb20+DQoNClJl dmlld2VkLWJ5OiBKb3VuaSBIw7ZnYW5kZXIgPGpvdW5pLmhvZ2FuZGVyQGludGVsLmNvbT4NCj4g LS0tDQo+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wc3IuYyB8IDE0NyAr KysrKysrKysrKysrKy0tLS0tLS0NCj4gLS0NCj4gwqAxIGZpbGUgY2hhbmdlZCwgOTAgaW5zZXJ0 aW9ucygrKSwgNTcgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wc3IuYw0KPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfcHNyLmMNCj4gaW5kZXggMmE0ZDY2ODFkNTBlMy4uOWRiMDY0ZmIzOWFmZCAx MDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9wc3IuYw0K PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Bzci5jDQo+IEBAIC0y OTA2LDExICsyOTA2LDEwIEBAIGludGVsX3Bzcl9hcHBseV9zdV9hcmVhX3dvcmthcm91bmRzKHN0 cnVjdA0KPiBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQ0KPiDCoAkJaW50ZWxfcHNyX2Fw cGx5X3ByX2xpbmtfb25fc3Vfd2EoY3J0Y19zdGF0ZSk7DQo+IMKgfQ0KPiDCoA0KPiAtaW50IGlu dGVsX3BzcjJfc2VsX2ZldGNoX3VwZGF0ZShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0 ZSwNCj4gLQkJCQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykNCj4gK3N0YXRpYyB2b2lkIHBzcjJf c2VsX2ZldGNoX2NvbXB1dGVfc3VfYXJlYShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlDQo+ICpz dGF0ZSwNCj4gKwkJCQkJwqDCoCBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywNCj4gKwkJCQkJwqDC oCBib29sICpmdWxsX3VwZGF0ZSkNCj4gwqB7DQo+IC0JY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKm9sZF9jcnRjX3N0YXRlID0NCj4gLQkJaW50ZWxfYXRvbWljX2dldF9vbGRfY3J0Y19z dGF0ZShzdGF0ZSwgY3J0Yyk7DQo+IMKgCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlID0NCj4gaW50ZWxfYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7DQo+ IMKgCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqbmV3X3BsYW5lX3N0YXRlLCAqb2xkX3BsYW5l X3N0YXRlOw0KPiDCoAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5lOw0KPiBAQCAtMjkyMCwyNCAr MjkxOSw5IEBAIGludCBpbnRlbF9wc3IyX3NlbF9mZXRjaF91cGRhdGUoc3RydWN0DQo+IGludGVs X2F0b21pY19zdGF0ZSAqc3RhdGUsDQo+IMKgCQkueDIgPSBkcm1fcmVjdF93aWR0aCgmY3J0Y19z dGF0ZS0+cGlwZV9zcmMpLA0KPiDCoAkJLnkyID0gZHJtX3JlY3RfaGVpZ2h0KCZjcnRjX3N0YXRl LT5waXBlX3NyYyksDQo+IMKgCX07DQo+IC0JYm9vbCBmdWxsX3VwZGF0ZSA9IGZhbHNlLCBzdV9h cmVhX2NoYW5nZWQ7DQo+IMKgCWludCBpOw0KPiDCoA0KPiAtCS8qDQo+IC0JICogU2VsZWN0aXZl IGZldGNoIGlzIG5vdCBhbHdheXMgdXNhYmxlLCBmb3IgaW5zdGFuY2UgaXQgaXMNCj4gZHJvcHBl ZA0KPiAtCSAqIHdoaWxlIHBpcGUgQ1JDIGlzIGFjdGl2ZS4gVGhlIHBsYW5lcyBrZWVwIHRoZWly IHNlbGVjdGl2ZQ0KPiBmZXRjaA0KPiAtCSAqIGVuYWJsZSBiaXQgc2V0IGluIGhhcmR3YXJlIG92 ZXIgdGhhdCwgYW5kIGEgcGxhbmUNCj4gZGlzYWJsZWQgd2hpbGUNCj4gLQkgKiBzZWxlY3RpdmUg ZmV0Y2ggaXMgb2ZmIG5ldmVyIGdldHMgdGhlIGJpdCBjbGVhcmVkLiBPbmNlDQo+IHNlbGVjdGl2 ZQ0KPiAtCSAqIGZldGNoIGNvbWVzIGJhY2sgdGhlIGhhcmR3YXJlIHdvdWxkIHJlc3VtZSBmZXRj aGluZyBmb3IgYQ0KPiBwbGFuZSB0aGF0DQo+IC0JICogaXMgbm8gbG9uZ2VyIGVuYWJsZWQgYW5k IGtlZXAgaXRzIEREQiByYW5nZSByZXNlcnZlZCwgc28NCj4gaGF2ZSB0aGUNCj4gLQkgKiBwbGFu ZSB1cGRhdGUgZHJvcCB0aGUgYml0IGZvciBldmVyeSBwbGFuZSBvZiB0aGUgcGlwZSBhcw0KPiBz ZWxlY3RpdmUNCj4gLQkgKiBmZXRjaCBpcyB0dXJuZWQgb2ZmLg0KPiAtCSAqLw0KPiAtCWNydGNf c3RhdGUtPmNsZWFyX3BzcjJfc2VsX2ZldGNoID0gb2xkX2NydGNfc3RhdGUtDQo+ID5lbmFibGVf cHNyMl9zZWxfZmV0Y2ggJiYNCj4gLQkJIWNydGNfc3RhdGUtPmVuYWJsZV9wc3IyX3NlbF9mZXRj aDsNCj4gLQ0KPiAtCWlmICghY3J0Y19zdGF0ZS0+ZW5hYmxlX3BzcjJfc2VsX2ZldGNoKQ0KPiAt CQlyZXR1cm4gMDsNCj4gKwkqZnVsbF91cGRhdGUgPSBmYWxzZTsNCj4gwqANCj4gwqAJY3J0Y19z dGF0ZS0+cHNyMl9zdV9hcmVhLngxID0gMDsNCj4gwqAJY3J0Y19zdGF0ZS0+cHNyMl9zdV9hcmVh LnkxID0gLTE7DQo+IEBAIC0yOTQ1LDggKzI5MjksOCBAQCBpbnQgaW50ZWxfcHNyMl9zZWxfZmV0 Y2hfdXBkYXRlKHN0cnVjdA0KPiBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLA0KPiDCoAljcnRj X3N0YXRlLT5wc3IyX3N1X2FyZWEueTIgPSAtMTsNCj4gwqANCj4gwqAJaWYgKCFwc3IyX3NlbF9m ZXRjaF9waXBlX3N0YXRlX3N1cHBvcnRlZChjcnRjX3N0YXRlKSkgew0KPiAtCQlmdWxsX3VwZGF0 ZSA9IHRydWU7DQo+IC0JCWdvdG8gc2tpcF9zdV9hcmVhX2NhbGM7DQo+ICsJCSpmdWxsX3VwZGF0 ZSA9IHRydWU7DQo+ICsJCXJldHVybjsNCj4gwqAJfQ0KPiDCoA0KPiDCoAkvKg0KPiBAQCAtMjk2 OSw3ICsyOTUzLDcgQEAgaW50IGludGVsX3BzcjJfc2VsX2ZldGNoX3VwZGF0ZShzdHJ1Y3QNCj4g aW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwNCj4gwqANCj4gwqAJCWlmIChuZXdfcGxhbmVfc3Rh dGUtPnVhcGkudmlzaWJsZSAmJg0KPiDCoAkJwqDCoMKgDQo+ICFwc3IyX3NlbF9mZXRjaF9wbGFu ZV9zdGF0ZV9zdXBwb3J0ZWQobmV3X3BsYW5lX3N0YXRlKSkgew0KPiAtCQkJZnVsbF91cGRhdGUg PSB0cnVlOw0KPiArCQkJKmZ1bGxfdXBkYXRlID0gdHJ1ZTsNCj4gwqAJCQlicmVhazsNCj4gwqAJ CX0NCj4gwqANCj4gQEAgLTMwMjYsNDIgKzMwMTAsMjQgQEAgaW50IGludGVsX3BzcjJfc2VsX2Zl dGNoX3VwZGF0ZShzdHJ1Y3QNCj4gaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwNCj4gwqAJICog Y2FsY3VsYXRpb24gZm9yIHRob3NlLg0KPiDCoAkgKi8NCj4gwqAJaWYgKGNydGNfc3RhdGUtPnBz cjJfc3VfYXJlYS55MSA9PSAtMSkNCj4gLQkJZnVsbF91cGRhdGUgPSB0cnVlOw0KPiAtDQo+IC0J aWYgKGZ1bGxfdXBkYXRlKQ0KPiAtCQlnb3RvIHNraXBfc3VfYXJlYV9jYWxjOw0KPiAtDQo+IC0J aW50ZWxfcHNyX2FwcGx5X3N1X2FyZWFfd29ya2Fyb3VuZHMoY3J0Y19zdGF0ZSk7DQo+IC0NCj4g LQlkbyB7DQo+IC0JCWJvb2wgY3Vyc29yX2luX3N1X2FyZWEgPSBmYWxzZTsNCj4gLQ0KPiAtCQkv Kg0KPiAtCQkgKiBBZGp1c3Qgc3UgYXJlYSB0byBjb3ZlciBjdXJzb3IgZnVsbHkgYXMgbmVjZXNz YXJ5DQo+IC0JCSAqIChlYXJseSB0cmFuc3BvcnQpLiBBIHZpc2libGUgY3Vyc29yIGlzIGluIHRo ZQ0KPiBzdGF0ZQ0KPiAtCQkgKiBldmVuIHdoZW4gaXQgaXMgbm90IHVwZGF0ZWQgYnkgaXRzZWxm IGFzIGFsbA0KPiBwbGFuZXMNCj4gLQkJICogb2YgdGhlIHBpcGUgYXJlIGFkZGVkIGludG8gdGhl IHN0YXRlIGJlZm9yZSB0aGUNCj4gcGxhbmUNCj4gLQkJICogY2hlY2tzIHdoZW4gc2VsZWN0aXZl IGZldGNoIGlzIGVuYWJsZWQuDQo+IC0JCSAqLw0KPiAtCQlpbnRlbF9wc3IyX3NlbF9mZXRjaF9l dF9hbGlnbm1lbnQoc3RhdGUsIGNydGMsDQo+ICZkaXNwbGF5X2FyZWEsDQo+IC0JCQkJCQnCoA0K PiAmY3Vyc29yX2luX3N1X2FyZWEpOw0KPiAtDQo+IC0JCXN1X2FyZWFfY2hhbmdlZCA9DQo+IGlu dGVsX3BzcjJfc2VsX2ZldGNoX3BpcGVfYWxpZ25tZW50KGNydGNfc3RhdGUpOw0KPiArCQkqZnVs bF91cGRhdGUgPSB0cnVlOw0KPiArfQ0KPiDCoA0KPiAtCQkvKg0KPiAtCQkgKiBJZiB0aGUgY3Vy c29yIHdhcyBvdXRzaWRlIHRoZSBTVSBhcmVhIGJlZm9yZQ0KPiAtCQkgKiBhbGlnbm1lbnQsIHRo ZSBhbGlnbm1lbnQgc3RlcCAod2hpY2ggb25seSBleHBhbmRzDQo+IC0JCSAqIFNVKSBtYXkgcHVs bCB0aGUgY3Vyc29yIHBhcnRpYWxseSBpbnNpZGUsIHNvIHdlDQo+IC0JCSAqIG11c3QgcnVuIEVU IGFsaWdubWVudCBhZ2FpbiB0byBmdWxseSBjb3ZlciBpdC4NCj4gQnV0DQo+IC0JCSAqIGlmIHRo ZSBjdXJzb3Igd2FzIGFscmVhZHkgZnVsbHkgaW5zaWRlIGJlZm9yZQ0KPiAtCQkgKiBhbGlnbm1l bnQsIGV4cGFuZGluZyB0aGUgU1UgYXJlYSB3b24ndCBjaGFuZ2UNCj4gdGhhdCwNCj4gLQkJICog c28gbm8gZnVydGhlciB3b3JrIGlzIG5lZWRlZC4NCj4gLQkJICovDQo+IC0JCWlmIChjdXJzb3Jf aW5fc3VfYXJlYSkNCj4gLQkJCWJyZWFrOw0KPiAtCX0gd2hpbGUgKHN1X2FyZWFfY2hhbmdlZCk7 DQo+ICtzdGF0aWMgaW50IHBzcjJfc2VsX2ZldGNoX2FwcGx5X3N1X2FyZWEoc3RydWN0IGludGVs X2F0b21pY19zdGF0ZQ0KPiAqc3RhdGUsDQo+ICsJCQkJCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRj LA0KPiArCQkJCQlib29sIGZ1bGxfdXBkYXRlKQ0KPiArew0KPiArCXN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlID0NCj4gaW50ZWxfYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShz dGF0ZSwgY3J0Yyk7DQo+ICsJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpuZXdfcGxhbmVfc3Rh dGUsICpvbGRfcGxhbmVfc3RhdGU7DQo+ICsJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZTsNCj4g KwlzdHJ1Y3QgZHJtX3JlY3QgZGlzcGxheV9hcmVhID0gew0KPiArCQkueDEgPSAwLA0KPiArCQku eTEgPSAwLA0KPiArCQkueDIgPSBkcm1fcmVjdF93aWR0aCgmY3J0Y19zdGF0ZS0+cGlwZV9zcmMp LA0KPiArCQkueTIgPSBkcm1fcmVjdF9oZWlnaHQoJmNydGNfc3RhdGUtPnBpcGVfc3JjKSwNCj4g Kwl9Ow0KPiArCWludCBpOw0KPiDCoA0KPiAtc2tpcF9zdV9hcmVhX2NhbGM6DQo+IMKgCWlmIChm dWxsX3VwZGF0ZSkNCj4gwqAJCWNsaXBfYXJlYV91cGRhdGUoJmNydGNfc3RhdGUtPnBzcjJfc3Vf YXJlYSwNCj4gJmRpc3BsYXlfYXJlYSwNCj4gwqAJCQkJICZkaXNwbGF5X2FyZWEpOw0KPiBAQCAt MzEyMSw2ICszMDg3LDczIEBAIGludCBpbnRlbF9wc3IyX3NlbF9mZXRjaF91cGRhdGUoc3RydWN0 DQo+IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsDQo+IMKgCXJldHVybiAwOw0KPiDCoH0NCj4g wqANCj4gK2ludCBpbnRlbF9wc3IyX3NlbF9mZXRjaF91cGRhdGUoc3RydWN0IGludGVsX2F0b21p Y19zdGF0ZSAqc3RhdGUsDQo+ICsJCQkJc3RydWN0IGludGVsX2NydGMgKmNydGMpDQo+ICt7DQo+ ICsJY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlID0NCj4gKwkJ aW50ZWxfYXRvbWljX2dldF9vbGRfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7DQo+ICsJc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPQ0KPiBpbnRlbF9hdG9taWNfZ2V0X25ld19j cnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsNCj4gKwlzdHJ1Y3QgZHJtX3JlY3QgZGlzcGxheV9hcmVh ID0gew0KPiArCQkueDEgPSAwLA0KPiArCQkueTEgPSAwLA0KPiArCQkueDIgPSBkcm1fcmVjdF93 aWR0aCgmY3J0Y19zdGF0ZS0+cGlwZV9zcmMpLA0KPiArCQkueTIgPSBkcm1fcmVjdF9oZWlnaHQo JmNydGNfc3RhdGUtPnBpcGVfc3JjKSwNCj4gKwl9Ow0KPiArCWJvb2wgZnVsbF91cGRhdGUsIHN1 X2FyZWFfY2hhbmdlZDsNCj4gKw0KPiArCS8qDQo+ICsJICogU2VsZWN0aXZlIGZldGNoIGlzIG5v dCBhbHdheXMgdXNhYmxlLCBmb3IgaW5zdGFuY2UgaXQgaXMNCj4gZHJvcHBlZA0KPiArCSAqIHdo aWxlIHBpcGUgQ1JDIGlzIGFjdGl2ZS4gVGhlIHBsYW5lcyBrZWVwIHRoZWlyIHNlbGVjdGl2ZQ0K PiBmZXRjaA0KPiArCSAqIGVuYWJsZSBiaXQgc2V0IGluIGhhcmR3YXJlIG92ZXIgdGhhdCwgYW5k IGEgcGxhbmUNCj4gZGlzYWJsZWQgd2hpbGUNCj4gKwkgKiBzZWxlY3RpdmUgZmV0Y2ggaXMgb2Zm IG5ldmVyIGdldHMgdGhlIGJpdCBjbGVhcmVkLiBPbmNlDQo+IHNlbGVjdGl2ZQ0KPiArCSAqIGZl dGNoIGNvbWVzIGJhY2sgdGhlIGhhcmR3YXJlIHdvdWxkIHJlc3VtZSBmZXRjaGluZyBmb3IgYQ0K PiBwbGFuZSB0aGF0DQo+ICsJICogaXMgbm8gbG9uZ2VyIGVuYWJsZWQgYW5kIGtlZXAgaXRzIERE QiByYW5nZSByZXNlcnZlZCwgc28NCj4gaGF2ZSB0aGUNCj4gKwkgKiBwbGFuZSB1cGRhdGUgZHJv cCB0aGUgYml0IGZvciBldmVyeSBwbGFuZSBvZiB0aGUgcGlwZSBhcw0KPiBzZWxlY3RpdmUNCj4g KwkgKiBmZXRjaCBpcyB0dXJuZWQgb2ZmLg0KPiArCSAqLw0KPiArCWNydGNfc3RhdGUtPmNsZWFy X3BzcjJfc2VsX2ZldGNoID0gb2xkX2NydGNfc3RhdGUtDQo+ID5lbmFibGVfcHNyMl9zZWxfZmV0 Y2ggJiYNCj4gKwkJIWNydGNfc3RhdGUtPmVuYWJsZV9wc3IyX3NlbF9mZXRjaDsNCj4gKw0KPiAr CWlmICghY3J0Y19zdGF0ZS0+ZW5hYmxlX3BzcjJfc2VsX2ZldGNoKQ0KPiArCQlyZXR1cm4gMDsN Cj4gKw0KPiArCXBzcjJfc2VsX2ZldGNoX2NvbXB1dGVfc3VfYXJlYShzdGF0ZSwgY3J0YywgJmZ1 bGxfdXBkYXRlKTsNCj4gKw0KPiArCWlmICghZnVsbF91cGRhdGUpIHsNCj4gKwkJaW50ZWxfcHNy X2FwcGx5X3N1X2FyZWFfd29ya2Fyb3VuZHMoY3J0Y19zdGF0ZSk7DQo+ICsNCj4gKwkJZG8gew0K PiArCQkJYm9vbCBjdXJzb3JfaW5fc3VfYXJlYSA9IGZhbHNlOw0KPiArDQo+ICsJCQkvKg0KPiAr CQkJICogQWRqdXN0IHN1IGFyZWEgdG8gY292ZXIgY3Vyc29yIGZ1bGx5IGFzDQo+IG5lY2Vzc2Fy eQ0KPiArCQkJICogKGVhcmx5IHRyYW5zcG9ydCkuIEEgdmlzaWJsZSBjdXJzb3IgaXMgaW4NCj4g dGhlIHN0YXRlDQo+ICsJCQkgKiBldmVuIHdoZW4gaXQgaXMgbm90IHVwZGF0ZWQgYnkgaXRzZWxm IGFzDQo+IGFsbCBwbGFuZXMNCj4gKwkJCSAqIG9mIHRoZSBwaXBlIGFyZSBhZGRlZCBpbnRvIHRo ZSBzdGF0ZQ0KPiBiZWZvcmUgdGhlIHBsYW5lDQo+ICsJCQkgKiBjaGVja3Mgd2hlbiBzZWxlY3Rp dmUgZmV0Y2ggaXMgZW5hYmxlZC4NCj4gKwkJCSAqLw0KPiArCQkJaW50ZWxfcHNyMl9zZWxfZmV0 Y2hfZXRfYWxpZ25tZW50KHN0YXRlLA0KPiBjcnRjLCAmZGlzcGxheV9hcmVhLA0KPiArCQkJCQkJ CcKgDQo+ICZjdXJzb3JfaW5fc3VfYXJlYSk7DQo+ICsNCj4gKwkJCXN1X2FyZWFfY2hhbmdlZCA9 DQo+IGludGVsX3BzcjJfc2VsX2ZldGNoX3BpcGVfYWxpZ25tZW50KGNydGNfc3RhdGUpOw0KPiAr DQo+ICsJCQkvKg0KPiArCQkJICogSWYgdGhlIGN1cnNvciB3YXMgb3V0c2lkZSB0aGUgU1UgYXJl YQ0KPiBiZWZvcmUNCj4gKwkJCSAqIGFsaWdubWVudCwgdGhlIGFsaWdubWVudCBzdGVwICh3aGlj aCBvbmx5DQo+IGV4cGFuZHMNCj4gKwkJCSAqIFNVKSBtYXkgcHVsbCB0aGUgY3Vyc29yIHBhcnRp YWxseSBpbnNpZGUsDQo+IHNvIHdlDQo+ICsJCQkgKiBtdXN0IHJ1biBFVCBhbGlnbm1lbnQgYWdh aW4gdG8gZnVsbHkNCj4gY292ZXIgaXQuIEJ1dA0KPiArCQkJICogaWYgdGhlIGN1cnNvciB3YXMg YWxyZWFkeSBmdWxseSBpbnNpZGUNCj4gYmVmb3JlDQo+ICsJCQkgKiBhbGlnbm1lbnQsIGV4cGFu ZGluZyB0aGUgU1UgYXJlYSB3b24ndA0KPiBjaGFuZ2UgdGhhdCwNCj4gKwkJCSAqIHNvIG5vIGZ1 cnRoZXIgd29yayBpcyBuZWVkZWQuDQo+ICsJCQkgKi8NCj4gKwkJCWlmIChjdXJzb3JfaW5fc3Vf YXJlYSkNCj4gKwkJCQlicmVhazsNCj4gKwkJfSB3aGlsZSAoc3VfYXJlYV9jaGFuZ2VkKTsNCj4g Kwl9DQo+ICsNCj4gKwlyZXR1cm4gcHNyMl9zZWxfZmV0Y2hfYXBwbHlfc3VfYXJlYShzdGF0ZSwg Y3J0YywNCj4gZnVsbF91cGRhdGUpOw0KPiArfQ0KPiArDQo+IMKgdm9pZCBpbnRlbF9wc3IyX3Bh bmljX2ZvcmNlX2Z1bGxfdXBkYXRlKGNvbnN0IHN0cnVjdA0KPiBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQ0KPiDCoHsNCj4gwqAJc3RydWN0IGludGVsX2Rpc3BsYXkgKmRpc3BsYXkgPQ0K PiB0b19pbnRlbF9kaXNwbGF5KGNydGNfc3RhdGUpOw0KDQo=