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 gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 7D203C47422 for ; Thu, 25 Jan 2024 18:57:52 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 42EC010E337; Thu, 25 Jan 2024 18:57:52 +0000 (UTC) Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 08F2610E337 for ; Thu, 25 Jan 2024 18:57:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1706209071; x=1737745071; h=from:to:subject:date:message-id:references:in-reply-to: content-id:content-transfer-encoding:mime-version; bh=h4Fqz4F0MGP7iePx94HnduGxlm69Vq1HeLHeBb8BwkI=; b=C+xUBDQEV6779av/i0gKiO0CD8s0j1MhD8TMZPki6pIM6VS0DguKsZH0 j6bCZfCqnCvs8ft+UhnNyBxP83cpHqMk3fDvhHubgESYOBLtcU8z40Hvf Tv3aRAIIFtZh2IEOyhJ3VF3QjfP99iSF3s9P3/yXx6oAh0apquVKYfIj1 PtZ2J6maQNnwZkgq+G4BLYe7Pbap8RaloYh8RwZyWzlYYuHJOI7I1FpFW pg4JT3ke36xZLoewYeJPD9XavNSF75xaJi0/C5o3QlXzfvVyAcdN5H+ix pS5R4RsJVajwrlkDM5jNnn22CR2rsazSXVB+wGh+98kRUa+ShDFPbnn6R Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10964"; a="433412281" X-IronPort-AV: E=Sophos;i="6.05,216,1701158400"; d="scan'208";a="433412281" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Jan 2024 10:57:50 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10964"; a="877136168" X-IronPort-AV: E=Sophos;i="6.05,216,1701158400"; d="scan'208";a="877136168" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by FMSMGA003.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 25 Jan 2024 10:57:50 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Thu, 25 Jan 2024 10:57:49 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Thu, 25 Jan 2024 10:57:49 -0800 Received: from NAM04-BN8-obe.outbound.protection.outlook.com (104.47.74.40) 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.35; Thu, 25 Jan 2024 10:57:49 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=T646JpdCb7CZVGKDzV68mUyCHpYMoCfnXu7bLMzL/429gGnOTdrz75brpjsS5KLMsLmSZNw9QvNhmFtuxViDnU8h85LHKcdWeZVrhE1fIkrpcN0WXYdK2JBpoPa2LDNEL0V7HiTU7+Y2FsHCSOpdhKeVZfbA7CZkYRIjPyBhM1ec2ctZmswfxXR24+upxntyMxdhDN3DLrGuRVAjGiK8PeD1MvNSbYYM8Ou3X8K9sQGVkBbOPBXNp4z3HkkLRIVGEZG4XQUskJpAmw4cJYKvNYNN+gxPAVtJ2dEwOKPmf7vnJNFGrSNdlJofhd07bsuQlaGBTN6nkdk3x9U+iuOsBQ== 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=h4Fqz4F0MGP7iePx94HnduGxlm69Vq1HeLHeBb8BwkI=; b=bcdrRTQm8w03FnhFPuzhWbpXxFo1SiAqlKPmwMAILTC2ZecYqY652VkDV4PawN5jvrdr6ThrCHsMf/rSqBfmApYieJrL6ijO6CZuvoT7a/FacKFGSNjd1XsLifdEzUfJzZjWQ2hn+0eyA/QN1JTzcsOQlu7/uLBJJn8PwoxUun65BjR88/LZSFGP4sIAlcDYQaUWKhY/NiX+fTzvRNM80uq9tomGvCtNYiprYIZjMmzXT8iS3z0h1FCmhPKn2zagnJyfBcMtR7S58s0Kzq0iYoCw32kZ7WBzypP46Qm5F47bbHtC3Ql0JHmjJxXnk4ej4v5OWs50/VDWUn7vnlYP4A== 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 DM4PR11MB8179.namprd11.prod.outlook.com (2603:10b6:8:18e::22) by SJ0PR11MB5920.namprd11.prod.outlook.com (2603:10b6:a03:42e::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7202.39; Thu, 25 Jan 2024 18:57:41 +0000 Received: from DM4PR11MB8179.namprd11.prod.outlook.com ([fe80::98c3:e090:252e:7967]) by DM4PR11MB8179.namprd11.prod.outlook.com ([fe80::98c3:e090:252e:7967%4]) with mapi id 15.20.7202.034; Thu, 25 Jan 2024 18:57:41 +0000 From: "Souza, Jose" To: "intel-xe@lists.freedesktop.org" , "maarten.lankhorst@linux.intel.com" Subject: Re: [PATCH 4/4] drm/xe: Implement VM snapshot support for BO's and userptr, v2. Thread-Topic: [PATCH 4/4] drm/xe: Implement VM snapshot support for BO's and userptr, v2. Thread-Index: AQHaTubsjml267hMSkqo2okdo3HxX7Dq4u6A Date: Thu, 25 Jan 2024 18:57:41 +0000 Message-ID: <3c9e8109a3eaaa406d3cfe675d6adf6993548111.camel@intel.com> References: <20240124165245.2660-1-maarten.lankhorst@linux.intel.com> <20240124165245.2660-4-maarten.lankhorst@linux.intel.com> In-Reply-To: <20240124165245.2660-4-maarten.lankhorst@linux.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM4PR11MB8179:EE_|SJ0PR11MB5920:EE_ x-ms-office365-filtering-correlation-id: 469e9442-74ea-4485-9222-08dc1dd781df x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: dA+9v/P/7PKuTCnzlMgT9Stj4q0ezVqk1bayrXoQEIaSM57Ol6ZjpMbkFfDE3PvkBPqoEja9+UJytlvvd88HUNzYYf6+mxhRSDChFojoBXa6PnooeJ6zq2284gO/umpIzCjv0M+cZAp9S+3y58PFO50dzYAXjYVKd2ufNH0EbrKDt1je8RdjHXdahIwUXniHTyuxHGUPBxAEEJdYbHVZ3hyZCTdulp4ZTS2A364QDyiH9k3I+7C21tDs1pr+EOkw5MbKy8teJeWDLYDrFn8LJhVPvqamBeuTqNBBW6/CDWUnTPTBBepPyy3YRBbNcDLFA78AKk8O5R29h1SLqd0LhkiJufybZSt2uW+YyyfMaRBmtNEYdW7Szftib4OUltrqLIOy0OzUQXYgeDs1RTVFBauB4coJNe34+Cg1CJbOgthgtFcc7u6HJVeg0VBUJZ31dOjCsm+7lSIZK3FRDT7P0NvTe98pXZ/T4OTggh/KcJbHDEDg1Zk/ftksyNt+V8J6Tx4IqAwQTatHjbXExfameiWBRAXVk4ybF5pVzx0s0KB2Gv2/I+4/8UF6fnUIu4QoATKDXTEWNB+I09J1l87AWGzRRACZfiWRY4LOuQp+e9sRWsTPDdak+yYV25txp8Wj x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR11MB8179.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(396003)(366004)(39860400002)(136003)(376002)(346002)(230922051799003)(451199024)(1800799012)(64100799003)(186009)(6512007)(6506007)(53546011)(26005)(2616005)(8676002)(316002)(36756003)(8936002)(64756008)(2906002)(66446008)(30864003)(5660300002)(66476007)(66556008)(91956017)(110136005)(66946007)(38070700009)(76116006)(71200400001)(6486002)(478600001)(41300700001)(86362001)(83380400001)(82960400001)(122000001)(38100700002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RWE2RlBrVjdDQlljb3VPdDRjd2FocTJiUWVFUnphY0d3Vk0xMFpjbVU2aWV0?= =?utf-8?B?eUxKZmlFczlnbzZOSG9Pc1BhdU1YNDFLaG15RldkOUZBdWd4MVl2SjFJUTFr?= =?utf-8?B?aDZ0YkQzRktWc1dOTm1icWxpUG50WVkwMGdNZ3Rub3ZaQ0FaU2dMdjZvRnJJ?= =?utf-8?B?ZVM0TWNpRjRZMzdsb1k5TUtPODh3WlNwek9Ic29vNHlGTWMwa0RYL3pyN0VT?= =?utf-8?B?V1BtRTJtVk4zYkdscVg2NWJFVys4a0NWd1hkYlh4Uzlib1VjUjJSOFJycHNq?= =?utf-8?B?U3JZVDlMeWIxQWFrbjVKTkFoMmNFd2pZK0x2T2VqUGFDUFlyOEFha2VYQVNW?= =?utf-8?B?YUtndStpbEdNSmtKK1owQUhkYzllR043NGI2NXYxWGZCODRXcllsL2pZUEg5?= =?utf-8?B?WkJLVWd6eHB2UWVZbm1zZXJMOVZIdHdrZjhNcGp2QlVXQWl6M3RXU0lEclhu?= =?utf-8?B?TkVMQ2ZFUVJrQXlKR3MxSUQ2WVM3ZGphRU5lNUQ0NGhWTTJFOGU0NGlCSCtO?= =?utf-8?B?WlJxWFlJYnI2eGlKQVQzSHF6Wm9hVFEvMms1TER3K3gyQVYra1REOU5zalYz?= =?utf-8?B?WWozOXQ4V1l1ejQ4M01qbWd5THdGL0pNZS9XQy84Zm9YVDZMT3gzRGRLZko4?= =?utf-8?B?bzllS3NRZVl4RWV5c3VPdm5NNVpMTnVoenBLQWluOGVyNm52bzQ0dHVrZXVs?= =?utf-8?B?dHhIRmhuc1gxK0JsbUJXOE5IalEwdktpV2RLMVhRTm9GYTQrNFRqSFlCK1RM?= =?utf-8?B?a3NqczhDWGNaQUh3VnZsZDVWVFN1RjdaUWgvY0Iyc1VnUVJWUnFmWFY2emNQ?= =?utf-8?B?YU8xZjBQZk9nbm1SU1N1SG5LYXhoc1BLM0I0VjVXKzRnRC9CSEYreE9GdTZG?= =?utf-8?B?aTl3b0Q0MG1YVXliV0pySEgvckw0TGxqanNDdnhGN2JwUlFGcm5rVVB0UjJ3?= =?utf-8?B?eUJab09vbWJKUG5jZEduYTNIMTc1NjVkUnQzVXlJSmhjcUY2dXppWHJGeWg2?= =?utf-8?B?ZkpOcC9wZGVBU012VDlNMkxIZGhlYy9TdUZtYUJSME90ckxGU2NMbm11TGg2?= =?utf-8?B?UFRmMDVWVW56eE9mVmdMcitTM1JnKzVacVpHQjlCM1o5TUpSV3k3MWoraTlr?= =?utf-8?B?RW12VXZPcjRVODRzaURoRkZ1RXFuSDc0dmpBSmtTUG9jcmp3VDRwLzJWRFBQ?= =?utf-8?B?OXBTbnJIbzBDT1ZDbVNXS0hRODR2TU9SYVRmVFNpb244d2VMcGNIajlaY2lH?= =?utf-8?B?K09yd0pPdktURWhOTytFVUMrKzZZMmtXc0EwRXB2T3NmUGoydi9DSFBiUTNl?= =?utf-8?B?ZmJraFBuOWlCK3FRczVvWnZQM1ovL0drdGVJWlNBY1lWTFRSWW1ZV0o2aHFj?= =?utf-8?B?TXBMa2xJVkdEdGttSXR3RjlWN0d0OERFRUw4VG81dDZmTGVwRGcvL1R1KzhV?= =?utf-8?B?bHQvWVNISHZJS2xyS3BiWC9aUi9RTnZYbkZBY2t3Y2xFS0wxcDN5aGFxSE5q?= =?utf-8?B?MVR0OUpDckhCZ0xiWklBbmVhNTIrTzhLMzBoaGZiRHBSdEx2TVlzZjFBMFQ3?= =?utf-8?B?THV6NmVCcC9HRm1YQkIzSWpucExlNkxYNWFFYkNGRWxCUXNjYzdKSmFZZXVi?= =?utf-8?B?ekdJUjFsUnhETDZEeGdvQ2xWOVd5aVN0RlFKNm1WSUhqZ21KOGlPalRmRStp?= =?utf-8?B?eGpqWU1PK21DR0RWUHl1NVhPeGdGWENOSkNyMnUrRHZMVXlJcmF6VEwzNFBW?= =?utf-8?B?MmV4WEQrck1CTVFVbmN4NUl0SEZBU3NTM1ZRWTdPM2FSaDdZLzlDUDljMi8y?= =?utf-8?B?eG1udlpEV1FyRHJGYUhQcU1maDFDbEFRcGxpNjdZc21jRmk2Q0RVVDMrVzZN?= =?utf-8?B?WktRUjhUS1JMczVKeHM2a3ZDTU1heDR5WFFLbkk5RHdyUDVwc05XQ28rTEIv?= =?utf-8?B?QmtEeXRQZGNrRmZhMEZGRXdkckZXNVNqQ1lxTnE3Qm1iWTJKaGNqellSeENp?= =?utf-8?B?R1RqMTllUW85VVR0RWlyb00xVStsSVZUK2pDKzRubWNSTnFHaXdTaFNLR3NE?= =?utf-8?B?WmVOWU5sVUpNZU5XbXd6cUNEZUR0SGF0NFBnTUV5T3hTeGVlbDRQRHlhV05I?= =?utf-8?B?NXdLRHN2UWpzTnFWemNremxCaDllbGhXdytHWXRDTmZQZm9XT3BGdDhwWGJS?= =?utf-8?B?Rmc9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <0C72937E0C30E94FA545AF187B2AE301@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB8179.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 469e9442-74ea-4485-9222-08dc1dd781df X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Jan 2024 18:57:41.3281 (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: CBkrlt/8w/xdT12ONeQ2I2FKNb/kEndmIa/Cy33QpDVrvNQwV5Nie/5vZZ5O1ZJCOgYNJUfwrKkXHpTQOcO4Ng== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB5920 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-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-xe-bounces@lists.freedesktop.org Sender: "Intel-xe" T24gV2VkLCAyMDI0LTAxLTI0IGF0IDE3OjUyICswMTAwLCBNYWFydGVuIExhbmtob3JzdCB3cm90 ZToNCj4gU2luY2Ugd2UgY2Fubm90IGltbWVkaWF0ZWx5IGNhcHR1cmUgdGhlIEJPJ3MgYW5kIHVz ZXJwdHIsIHBlcmZvcm0gaXQgaW4NCj4gMiBzdGFnZXMuIFRoZSBpbW1lZGlhdGUgc3RhZ2UgdGFr ZXMgYSByZWZlcmVuY2UgdG8gZWFjaCBCTyBhbmQgdXNlcnB0ciwNCj4gd2hpbGUgYSBkZWxheWVk IHdvcmtlciBjYXB0dXJlcyB0aGUgY29udGVudHMgYW5kIHRoZW4gZnJlZXMgdGhlDQo+IHJlZmVy ZW5jZS4NCj4gDQo+IFRoaXMgaXMgcmVxdWlyZWQgYmVjYXVzZSBpbiBzaWduYWxpbmcgY29udGV4 dCwgbm8gbG9ja3MgY2FuIGJlIHRha2VuLCBubw0KPiBtZW1vcnkgY2FuIGJlIGFsbG9jYXRlZCwg YW5kIG5vIHdhaXRzIG9uIHVzZXJzcGFjZSBjYW4gYmUgcGVyZm9ybWVkLg0KPiANCj4gV2l0aCB0 aGUgZGVsYXllZCB3b3JrZXIsIGFsbCBvZiB0aGlzIGNhbiBiZSBwZXJmb3JtZWQgdmVyeSBlYXNp bHksDQo+IHdpdGhvdXQgaGF2aW5nIHRvIHJlc29ydCB0byBoYWNrcy4NCj4gDQo+IENoYW5nZXMg c2luY2UgdjE6DQo+IC0gRml4IGNyYXNoIG9uIE5VTEwgY2FwdHVyZWQgdm0uDQo+IC0gVXNlIGFz Y2lpODVfZW5jb2RlIHRvIGNhcHR1cmUgQk8gY29udGVudHMgYW5kIHNhdmUgc29tZSBzcGFjZS4g KEpvc2UNCj4gICBTb3V6YSkNCj4gLSBBZGQgbGVuZ3RoIHRvIGNvcmVkdW1wIG91dHB1dCBmb3Ig ZWFjaCBjYXB0dXJlZCBhcmVhLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9y c3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4NCj4gLS0tDQo+ICBkcml2ZXJz L2dwdS9kcm0veGUveGVfZGV2Y29yZWR1bXAuYyAgICAgICB8ICAzMiArKysrLQ0KPiAgZHJpdmVy cy9ncHUvZHJtL3hlL3hlX2RldmNvcmVkdW1wX3R5cGVzLmggfCAgIDggKysNCj4gIGRyaXZlcnMv Z3B1L2RybS94ZS94ZV92bS5jICAgICAgICAgICAgICAgIHwgMTY3ICsrKysrKysrKysrKysrKysr KysrKysNCj4gIGRyaXZlcnMvZ3B1L2RybS94ZS94ZV92bS5oICAgICAgICAgICAgICAgIHwgICA1 ICsNCj4gIDQgZmlsZXMgY2hhbmdlZCwgMjEwIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0p DQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3hlL3hlX2RldmNvcmVkdW1wLmMg Yi9kcml2ZXJzL2dwdS9kcm0veGUveGVfZGV2Y29yZWR1bXAuYw0KPiBpbmRleCA2OGFiYzBiMTk1 YmUuLjRhM2JiY2M0ZjdhMCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3hlL3hlX2Rl dmNvcmVkdW1wLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3hlL3hlX2RldmNvcmVkdW1wLmMN Cj4gQEAgLTE2LDYgKzE2LDcgQEANCj4gICNpbmNsdWRlICJ4ZV9ndWNfY3QuaCINCj4gICNpbmNs dWRlICJ4ZV9ndWNfc3VibWl0LmgiDQo+ICAjaW5jbHVkZSAieGVfaHdfZW5naW5lLmgiDQo+ICsj aW5jbHVkZSAieGVfdm0uaCINCj4gIA0KPiAgLyoqDQo+ICAgKiBET0M6IFhlIGRldmljZSBjb3Jl ZHVtcA0KPiBAQCAtNTgsMTEgKzU5LDIwIEBAIHN0YXRpYyBzdHJ1Y3QgeGVfZ3VjICpleGVjX3F1 ZXVlX3RvX2d1YyhzdHJ1Y3QgeGVfZXhlY19xdWV1ZSAqcSkNCj4gIAlyZXR1cm4gJnEtPmd0LT51 Yy5ndWM7DQo+ICB9DQo+ICANCj4gK3N0YXRpYyB2b2lkIHhlX2RldmNvcmVkdW1wX2RlZmVycmVk X3NuYXBfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspDQo+ICt7DQo+ICsJc3RydWN0IHhl X2RldmNvcmVkdW1wX3NuYXBzaG90ICpzcyA9IGNvbnRhaW5lcl9vZih3b3JrLCB0eXBlb2YoKnNz KSwgd29yayk7DQo+ICsNCj4gKwl4ZV9mb3JjZV93YWtlX2dldChndF90b19mdyhzcy0+Z3QpLCBY RV9GT1JDRVdBS0VfQUxMKTsNCj4gKwl4ZV92bV9zbmFwc2hvdF9jYXB0dXJlX2RlbGF5ZWQoc3Mt PnZtKTsNCj4gKwl4ZV9mb3JjZV93YWtlX3B1dChndF90b19mdyhzcy0+Z3QpLCBYRV9GT1JDRVdB S0VfQUxMKTsNCj4gK30NCj4gKw0KPiAgc3RhdGljIHNzaXplX3QgeGVfZGV2Y29yZWR1bXBfcmVh ZChjaGFyICpidWZmZXIsIGxvZmZfdCBvZmZzZXQsDQo+ICAJCQkJICAgc2l6ZV90IGNvdW50LCB2 b2lkICpkYXRhLCBzaXplX3QgZGF0YWxlbikNCj4gIHsNCj4gIAlzdHJ1Y3QgeGVfZGV2Y29yZWR1 bXAgKmNvcmVkdW1wID0gZGF0YTsNCj4gLQlzdHJ1Y3QgeGVfZGV2Y29yZWR1bXBfc25hcHNob3Qg KnNzOw0KPiArCXN0cnVjdCB4ZV9kZXZjb3JlZHVtcF9zbmFwc2hvdCAqc3MgPSAmY29yZWR1bXAt PnNuYXBzaG90Ow0KPiAgCXN0cnVjdCBkcm1fcHJpbnRlciBwOw0KPiAgCXN0cnVjdCBkcm1fcHJp bnRfaXRlcmF0b3IgaXRlcjsNCj4gIAlzdHJ1Y3QgdGltZXNwZWM2NCB0czsNCj4gQEAgLTcyLDEy ICs4MiwxNCBAQCBzdGF0aWMgc3NpemVfdCB4ZV9kZXZjb3JlZHVtcF9yZWFkKGNoYXIgKmJ1ZmZl ciwgbG9mZl90IG9mZnNldCwNCj4gIAlpZiAoIWRhdGEgfHwgIWNvcmVkdW1wX3RvX3hlKGNvcmVk dW1wKSkNCj4gIAkJcmV0dXJuIC1FTk9ERVY7DQo+ICANCj4gKwkvKiBFbnN1cmUgZGVsYXllZCB3 b3JrIGlzIGNhcHR1cmVkIGJlZm9yZSBjb250aW51aW5nICovDQo+ICsJZmx1c2hfd29yaygmc3Mt PndvcmspOw0KPiArDQo+ICAJaXRlci5kYXRhID0gYnVmZmVyOw0KPiAgCWl0ZXIub2Zmc2V0ID0g MDsNCj4gIAlpdGVyLnN0YXJ0ID0gb2Zmc2V0Ow0KPiAgCWl0ZXIucmVtYWluID0gY291bnQ7DQo+ ICANCj4gLQlzcyA9ICZjb3JlZHVtcC0+c25hcHNob3Q7DQo+ICAJcCA9IGRybV9jb3JlZHVtcF9w cmludGVyKCZpdGVyKTsNCj4gIA0KPiAgCWRybV9wcmludGYoJnAsICIqKioqIFhlIERldmljZSBD b3JlZHVtcCAqKioqXG4iKTsNCj4gQEAgLTk4LDYgKzExMCwxMCBAQCBzdGF0aWMgc3NpemVfdCB4 ZV9kZXZjb3JlZHVtcF9yZWFkKGNoYXIgKmJ1ZmZlciwgbG9mZl90IG9mZnNldCwNCj4gIAkJaWYg KGNvcmVkdW1wLT5zbmFwc2hvdC5od2VbaV0pDQo+ICAJCQl4ZV9od19lbmdpbmVfc25hcHNob3Rf cHJpbnQoY29yZWR1bXAtPnNuYXBzaG90Lmh3ZVtpXSwNCj4gIAkJCQkJCSAgICAmcCk7DQo+ICsJ aWYgKGNvcmVkdW1wLT5zbmFwc2hvdC52bSkgew0KPiArCQlkcm1fcHJpbnRmKCZwLCAiXG4qKioq IFZNIHN0YXRlICoqKipcbiIpOw0KPiArCQl4ZV92bV9zbmFwc2hvdF9wcmludChjb3JlZHVtcC0+ c25hcHNob3Qudm0sICZwKTsNCj4gKwl9DQo+ICANCj4gIAlyZXR1cm4gY291bnQgLSBpdGVyLnJl bWFpbjsNCj4gIH0NCj4gQEAgLTExMSwxMSArMTI3LDE1IEBAIHN0YXRpYyB2b2lkIHhlX2RldmNv cmVkdW1wX2ZyZWUodm9pZCAqZGF0YSkNCj4gIAlpZiAoIWRhdGEgfHwgIWNvcmVkdW1wX3RvX3hl KGNvcmVkdW1wKSkNCj4gIAkJcmV0dXJuOw0KPiAgDQo+ICsJY2FuY2VsX3dvcmtfc3luYygmY29y ZWR1bXAtPnNuYXBzaG90LndvcmspOw0KPiArDQo+ICAJeGVfZ3VjX2N0X3NuYXBzaG90X2ZyZWUo Y29yZWR1bXAtPnNuYXBzaG90LmN0KTsNCj4gIAl4ZV9ndWNfZXhlY19xdWV1ZV9zbmFwc2hvdF9m cmVlKGNvcmVkdW1wLT5zbmFwc2hvdC5nZSk7DQo+ICAJZm9yIChpID0gMDsgaSA8IFhFX05VTV9I V19FTkdJTkVTOyBpKyspDQo+ICAJCWlmIChjb3JlZHVtcC0+c25hcHNob3QuaHdlW2ldKQ0KPiAg CQkJeGVfaHdfZW5naW5lX3NuYXBzaG90X2ZyZWUoY29yZWR1bXAtPnNuYXBzaG90Lmh3ZVtpXSk7 DQo+ICsJeGVfdm1fc25hcHNob3RfZnJlZShjb3JlZHVtcC0+c25hcHNob3Qudm0pOw0KPiArCW1l bXNldCgmY29yZWR1bXAtPnNuYXBzaG90LCAwLCBzaXplb2YoY29yZWR1bXAtPnNuYXBzaG90KSk7 DQo+ICANCj4gIAljb3JlZHVtcC0+Y2FwdHVyZWQgPSBmYWxzZTsNCj4gIAlkcm1faW5mbygmY29y ZWR1bXBfdG9feGUoY29yZWR1bXApLT5kcm0sDQo+IEBAIC0xMzcsNiArMTU3LDkgQEAgc3RhdGlj IHZvaWQgZGV2Y29yZWR1bXBfc25hcHNob3Qoc3RydWN0IHhlX2RldmNvcmVkdW1wICpjb3JlZHVt cCwNCj4gIAlzcy0+c25hcHNob3RfdGltZSA9IGt0aW1lX2dldF9yZWFsKCk7DQo+ICAJc3MtPmJv b3RfdGltZSA9IGt0aW1lX2dldF9ib290dGltZSgpOw0KPiAgDQo+ICsJc3MtPmd0ID0gcS0+Z3Q7 DQo+ICsJSU5JVF9XT1JLKCZzcy0+d29yaywgeGVfZGV2Y29yZWR1bXBfZGVmZXJyZWRfc25hcF93 b3JrKTsNCj4gKw0KPiAgCWNvb2tpZSA9IGRtYV9mZW5jZV9iZWdpbl9zaWduYWxsaW5nKCk7DQo+ ICAJZm9yIChpID0gMDsgcS0+d2lkdGggPiAxICYmIGkgPCBYRV9IV19FTkdJTkVfTUFYX0lOU1RB TkNFOykgew0KPiAgCQlpZiAoYWRqX2xvZ2ljYWxfbWFzayAmIEJJVChpKSkgew0KPiBAQCAtMTUx LDYgKzE3NCw3IEBAIHN0YXRpYyB2b2lkIGRldmNvcmVkdW1wX3NuYXBzaG90KHN0cnVjdCB4ZV9k ZXZjb3JlZHVtcCAqY29yZWR1bXAsDQo+ICANCj4gIAljb3JlZHVtcC0+c25hcHNob3QuY3QgPSB4 ZV9ndWNfY3Rfc25hcHNob3RfY2FwdHVyZSgmZ3VjLT5jdCwgdHJ1ZSk7DQo+ICAJY29yZWR1bXAt PnNuYXBzaG90LmdlID0geGVfZ3VjX2V4ZWNfcXVldWVfc25hcHNob3RfY2FwdHVyZShxKTsNCj4g Kwljb3JlZHVtcC0+c25hcHNob3Qudm0gPSB4ZV92bV9zbmFwc2hvdF9jYXB0dXJlKHEtPnZtKTsN Cj4gIA0KPiAgCWZvcl9lYWNoX2h3X2VuZ2luZShod2UsIHEtPmd0LCBpZCkgew0KPiAgCQlpZiAo aHdlLT5jbGFzcyAhPSBxLT5od2UtPmNsYXNzIHx8DQo+IEBAIC0xNjEsNiArMTg1LDkgQEAgc3Rh dGljIHZvaWQgZGV2Y29yZWR1bXBfc25hcHNob3Qoc3RydWN0IHhlX2RldmNvcmVkdW1wICpjb3Jl ZHVtcCwNCj4gIAkJY29yZWR1bXAtPnNuYXBzaG90Lmh3ZVtpZF0gPSB4ZV9od19lbmdpbmVfc25h cHNob3RfY2FwdHVyZShod2UpOw0KPiAgCX0NCj4gIA0KPiArCWlmIChzcy0+dm0pDQo+ICsJCXF1 ZXVlX3dvcmsoc3lzdGVtX3VuYm91bmRfd3EsICZzcy0+d29yayk7DQo+ICsNCj4gIAl4ZV9mb3Jj ZV93YWtlX3B1dChndF90b19mdyhxLT5ndCksIFhFX0ZPUkNFV0FLRV9BTEwpOw0KPiAgCWRtYV9m ZW5jZV9lbmRfc2lnbmFsbGluZyhjb29raWUpOw0KPiAgfQ0KPiBAQCAtMTk0LDMgKzIyMSw0IEBA IHZvaWQgeGVfZGV2Y29yZWR1bXAoc3RydWN0IHhlX2V4ZWNfcXVldWUgKnEpDQo+ICAJCSAgICAg IHhlX2RldmNvcmVkdW1wX3JlYWQsIHhlX2RldmNvcmVkdW1wX2ZyZWUpOw0KPiAgfQ0KPiAgI2Vu ZGlmDQo+ICsNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV9kZXZjb3JlZHVt cF90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL3hlL3hlX2RldmNvcmVkdW1wX3R5cGVzLmgNCj4g aW5kZXggN2ZkYWQ5YzNkM2RkLi4xN2FlM2UzNTk3YjAgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS94ZS94ZV9kZXZjb3JlZHVtcF90eXBlcy5oDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS94ZS94ZV9kZXZjb3JlZHVtcF90eXBlcy5oDQo+IEBAIC0xMiw2ICsxMiw3IEBADQo+ICAjaW5j bHVkZSAieGVfaHdfZW5naW5lX3R5cGVzLmgiDQo+ICANCj4gIHN0cnVjdCB4ZV9kZXZpY2U7DQo+ ICtzdHJ1Y3QgeGVfZ3Q7DQo+ICANCj4gIC8qKg0KPiAgICogc3RydWN0IHhlX2RldmNvcmVkdW1w X3NuYXBzaG90IC0gQ3Jhc2ggc25hcHNob3QNCj4gQEAgLTI2LDYgKzI3LDExIEBAIHN0cnVjdCB4 ZV9kZXZjb3JlZHVtcF9zbmFwc2hvdCB7DQo+ICAJLyoqIEBib290X3RpbWU6ICBSZWxhdGl2ZSBi b290IHRpbWUgc28gdGhlIHVwdGltZSBjYW4gYmUgY2FsY3VsYXRlZC4gKi8NCj4gIAlrdGltZV90 IGJvb3RfdGltZTsNCj4gIA0KPiArCS8qKiBAZ3Q6IEFmZmVjdGVkIEdULCB1c2VkIGJ5IGZvcmNl d2FrZSBmb3IgZGVsYXllZCBjYXB0dXJlICovDQo+ICsJc3RydWN0IHhlX2d0ICpndDsNCj4gKwkv KiogQHdvcms6IFdvcmtxdWV1ZSBmb3IgZGVmZmVyZWQgY2FwdHVyZSBvdXRzaWRlIG9mIHNpZ25h bGluZyBjb250ZXh0ICovDQo+ICsJc3RydWN0IHdvcmtfc3RydWN0IHdvcms7DQo+ICsNCj4gIAkv KiBHdUMgc25hcHNob3RzICovDQo+ICAJLyoqIEBjdDogR3VDIENUIHNuYXBzaG90ICovDQo+ICAJ c3RydWN0IHhlX2d1Y19jdF9zbmFwc2hvdCAqY3Q7DQo+IEBAIC0zMyw2ICszOSw4IEBAIHN0cnVj dCB4ZV9kZXZjb3JlZHVtcF9zbmFwc2hvdCB7DQo+ICAJc3RydWN0IHhlX2d1Y19zdWJtaXRfZXhl Y19xdWV1ZV9zbmFwc2hvdCAqZ2U7DQo+ICAJLyoqIEBod2U6IEhXIEVuZ2luZSBzbmFwc2hvdCBh cnJheSAqLw0KPiAgCXN0cnVjdCB4ZV9od19lbmdpbmVfc25hcHNob3QgKmh3ZVtYRV9OVU1fSFdf RU5HSU5FU107DQo+ICsJLyoqIEB2bTogU25hcHNob3Qgb2YgVk0gc3RhdGUgKi8NCj4gKwlzdHJ1 Y3QgeGVfdm1fc25hcHNob3QgKnZtOw0KPiAgfTsNCj4gIA0KPiAgLyoqDQo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0veGUveGVfdm0uYyBiL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV92bS5j DQo+IGluZGV4IGU5NjcyZGY3MTA4MS4uZTI3Y2YyZGEzZjRkIDEwMDY0NA0KPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0veGUveGVfdm0uYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfdm0u Yw0KPiBAQCAtMTMsNiArMTMsNyBAQA0KPiAgI2luY2x1ZGUgPGRybS90dG0vdHRtX2V4ZWNidWZf dXRpbC5oPg0KPiAgI2luY2x1ZGUgPGRybS90dG0vdHRtX3R0Lmg+DQo+ICAjaW5jbHVkZSA8ZHJt L3hlX2RybS5oPg0KPiArI2luY2x1ZGUgPGxpbnV4L2FzY2lpODUuaD4NCj4gICNpbmNsdWRlIDxs aW51eC9kZWxheS5oPg0KPiAgI2luY2x1ZGUgPGxpbnV4L2t0aHJlYWQuaD4NCj4gICNpbmNsdWRl IDxsaW51eC9tbS5oPg0KPiBAQCAtMzIzNywzICszMjM4LDE2OSBAQCBpbnQgeGVfYW5hbHl6ZV92 bShzdHJ1Y3QgZHJtX3ByaW50ZXIgKnAsIHN0cnVjdCB4ZV92bSAqdm0sIGludCBndF9pZCkNCj4g IA0KPiAgCXJldHVybiAwOw0KPiAgfQ0KPiArDQo+ICtzdHJ1Y3QgeGVfdm1fc25hcHNob3Qgew0K PiArCXVuc2lnbmVkIGxvbmcgbnVtX3NuYXBzOw0KPiArCXN0cnVjdCB7DQo+ICsJCXVpbnQ2NF90 IG9mcywgYm9fb2ZzOw0KPiArCQl1bnNpZ25lZCBsb25nIGxlbjsNCj4gKwkJc3RydWN0IHhlX2Jv ICpibzsNCj4gKwkJdm9pZCAqZGF0YTsNCj4gKwkJc3RydWN0IG1tX3N0cnVjdCAqbW07DQo+ICsJ fSBzbmFwW107DQo+ICt9Ow0KPiArDQo+ICtzdHJ1Y3QgeGVfdm1fc25hcHNob3QgKnhlX3ZtX3Nu YXBzaG90X2NhcHR1cmUoc3RydWN0IHhlX3ZtICp2bSkNCj4gK3sNCj4gKwl1bnNpZ25lZCBsb25n IG51bV9zbmFwcyA9IDAsIGk7DQo+ICsJc3RydWN0IHhlX3ZtX3NuYXBzaG90ICpzbmFwID0gTlVM TDsNCj4gKwlzdHJ1Y3QgZHJtX2dwdXZhICpncHV2YTsNCj4gKw0KPiArCWlmICghdm0pDQo+ICsJ CXJldHVybiBOVUxMOw0KPiArDQo+ICsJbXV0ZXhfbG9jaygmdm0tPnNuYXBfbXV0ZXgpOw0KPiAr CWRybV9ncHV2bV9mb3JfZWFjaF92YShncHV2YSwgJnZtLT5ncHV2bSkgew0KPiArCQlpZiAoZ3B1 dmEtPmZsYWdzICYgWEVfVk1BX0RVTVBBQkxFKQ0KPiArCQkJbnVtX3NuYXBzKys7DQo+ICsJfQ0K PiArDQo+ICsJaWYgKG51bV9zbmFwcykNCj4gKwkJc25hcCA9IGt2emFsbG9jKG9mZnNldG9mKHN0 cnVjdCB4ZV92bV9zbmFwc2hvdCwgc25hcFtudW1fc25hcHNdKSwgR0ZQX05PV0FJVCk7DQo+ICsJ aWYgKCFzbmFwKQ0KPiArCQlnb3RvIG91dF91bmxvY2s7DQo+ICsNCj4gKwlzbmFwLT5udW1fc25h cHMgPSBudW1fc25hcHM7DQo+ICsJaSA9IDA7DQo+ICsJZHJtX2dwdXZtX2Zvcl9lYWNoX3ZhKGdw dXZhLCAmdm0tPmdwdXZtKSB7DQo+ICsJCXN0cnVjdCB4ZV92bWEgKnZtYSA9IGdwdXZhX3RvX3Zt YShncHV2YSk7DQo+ICsJCXN0cnVjdCB4ZV9ibyAqYm8gPSB2bWEtPmdwdXZhLmdlbS5vYmogPw0K PiArCQkJZ2VtX3RvX3hlX2JvKHZtYS0+Z3B1dmEuZ2VtLm9iaikgOiBOVUxMOw0KPiArDQo+ICsJ CWlmICghKGdwdXZhLT5mbGFncyAmIFhFX1ZNQV9EVU1QQUJMRSkpDQo+ICsJCQljb250aW51ZTsN Cj4gKw0KPiArCQlzbmFwLT5zbmFwW2ldLm9mcyA9IHhlX3ZtYV9zdGFydCh2bWEpOw0KPiArCQlz bmFwLT5zbmFwW2ldLmxlbiA9IHhlX3ZtYV9zaXplKHZtYSk7DQo+ICsJCWlmIChibykgew0KPiAr CQkJc25hcC0+c25hcFtpXS5ibyA9IHhlX2JvX2dldChibyk7DQo+ICsJCQlzbmFwLT5zbmFwW2ld LmJvX29mcyA9IHhlX3ZtYV9ib19vZmZzZXQodm1hKTsNCj4gKwkJfSBlbHNlIGlmICh4ZV92bWFf aXNfdXNlcnB0cih2bWEpKSB7DQo+ICsJCQlpZiAobW1nZXRfbm90X3plcm8odm1hLT51c2VycHRy Lm5vdGlmaWVyLm1tKSkNCj4gKwkJCQlzbmFwLT5zbmFwW2ldLm1tID0gdm1hLT51c2VycHRyLm5v dGlmaWVyLm1tOw0KPiArCQkJZWxzZQ0KPiArCQkJCXNuYXAtPnNuYXBbaV0uZGF0YSA9IEVSUl9Q VFIoLUVGQVVMVCk7DQo+ICsJCQlzbmFwLT5zbmFwW2ldLmJvX29mcyA9IHhlX3ZtYV91c2VycHRy KHZtYSk7DQo+ICsJCX0gZWxzZSB7DQo+ICsJCQlzbmFwLT5zbmFwW2ldLmRhdGEgPSBFUlJfUFRS KC1FTk9FTlQpOw0KPiArCQl9DQo+ICsJCWkrKzsNCj4gKwl9DQo+ICsNCj4gK291dF91bmxvY2s6 DQo+ICsJbXV0ZXhfdW5sb2NrKCZ2bS0+c25hcF9tdXRleCk7DQo+ICsJcmV0dXJuIHNuYXA7DQo+ ICt9DQo+ICsNCj4gK3ZvaWQgeGVfdm1fc25hcHNob3RfY2FwdHVyZV9kZWxheWVkKHN0cnVjdCB4 ZV92bV9zbmFwc2hvdCAqc25hcCkNCj4gK3sNCj4gKwlpZiAoIXNuYXApDQo+ICsJCXJldHVybjsN Cj4gKw0KPiArCWZvciAoaW50IGkgPSAwOyBpIDwgc25hcC0+bnVtX3NuYXBzOyBpKyspIHsNCj4g KwkJc3RydWN0IHhlX2JvICpibyA9IHNuYXAtPnNuYXBbaV0uYm87DQo+ICsJCXN0cnVjdCBpb3N5 c19tYXAgc3JjOw0KPiArCQlpbnQgZXJyOw0KPiArDQo+ICsJCWlmIChJU19FUlIoc25hcC0+c25h cFtpXS5kYXRhKSkNCj4gKwkJCWNvbnRpbnVlOw0KPiArDQo+ICsJCXNuYXAtPnNuYXBbaV0uZGF0 YSA9IGt2bWFsbG9jKHNuYXAtPnNuYXBbaV0ubGVuLCBHRlBfVVNFUik7DQo+ICsJCWlmICghc25h cC0+c25hcFtpXS5kYXRhKSB7DQo+ICsJCQlzbmFwLT5zbmFwW2ldLmRhdGEgPSBFUlJfUFRSKC1F Tk9NRU0pOw0KPiArCQkJZ290byBjbGVhbnVwX2JvOw0KPiArCQl9DQo+ICsNCj4gKwkJaWYgKGJv KSB7DQo+ICsJCQlkbWFfcmVzdl9sb2NrKGJvLT50dG0uYmFzZS5yZXN2LCBOVUxMKTsNCj4gKwkJ CWVyciA9IHR0bV9ib192bWFwKCZiby0+dHRtLCAmc3JjKTsNCj4gKwkJCWlmICghZXJyKSB7DQo+ ICsJCQkJeGVfbWFwX21lbWNweV9mcm9tKHhlX2JvX2RldmljZShibyksDQo+ICsJCQkJCQkgICBz bmFwLT5zbmFwW2ldLmRhdGEsDQo+ICsJCQkJCQkgICAmc3JjLCBzbmFwLT5zbmFwW2ldLmJvX29m cywNCj4gKwkJCQkJCSAgIHNuYXAtPnNuYXBbaV0ubGVuKTsNCj4gKwkJCQl0dG1fYm9fdnVubWFw KCZiby0+dHRtLCAmc3JjKTsNCj4gKwkJCX0NCj4gKwkJCWRtYV9yZXN2X3VubG9jayhiby0+dHRt LmJhc2UucmVzdik7DQo+ICsJCX0gZWxzZSB7DQo+ICsJCQl2b2lkIF9fdXNlciAqdXNlcnB0ciA9 ICh2b2lkIF9fdXNlciAqKShzaXplX3Qpc25hcC0+c25hcFtpXS5ib19vZnM7DQo+ICsJCQlrdGhy ZWFkX3VzZV9tbShzbmFwLT5zbmFwW2ldLm1tKTsNCj4gKw0KPiArCQkJaWYgKCFjb3B5X2Zyb21f dXNlcihzbmFwLT5zbmFwW2ldLmRhdGEsIHVzZXJwdHIsIHNuYXAtPnNuYXBbaV0ubGVuKSkNCj4g KwkJCQllcnIgPSAwOw0KPiArCQkJZWxzZQ0KPiArCQkJCWVyciA9IC1FRkFVTFQ7DQo+ICsJCQlr dGhyZWFkX3VudXNlX21tKHNuYXAtPnNuYXBbaV0ubW0pOw0KPiArCQkJbW1wdXQoc25hcC0+c25h cFtpXS5tbSk7DQo+ICsJCQlzbmFwLT5zbmFwW2ldLm1tID0gTlVMTDsNCj4gKwkJfQ0KPiArDQo+ ICsJCWlmIChlcnIpIHsNCj4gKwkJCWt2ZnJlZShzbmFwLT5zbmFwW2ldLmRhdGEpOw0KPiArCQkJ c25hcC0+c25hcFtpXS5kYXRhID0gRVJSX1BUUihlcnIpOw0KPiArCQl9DQo+ICsNCj4gK2NsZWFu dXBfYm86DQo+ICsJCXhlX2JvX3B1dChibyk7DQo+ICsJCXNuYXAtPnNuYXBbaV0uYm8gPSBOVUxM Ow0KPiArCX0NCj4gK30NCj4gKw0KPiArdm9pZCB4ZV92bV9zbmFwc2hvdF9wcmludChzdHJ1Y3Qg eGVfdm1fc25hcHNob3QgKnNuYXAsIHN0cnVjdCBkcm1fcHJpbnRlciAqcCkNCj4gK3sNCj4gKwl1 bnNpZ25lZCBsb25nIGksIGo7DQo+ICsNCj4gKwlmb3IgKGkgPSAwOyBpIDwgc25hcC0+bnVtX3Nu YXBzOyBpKyspIHsNCj4gKwkJaWYgKElTX0VSUihzbmFwLT5zbmFwW2ldLmRhdGEpKQ0KPiArCQkJ Z290byB1bmNhcHR1cmVkOw0KPiArDQo+ICsJCWRybV9wcmludGYocCwgIlslbGx4XS5sZW5ndGg6 IDB4JWx4XG4iLCBzbmFwLT5zbmFwW2ldLm9mcywgc25hcC0+c25hcFtpXS5sZW4pOw0KPiArDQo+ ICsJCWZvciAoaiA9IDA7IGogPCBzbmFwLT5zbmFwW2ldLmxlbjsgaiArPSA2NCkgew0KPiArCQkJ dWludDMyX3QgKnZhbCA9IHNuYXAtPnNuYXBbaV0uZGF0YSArIGo7DQo+ICsJCQljaGFyIGR1bXBl ZFsxNl1bQVNDSUk4NV9CVUZTWl07DQo+ICsJCQljb25zdCBjaGFyICp4WzE2XTsNCj4gKwkJCXVp bnQzMl90IGs7DQo+ICsNCj4gKwkJCWZvciAoayA9IDA7IGsgPCAxNjsgaysrKQ0KPiArCQkJCXhb a10gPSBhc2NpaTg1X2VuY29kZSh2YWxba10sIGR1bXBlZFtrXSk7DQo+ICsNCj4gKwkJCWRybV9w cmludGYocCwgIlslbGx4XS5kYXRhOiB7ICVzLCAlcywgJXMsICVzLCAlcywgJXMsICVzLCAlcywg JXMsICVzLCAlcywgJXMsICVzLCAlcywgJXMsICVzIH1cbiIsDQo+ICsJCQkJICAgc25hcC0+c25h cFtpXS5vZnMgKyBqLCB4WzBdLCB4WzFdLCB4WzJdLCB4WzNdLCB4WzRdLCB4WzVdLCB4WzZdLCB4 WzddLA0KPiArCQkJCSAgIHhbOF0sIHhbOV0sIHhbMTBdLCB4WzExXSwgeFsxMl0sIHhbMTNdLCB4 WzE0XSwgeFsxNV0pOw0KPiArCQl9DQo+ICsJCWNvbnRpbnVlOw0KDQpUaGlzKGJlbG93KSBpcyB3 aGF0IEkgd2FzIGV4cGVjdGluZyB3aGVuIEkgYXNrZWQgYWJvdXQgYXNjaWk4NV9lbmNvZGUoKSwg aXQgd291bGQgcHJpbnQgdGhlIHdob2xlIFZNQSBkYXRhIGluIGEgc2luZ2xlIGxpbmUuDQpUaGlz IG1ha2VzIFhlIGR1bXAgbW9yZSBzaW1pbGFyIHRvIGk5MTUgZHVtcCwgcmVkdWNlcyBzZXZlcmFs IGJ5dGVzIGluIGR1bXAgYW5kIG1ha2VzIHBhcnNpbmcgZWFzaWVyLg0KDQpGcm9tIDljMmUwYmZh Njc4NDE3ZDdjMjE4NWMzMzBlMDYwZTE5YjE5ZWM5ZmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx DQpGcm9tOiA9P1VURi04P3E/Sm9zPUMzPUE5PTIwUm9iZXJ0bz0yMGRlPTIwU291emE/PSA8am9z ZS5zb3V6YUBpbnRlbC5jb20+DQpEYXRlOiBUaHUsIDI1IEphbiAyMDI0IDA1OjM1OjEzIC0wODAw DQpTdWJqZWN0OiBbUEFUQ0hdIHNxdWFzaCEgZHJtL3hlOiBJbXBsZW1lbnQgVk0gc25hcHNob3Qg c3VwcG9ydCBmb3IgQk8ncyBhbmQNCiB1c2VycHRyLCB2Mi4NCg0KLS0tDQogZHJpdmVycy9ncHUv ZHJtL3hlL3hlX3ZtLmMgfCAxNyArKysrKysrLS0tLS0tLS0tLQ0KIDEgZmlsZSBjaGFuZ2VkLCA3 IGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQ0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL3hlL3hlX3ZtLmMgYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfdm0uYw0KaW5kZXggMzM5 OTlmODk5MzBlOC4uZjE5OGUyNzkxYmMyMCAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS94 ZS94ZV92bS5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfdm0uYw0KQEAgLTMzNjksMTkg KzMzNjksMTYgQEAgdm9pZCB4ZV92bV9zbmFwc2hvdF9wcmludChzdHJ1Y3QgeGVfdm1fc25hcHNo b3QgKnNuYXAsIHN0cnVjdCBkcm1fcHJpbnRlciAqcCkNCiAJCQljb250aW51ZTsNCiAJCX0NCiAN Ci0JCWZvciAoaiA9IDA7IGogPCBzbmFwLT5zbmFwW2ldLmxlbjsgaiArPSA2NCkgew0KLQkJCXVp bnQzMl90ICp2YWwgPSBzbmFwLT5zbmFwW2ldLmRhdGEgKyBqOw0KLQkJCWNoYXIgZHVtcGVkWzE2 XVtBU0NJSTg1X0JVRlNaXTsNCi0JCQljb25zdCBjaGFyICp4WzE2XTsNCi0JCQl1aW50MzJfdCBr Ow0KKwkJZHJtX3ByaW50ZihwLCAiWyVsbHhdLmRhdGE6ICIsIHNuYXAtPnNuYXBbaV0ub2ZzKTsN CiANCi0JCQlmb3IgKGsgPSAwOyBrIDwgMTY7IGsrKykNCi0JCQkJeFtrXSA9IGFzY2lpODVfZW5j b2RlKHZhbFtrXSwgZHVtcGVkW2tdKTsNCisJCWZvciAoaiA9IDA7IGogPCBzbmFwLT5zbmFwW2ld Lmxlbjsgais9IHNpemVvZih1MzIpKSB7DQorCQkJdWludDMyX3QgKnZhbCA9IHNuYXAtPnNuYXBb aV0uZGF0YSArIGo7DQorCQkJY2hhciBkdW1wZWRbQVNDSUk4NV9CVUZTWl07DQogDQotCQkJZHJt X3ByaW50ZihwLCAiWyVsbHhdLmRhdGE6IHsgJXMsICVzLCAlcywgJXMsICVzLCAlcywgJXMsICVz LCAlcywgJXMsICVzLCAlcywgJXMsICVzLCAlcywgJXMgfVxuIiwNCi0JCQkJICAgc25hcC0+c25h cFtpXS5vZnMgKyBqLCB4WzBdLCB4WzFdLCB4WzJdLCB4WzNdLCB4WzRdLCB4WzVdLCB4WzZdLCB4 WzddLA0KLQkJCQkgICB4WzhdLCB4WzldLCB4WzEwXSwgeFsxMV0sIHhbMTJdLCB4WzEzXSwgeFsx NF0sIHhbMTVdKTsNCisJCQlkcm1fcHV0cyhwLCBhc2NpaTg1X2VuY29kZSgqdmFsLCBkdW1wZWQp KTsNCiAJCX0NCisNCisJCWRybV9wdXRzKHAsICJcbiIpOw0KIAl9DQogfQ0KIA0KLS0gDQoyLjQz LjANCg0KDQoNCj4gKw0KPiArdW5jYXB0dXJlZDoNCj4gKwkJZHJtX3ByaW50ZihwLCAiVW5hYmxl IHRvIGNhcHR1cmUgcmFuZ2UgWyVsbHgtJWxseF06ICVsaVxuIiwNCj4gKwkJCSAgIHNuYXAtPnNu YXBbaV0ub2ZzLCBzbmFwLT5zbmFwW2ldLm9mcyArIHNuYXAtPnNuYXBbaV0ubGVuIC0gMSwNCj4g KwkJCSAgIFBUUl9FUlIoc25hcC0+c25hcFtpXS5kYXRhKSk7DQo+ICsJfQ0KPiArfQ0KPiArDQo+ ICt2b2lkIHhlX3ZtX3NuYXBzaG90X2ZyZWUoc3RydWN0IHhlX3ZtX3NuYXBzaG90ICpzbmFwKQ0K PiArew0KPiArCXVuc2lnbmVkIGxvbmcgaTsNCj4gKw0KPiArCWlmICghc25hcCkNCj4gKwkJcmV0 dXJuOw0KPiArDQo+ICsJZm9yIChpID0gMDsgaSA8IHNuYXAtPm51bV9zbmFwczsgaSsrKSB7DQo+ ICsJCWlmICghSVNfRVJSKHNuYXAtPnNuYXBbaV0uZGF0YSkpDQo+ICsJCQlrdmZyZWUoc25hcC0+ c25hcFtpXS5kYXRhKTsNCj4gKwkJeGVfYm9fcHV0KHNuYXAtPnNuYXBbaV0uYm8pOw0KPiArCQlp ZiAoc25hcC0+c25hcFtpXS5tbSkNCj4gKwkJCW1tcHV0KHNuYXAtPnNuYXBbaV0ubW0pOw0KPiAr CX0NCj4gKwlrdmZyZWUoc25hcCk7DQo+ICt9DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0veGUveGVfdm0uaCBiL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV92bS5oDQo+IGluZGV4IGU5Yzkw N2NiY2Q4OS4uOGIwNjFmMWY3NTNhIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0veGUv eGVfdm0uaA0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfdm0uaA0KPiBAQCAtMjU5LDMg KzI1OSw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB2bV9kYmcoY29uc3Qgc3RydWN0IGRybV9kZXZp Y2UgKmRldiwNCj4gIHsgLyogbm9vcCAqLyB9DQo+ICAjZW5kaWYNCj4gICNlbmRpZg0KPiArDQo+ ICtzdHJ1Y3QgeGVfdm1fc25hcHNob3QgKnhlX3ZtX3NuYXBzaG90X2NhcHR1cmUoc3RydWN0IHhl X3ZtICp2bSk7DQo+ICt2b2lkIHhlX3ZtX3NuYXBzaG90X2NhcHR1cmVfZGVsYXllZChzdHJ1Y3Qg eGVfdm1fc25hcHNob3QgKnNuYXApOw0KPiArdm9pZCB4ZV92bV9zbmFwc2hvdF9wcmludChzdHJ1 Y3QgeGVfdm1fc25hcHNob3QgKnNuYXAsIHN0cnVjdCBkcm1fcHJpbnRlciAqcCk7DQo+ICt2b2lk IHhlX3ZtX3NuYXBzaG90X2ZyZWUoc3RydWN0IHhlX3ZtX3NuYXBzaG90ICpzbmFwKTsNCg0K