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 59AB2C4332F for ; Wed, 13 Dec 2023 22:50:13 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 03E0010E85F; Wed, 13 Dec 2023 22:50:13 +0000 (UTC) Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.9]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1BE5110E85F for ; Wed, 13 Dec 2023 22:50:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1702507810; x=1734043810; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=NyBtvqVOhnE476SaEbSFzzYzKap4NZ4bhGdR1nFqhsU=; b=NoY+Um61fywFCrcbn/quzepf5MDTxlEWxMb4yUb0XVZwTUmTYonB1xAe qjnZ2iKziq0xONMCZoCHItBsxZpfl5kKQYMjJgle5H0IoBG7R3R5vzcPj GZzpETf/sUb+k1I/vIPBAiY9ozkyPzK10nHQTjo4b0Tvr5g8GqeRmebxI eIvUR984iov4nWfsKigtDdhNOQIlRn754J4XcqzuArncoCIOAhHsvrI6A jP0rR/efKSz7n8SMarqVB6yLCpzBlSHJzolmIvQoB0y12buSrwlCcYuGf WTuS+g5nnlePRZ708Gi3KPnXa+4Dq1xMDkdHWH2djm95/FnA9DwCboeFJ g==; X-IronPort-AV: E=McAfee;i="6600,9927,10923"; a="1891931" X-IronPort-AV: E=Sophos;i="6.04,274,1695711600"; d="scan'208";a="1891931" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmvoesa103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Dec 2023 14:50:09 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10923"; a="947343605" X-IronPort-AV: E=Sophos;i="6.04,274,1695711600"; d="scan'208";a="947343605" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orsmga005.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 13 Dec 2023 14:50:08 -0800 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) 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.35; Wed, 13 Dec 2023 14:50:08 -0800 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Wed, 13 Dec 2023 14:50:07 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Wed, 13 Dec 2023 14:50:07 -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.35; Wed, 13 Dec 2023 14:49:56 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CmoiZNvY1tbVjuUBrN88j5LcOq7V1C9VWeaP4a8kHOHaNEoFK0289vwnMpZsXaVlVMQK5m+z6xPHep03BZVQOSzqfnEzQsFuG/MFaX8mFFSEJTdXVdYSY5vmZpzDRj/vEApNHOvUHehHGxrQIMOVfoY2RL/RbeP7Got32MieAJUY5mpbCI67C/qdbAjrHZvA4MJOdhS6P6zcqQGVRlvyHvUhA6uVnTbRhK523Cw4oz3NlAHiXpxK56owVpqQqP2Z3fMy5vIKcOZ9QTF/8YYUAoOLjjTRnbolgwPeVIO3abrKKSdtqyYGOEcpgHl9Twot7U5lkvrxW66AhfZ1IS/iiA== 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=NyBtvqVOhnE476SaEbSFzzYzKap4NZ4bhGdR1nFqhsU=; b=kZiozG6nnpwXx5kCeRlSV5h/6zA+q81nwqF1bDuImFDZMYhGuZJlzWEOHIwWF2XBckqkXszUUYjAaNpFA8BUURJP7cXxsTWyu5o94W0FdHbklxhoe9CpitZhrNrBH9IXQakPLLs3wUJLFAlbABNJdgbQqBok/swhN8zpO0a5LZKmtkBvFjOEAygliRMu7Giq/FkMCxL8KmtOra2CSxj0j9RwwXBfJUytD9OQdzGdwc53W93xf0ZMH6sDCn3gvu23OipCS5vquN6TFiYhGJZWy4NrRyhZmdYMrNNo66HxQzZleObikVairdt343j6kvTtjlNn2cTl8dRMdHXkfouTGQ== 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 SN7PR11MB6773.namprd11.prod.outlook.com (2603:10b6:806:266::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.26; Wed, 13 Dec 2023 22:49:53 +0000 Received: from DM4PR11MB8179.namprd11.prod.outlook.com ([fe80::8076:c5fe:e0fc:cfaf]) by DM4PR11MB8179.namprd11.prod.outlook.com ([fe80::8076:c5fe:e0fc:cfaf%7]) with mapi id 15.20.7068.033; Wed, 13 Dec 2023 22:49:53 +0000 From: "Souza, Jose" To: "intel-xe@lists.freedesktop.org" , "Brost, Matthew" Subject: Re: [PATCH v3] drm/xe/uapi: Uniform async vs sync handling Thread-Topic: [PATCH v3] drm/xe/uapi: Uniform async vs sync handling Thread-Index: AQHaLhPshrzt/SWHAEyy3pUXqbBy7rCn0TKA Date: Wed, 13 Dec 2023 22:49:53 +0000 Message-ID: References: <20231213222957.624515-1-matthew.brost@intel.com> In-Reply-To: <20231213222957.624515-1-matthew.brost@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_|SN7PR11MB6773:EE_ x-ms-office365-filtering-correlation-id: 7fefd3df-e6d7-44d8-5489-08dbfc2dd245 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: bQaG5szImxV+dWa/vxh3N3sJqfNTcFfH2Wd/N85i6mULpHIESnPWNoaeH1vSQP09fDyu9W7pO6tJzR1m2HG5UY92UPIjF1l3CXo3CP06cuGSnYD4nqmA9pBeT+RqsWO6R9xQodd0jsJhfTg+OcAHzDmiPhvQ8h0y2n5a7qTdkP04dGJbNjjdOvVOlyqKmh9Ju1DlRFQh+MOKN2xcT9cXXxibtbUFxjWfmZoSe6MepzjGz2Ai5ww1VkWM7NX7AdaQFc1yho1x/zpnRCgoDWq0rIJtcTSQkKM6wcP1wmoyG1kg6jZK8cFpEXnGI+CH3olxc14SvfnOogVwAz8olCXKAStZoDOCssZeOe7EsV6vMX3Ee4E+shTD+TlvUKtMHUtKZut5mxQLHFpJhexWooYNUOCQR3dfKoqC4G2bWlJXRpceHU/MDiQot0y5mRAli2u6z68eJZmmq6Xn5ai6+c3Ppi+JTl50phBlSXUCqcAePs2J6BJJqdMqk4iYmGEfEH8rcIIhXrZ2EdsRIqZRm6RvisyDqvTleZKrQ97C00OWIw+cvJucHO8o8sJ6jOLD35TmBENlz9/E5Tr2na1ZZIBzgcVRk+FLnKhcCjzMoKU76oJwSuSfgaNNCbqyZG3pNcjd 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)(39860400002)(366004)(376002)(346002)(136003)(230922051799003)(1800799012)(451199024)(64100799003)(186009)(26005)(107886003)(83380400001)(6506007)(2616005)(66574015)(6512007)(122000001)(8676002)(38100700002)(5660300002)(4326008)(8936002)(41300700001)(2906002)(4001150100001)(6486002)(30864003)(110136005)(478600001)(71200400001)(316002)(66476007)(6636002)(91956017)(54906003)(64756008)(66446008)(76116006)(66946007)(66556008)(36756003)(86362001)(82960400001)(38070700009)(559001)(579004); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?aUppclduZW9GUys2SHFyQzNic0hLYWZhanM2VTU1TE5Ybks5NUxHSGI2RWd6?= =?utf-8?B?emFwZGFYbFpyVWFCc0NscEZ1NU5xZDF5Q0VpekFJN092ZnJYNHIreklQcEpX?= =?utf-8?B?RVRkMDY2ZVBKbHdjNEgwaHlXYWl4dHRKb2c3SnI3RnRSckduNWJuY010RzIr?= =?utf-8?B?S0JDNjc0RXl2L0cxemVoN2d4N3VpSkRDaXVpRHgxdGkzVURMeUErSjY1cWxk?= =?utf-8?B?THlpU0NyMzJnclFJTUk5ZWFhb2k0cHdmWUdJSDh5eTdKTWxTeVU1ajNwVTZR?= =?utf-8?B?UmppeklwYjR6a0M5cTNsaEI1Tmx5YXFXOGFwd3BadHd5eDBmYVJHSUY4ckJ6?= =?utf-8?B?SG9McFR0cmFsbGRGTDRMak83aXRpNnBET3QxRXVIRVp2Yi9iUVhIZ0NydDZx?= =?utf-8?B?a25yUW92RDJTZmdlSGhaVVNaZzlHK3Brak1YVHdiLzFreDcrRE9PQ0h1amxU?= =?utf-8?B?NDI0WFZEam04aWdPRENNRkVKa2tpMVhkNjBvOHlpU0VPTzBOdFBIVXUraHN3?= =?utf-8?B?ekpEUjFKbld5OTc2QVZ6c3ozQUYrT3lBY0hTUXhNNmpsdjJzNHlqRVVXZzRP?= =?utf-8?B?aVpnMHhybEM2TUpheUgyWkQybzBvdFdrZjdQSUJVL0ZJSkpJSjFKU2dYNzEx?= =?utf-8?B?NkpuQS9VNXNtN3NnY1NEaVUvZU9URGgrNURWZkhSR09RY0M3SzZaSTZTYllR?= =?utf-8?B?Nnc4RTN2VE9pMHNVL3hiZVdyUUpFcmRVR0k4QjhOUHAwYkxKaFE1NnRiVlkz?= =?utf-8?B?L1F3dEdvWW1BM0d2ZndYazdFWXRoejQ2bzlZaVFyaVhUQ0cvOUFnUmVGTGFu?= =?utf-8?B?bGNPZGdCWkxSUVlQV1JtMjRaQ0hET2RhZWhvbXRrRHY0RHZ5Smg0MjUrRzRC?= =?utf-8?B?c2FDcGwxZHhaRktBd0pkWUlVdXIxaDZIcm5DZUFSUmlYaU1HdTVHNk1VWm9E?= =?utf-8?B?Sk4wTGZsak1lSStFdUUyTGt2VjhJMFlOUWtnWWhKNGZLRGxYRlU4ZnowdFhK?= =?utf-8?B?UDBhRDdreFJVTWQ1dWRvWmJkd2c2MzYwY2R4WVpsR1pPcjU2VkxkbkdZM24x?= =?utf-8?B?bWk4OWNTUlVkOWtMa3U4NTlYRWp2OTdzZklVdzY3NWU3SnB3QWY2d0M2SmQw?= =?utf-8?B?ZytILzBJdi9idVNqdk5zN0tLVCs2QWZtK0ZzRTA3ZWMxa00rNTRTeWwzdkhu?= =?utf-8?B?SjJ0YzV0TklKeDZ0SVhnZzhvb3RSUm45cXJXY0NlZktwdDQzOHBQRUk4NzRN?= =?utf-8?B?MFZrMVBtVkRndWloaFMxYzhKYkt6T2lNemQweHlnSEVjUVlnOFhjbmVUTWtI?= =?utf-8?B?UndyekJnWEJCOFNaSVVxN21PSUp0d3FQNEZmbGpTdzNyZ1ZEYXZkdUF5VzBQ?= =?utf-8?B?R1dRMmlBSmYvVjl2WnIrdTVjM2dEVHhjekpsaXV1N0xvR0MrRWFMNm11d2gr?= =?utf-8?B?R0RhblM3clc2Q1ExUVRGNWIxZXc3azJDalZYV1Vtd2hUYzZzTjkzVU5TRGsv?= =?utf-8?B?dTR1V25tUkxSMDBma1pNV2kxQUxCTmVWa29XRUY0cjBVL3RUNVhoVWYxM3Nt?= =?utf-8?B?bS93bXdoV3NwTVgwTTBIMmtraWczTkkzY3dqUitBVjlyUTlFemQrNTFoWmxU?= =?utf-8?B?VjNVbTNqeXM3NnZiczdvWVVDRTVMcWZ0V0dKdVNEWmtKd1c4NmdPdUE2eUxa?= =?utf-8?B?MDdkM05jK2VuOTZsdmpBbENiRHlvQTdSVXhmNW5haHRvWVFtZ2krVHFoV21a?= =?utf-8?B?N3JvRXJjN2ZCYUkwb0g2UEkvTExEdTNJdVBUVVNMZm94VllHY0ZuMFByRkJ1?= =?utf-8?B?am1TYjdtOXR3bC9taVF2R3kyNGJUY1loYzF3U2ZKWS9FUjM4S1RzS2daQkIz?= =?utf-8?B?VUhpNlh0R1FCOW1tdTkyQW00UkJQcU9ZdlJiYzBKeXlNMGYxSGt3MEQzUGlL?= =?utf-8?B?NTdsSjNlekZYRm1mWlhoSXlGWGk4cWxianpzNUt0KzZ5YUV4dFlXK08zQmMw?= =?utf-8?B?WElsUTBFaWlydU9zMGVVbHg3ckZzZitIZnFZSEgyZGErOE0rNysxdkVNRHpt?= =?utf-8?B?cmVPeTVkNUQ0emRmU2pIVVZONFpsL2NSbnFvZWdyOGtIM1ZoT2RDTGxHcmxN?= =?utf-8?B?elI2MkZrbGt0eGhGMDhCNHJ5bmtZL1k2U0ZaemNoQXd1LytWZlo2SHlEZExB?= =?utf-8?B?QXc9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <96EEBBB363148744B8C03B8BB0570A64@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: 7fefd3df-e6d7-44d8-5489-08dbfc2dd245 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Dec 2023 22:49:53.4357 (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: 2ZiYKopb4CeLhcmZIlwbnps3sVUaOlOAmYFOt2gn+7n0uMe0exfcMozh6M9GVa3X5R+ntoFgzn4Dr/gB9vHhrQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR11MB6773 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: , Cc: "Dugast, Francois" , "Vivi, Rodrigo" Errors-To: intel-xe-bounces@lists.freedesktop.org Sender: "Intel-xe" T24gV2VkLCAyMDIzLTEyLTEzIGF0IDE0OjI5IC0wODAwLCBNYXR0aGV3IEJyb3N0IHdyb3RlOg0K PiBSZW1vdmUgY29uY2VwdCBvZiBhc3luYyB2cyBzeW5jIFZNIGJpbmQgcXVldWVzLCByYXRoZXIg bWFrZSBhc3luYyB2cw0KPiBzeW5jIGEgcGVyIElPQ1RMIGNob2ljZS4gU2luY2UgdGhpcyBpcyBw ZXIgSU9DVEwsIGl0IG1ha2VzIHNlbnNlIHRvIGhhdmUNCj4gYSBzaW5ndWxhciBmbGFnIElPQ1RM IHJhdGhlciB0aGFuIHBlciBWTSBiaW5kIG9wIGZsYWcgdG9vLiBBZGQNCj4gRFJNX1hFX1NZTkNT X0ZMQUdfV0FJVF9GT1JfT1Agd2hpY2ggaXMgYW4gaW5wdXQgc3luYyBmbGFnIHRvIHN1cHBvcnQN Cj4gdGhpcy4gU3VwcG9ydCB0aGlzIG5ldyBmbGFnIGZvciBib3RoIHRoZSBWTSBiaW5kIElPQ1RM IG9ubHkgd2l0aCBhIHBhdGgNCj4gdG8gc3VwcG9ydCB0aGlzIGZvciBleGVjcyB0b28uDQo+IA0K PiB2MjogQWRkIGNvb2tpZSwgbW92ZSBzeW5jIHdhaXQgb3V0c2lkZSBvZiBhbnkgbG9ja3MuDQo+ IHYzOiBTa2lwIGJpbmQgb3BlcmF0aW9ucyBpZiAqY29va2llIG5vbi16ZXJvLCBjaGVjayByZXNl cnZlZCBiaXRzIHplcm8NCj4gDQo+IENjOiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRl bC5jb20+DQo+IENjOiBUaG9tYXMgSGVsbHN0csO2bSA8dGhvbWFzLmhlbGxzdHJvbUBsaW51eC5p bnRlbC5jb20+DQo+IENjOiBGcmFuY29pcyBEdWdhc3QgPGZyYW5jb2lzLmR1Z2FzdEBpbnRlbC5j b20+DQo+IFNpZ25lZC1vZmYtYnk6IE1hdHRoZXcgQnJvc3QgPG1hdHRoZXcuYnJvc3RAaW50ZWwu Y29tPg0KPiAtLS0NCj4gIGRyaXZlcnMvZ3B1L2RybS94ZS94ZV9leGVjLmMgICAgICAgICAgICAg fCAgMTMgKystDQo+ICBkcml2ZXJzL2dwdS9kcm0veGUveGVfZXhlY19xdWV1ZS5jICAgICAgIHwg ICA3ICstDQo+ICBkcml2ZXJzL2dwdS9kcm0veGUveGVfZXhlY19xdWV1ZV90eXBlcy5oIHwgICAy IC0NCj4gIGRyaXZlcnMvZ3B1L2RybS94ZS94ZV92bS5jICAgICAgICAgICAgICAgfCAxNDAgKysr KysrKysrKysrLS0tLS0tLS0tLS0NCj4gIGRyaXZlcnMvZ3B1L2RybS94ZS94ZV92bV90eXBlcy5o ICAgICAgICAgfCAgMTMgKy0tDQo+ICBpbmNsdWRlL3VhcGkvZHJtL3hlX2RybS5oICAgICAgICAg ICAgICAgIHwgIDY1ICsrKysrKystLS0tDQo+ICA2IGZpbGVzIGNoYW5nZWQsIDEzMSBpbnNlcnRp b25zKCspLCAxMDkgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3hlL3hlX2V4ZWMuYyBiL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV9leGVjLmMNCj4gaW5kZXgg YmE5MmU1NjE5ZGEzLi5hZjJiNjc2YzhlZWYgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS94ZS94ZV9leGVjLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3hlL3hlX2V4ZWMuYw0KPiBA QCAtMTA0LDcgKzEwNCw3IEBAIGludCB4ZV9leGVjX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkNCj4gIAlzdHJ1Y3QgeGVfZGV2 aWNlICp4ZSA9IHRvX3hlX2RldmljZShkZXYpOw0KPiAgCXN0cnVjdCB4ZV9maWxlICp4ZWYgPSB0 b194ZV9maWxlKGZpbGUpOw0KPiAgCXN0cnVjdCBkcm1feGVfZXhlYyAqYXJncyA9IGRhdGE7DQo+ IC0Jc3RydWN0IGRybV94ZV9zeW5jIF9fdXNlciAqc3luY3NfdXNlciA9IHU2NF90b191c2VyX3B0 cihhcmdzLT5zeW5jcyk7DQo+ICsJc3RydWN0IGRybV94ZV9zeW5jIF9fdXNlciAqc3luY3NfdXNl ciA9IHU2NF90b191c2VyX3B0cihhcmdzLT5zeW5jcy5zeW5jcyk7DQo+ICAJdTY0IF9fdXNlciAq YWRkcmVzc2VzX3VzZXIgPSB1NjRfdG9fdXNlcl9wdHIoYXJncy0+YWRkcmVzcyk7DQo+ICAJc3Ry dWN0IHhlX2V4ZWNfcXVldWUgKnE7DQo+ICAJc3RydWN0IHhlX3N5bmNfZW50cnkgKnN5bmNzID0g TlVMTDsNCj4gQEAgLTEyMCw3ICsxMjAsMTAgQEAgaW50IHhlX2V4ZWNfaW9jdGwoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlKQ0KPiAgCWlu dCBlcnIgPSAwOw0KPiAgDQo+ICAJaWYgKFhFX0lPQ1RMX0RCRyh4ZSwgYXJncy0+ZXh0ZW5zaW9u cykgfHwNCj4gLQkgICAgWEVfSU9DVExfREJHKHhlLCBhcmdzLT5wYWRbMF0gfHwgYXJncy0+cGFk WzFdIHx8IGFyZ3MtPnBhZFsyXSkgfHwNCj4gKwkgICAgWEVfSU9DVExfREJHKHhlLCBhcmdzLT5w YWQgfHwgYXJncy0+cGFkMlswXSB8fCBhcmdzLT5wYWQyWzFdIHx8IGFyZ3MtPnBhZDJbMl0pIHx8 DQo+ICsJICAgIFhFX0lPQ1RMX0RCRyh4ZSwgYXJncy0+c3luY3MuZmxhZ3MpIHx8DQo+ICsJICAg IFhFX0lPQ1RMX0RCRyh4ZSwgYXJncy0+c3luY3MuY29va2llKSB8fA0KPiArCSAgICBYRV9JT0NU TF9EQkcoeGUsIGFyZ3MtPnN5bmNzLnJlc2VydmVkWzBdIHx8IGFyZ3MtPnN5bmNzLnJlc2VydmVk WzFdKSB8fA0KPiAgCSAgICBYRV9JT0NUTF9EQkcoeGUsIGFyZ3MtPnJlc2VydmVkWzBdIHx8IGFy Z3MtPnJlc2VydmVkWzFdKSkNCj4gIAkJcmV0dXJuIC1FSU5WQUw7DQo+ICANCj4gQEAgLTE0MCw4 ICsxNDMsOCBAQCBpbnQgeGVfZXhlY19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lk ICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpDQo+ICAJCWdvdG8gZXJyX2V4ZWNfcXVldWU7 DQo+ICAJfQ0KPiAgDQo+IC0JaWYgKGFyZ3MtPm51bV9zeW5jcykgew0KPiAtCQlzeW5jcyA9IGtj YWxsb2MoYXJncy0+bnVtX3N5bmNzLCBzaXplb2YoKnN5bmNzKSwgR0ZQX0tFUk5FTCk7DQo+ICsJ aWYgKGFyZ3MtPnN5bmNzLm51bV9zeW5jcykgew0KPiArCQlzeW5jcyA9IGtjYWxsb2MoYXJncy0+ c3luY3MubnVtX3N5bmNzLCBzaXplb2YoKnN5bmNzKSwgR0ZQX0tFUk5FTCk7DQo+ICAJCWlmICgh c3luY3MpIHsNCj4gIAkJCWVyciA9IC1FTk9NRU07DQo+ICAJCQlnb3RvIGVycl9leGVjX3F1ZXVl Ow0KPiBAQCAtMTUwLDcgKzE1Myw3IEBAIGludCB4ZV9leGVjX2lvY3RsKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkNCj4gIA0KPiAgCXZt ID0gcS0+dm07DQo+ICANCj4gLQlmb3IgKGkgPSAwOyBpIDwgYXJncy0+bnVtX3N5bmNzOyBpKysp IHsNCj4gKwlmb3IgKGkgPSAwOyBpIDwgYXJncy0+c3luY3MubnVtX3N5bmNzOyBpKyspIHsNCj4g IAkJZXJyID0geGVfc3luY19lbnRyeV9wYXJzZSh4ZSwgeGVmLCAmc3luY3NbbnVtX3N5bmNzKytd LA0KPiAgCQkJCQkgICZzeW5jc191c2VyW2ldLCBTWU5DX1BBUlNFX0ZMQUdfRVhFQyB8DQo+ICAJ CQkJCSAgKHhlX3ZtX2luX2xyX21vZGUodm0pID8NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS94ZS94ZV9leGVjX3F1ZXVlLmMgYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfZXhlY19xdWV1 ZS5jDQo+IGluZGV4IGVlYjk2MDVkZDQ1Zi4uYTI1ZDY3OTcxZmRkIDEwMDY0NA0KPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0veGUveGVfZXhlY19xdWV1ZS5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS94ZS94ZV9leGVjX3F1ZXVlLmMNCj4gQEAgLTYyNSwxMCArNjI1LDcgQEAgaW50IHhlX2V4ZWNf cXVldWVfY3JlYXRlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsDQo+ ICAJaWYgKFhFX0lPQ1RMX0RCRyh4ZSwgZWNpWzBdLmd0X2lkID49IHhlLT5pbmZvLmd0X2NvdW50 KSkNCj4gIAkJcmV0dXJuIC1FSU5WQUw7DQo+ICANCj4gLQlpZiAoZWNpWzBdLmVuZ2luZV9jbGFz cyA+PSBEUk1fWEVfRU5HSU5FX0NMQVNTX1ZNX0JJTkRfQVNZTkMpIHsNCj4gLQkJYm9vbCBzeW5j ID0gZWNpWzBdLmVuZ2luZV9jbGFzcyA9PQ0KPiAtCQkJRFJNX1hFX0VOR0lORV9DTEFTU19WTV9C SU5EX1NZTkM7DQo+IC0NCj4gKwlpZiAoZWNpWzBdLmVuZ2luZV9jbGFzcyA9PSBEUk1fWEVfRU5H SU5FX0NMQVNTX1ZNX0JJTkQpIHsNCj4gIAkJZm9yX2VhY2hfZ3QoZ3QsIHhlLCBpZCkgew0KPiAg CQkJc3RydWN0IHhlX2V4ZWNfcXVldWUgKm5ldzsNCj4gIA0KPiBAQCAtNjU0LDggKzY1MSw2IEBA IGludCB4ZV9leGVjX3F1ZXVlX2NyZWF0ZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2 b2lkICpkYXRhLA0KPiAgCQkJCQkJICAgYXJncy0+d2lkdGgsIGh3ZSwNCj4gIAkJCQkJCSAgIEVY RUNfUVVFVUVfRkxBR19QRVJTSVNURU5UIHwNCj4gIAkJCQkJCSAgIEVYRUNfUVVFVUVfRkxBR19W TSB8DQo+IC0JCQkJCQkgICAoc3luYyA/IDAgOg0KPiAtCQkJCQkJICAgIEVYRUNfUVVFVUVfRkxB R19WTV9BU1lOQykgfA0KPiAgCQkJCQkJICAgKGlkID8NCj4gIAkJCQkJCSAgICBFWEVDX1FVRVVF X0ZMQUdfQklORF9FTkdJTkVfQ0hJTEQgOg0KPiAgCQkJCQkJICAgIDApKTsNCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV9leGVjX3F1ZXVlX3R5cGVzLmggYi9kcml2ZXJzL2dw dS9kcm0veGUveGVfZXhlY19xdWV1ZV90eXBlcy5oDQo+IGluZGV4IGM3YWVmYTFjOGMzMS4uMGY3 ZjZjZGVkNGEzIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfZXhlY19xdWV1 ZV90eXBlcy5oDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV9leGVjX3F1ZXVlX3R5cGVz LmgNCj4gQEAgLTg0LDggKzg0LDYgQEAgc3RydWN0IHhlX2V4ZWNfcXVldWUgew0KPiAgI2RlZmlu ZSBFWEVDX1FVRVVFX0ZMQUdfVk0JCQlCSVQoNCkNCj4gIC8qIGNoaWxkIG9mIFZNIHF1ZXVlIGZv ciBtdWx0aS10aWxlIFZNIGpvYnMgKi8NCj4gICNkZWZpbmUgRVhFQ19RVUVVRV9GTEFHX0JJTkRf RU5HSU5FX0NISUxECUJJVCg1KQ0KPiAtLyogVk0gam9icyBmb3IgdGhpcyBxdWV1ZSBhcmUgYXN5 bmNocm9ub3VzICovDQo+IC0jZGVmaW5lIEVYRUNfUVVFVUVfRkxBR19WTV9BU1lOQwkJQklUKDYp DQo+ICANCj4gIAkvKioNCj4gIAkgKiBAZmxhZ3M6IGZsYWdzIGZvciB0aGlzIGV4ZWMgcXVldWUs IHNob3VsZCBzdGF0aWNhbGx5IHNldHVwIGFzaWRlIGZyb20gYmFuDQo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0veGUveGVfdm0uYyBiL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV92bS5jDQo+ IGluZGV4IDJmM2RmOWVlNjdjOS4uODQwN2M0ZDU0YTQ1IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0veGUveGVfdm0uYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfdm0uYw0K PiBAQCAtMTM0Myw5ICsxMzQzLDcgQEAgc3RydWN0IHhlX3ZtICp4ZV92bV9jcmVhdGUoc3RydWN0 IHhlX2RldmljZSAqeGUsIHUzMiBmbGFncykNCj4gIAkJCXN0cnVjdCB4ZV9ndCAqZ3QgPSB0aWxl LT5wcmltYXJ5X2d0Ow0KPiAgCQkJc3RydWN0IHhlX3ZtICptaWdyYXRlX3ZtOw0KPiAgCQkJc3Ry dWN0IHhlX2V4ZWNfcXVldWUgKnE7DQo+IC0JCQl1MzIgY3JlYXRlX2ZsYWdzID0gRVhFQ19RVUVV RV9GTEFHX1ZNIHwNCj4gLQkJCQkoKGZsYWdzICYgWEVfVk1fRkxBR19BU1lOQ19ERUZBVUxUKSA/ DQo+IC0JCQkJRVhFQ19RVUVVRV9GTEFHX1ZNX0FTWU5DIDogMCk7DQo+ICsJCQl1MzIgY3JlYXRl X2ZsYWdzID0gRVhFQ19RVUVVRV9GTEFHX1ZNOw0KPiAgDQo+ICAJCQlpZiAoIXZtLT5wdF9yb290 W2lkXSkNCj4gIAkJCQljb250aW51ZTsNCj4gQEAgLTE3MTIsMTIgKzE3MTAsNiBAQCB4ZV92bV9i aW5kX3ZtYShzdHJ1Y3QgeGVfdm1hICp2bWEsIHN0cnVjdCB4ZV9leGVjX3F1ZXVlICpxLA0KPiAg CXJldHVybiBFUlJfUFRSKGVycik7DQo+ICB9DQo+ICANCj4gLXN0YXRpYyBib29sIHhlX3ZtX3N5 bmNfbW9kZShzdHJ1Y3QgeGVfdm0gKnZtLCBzdHJ1Y3QgeGVfZXhlY19xdWV1ZSAqcSkNCj4gLXsN Cj4gLQlyZXR1cm4gcSA/ICEocS0+ZmxhZ3MgJiBFWEVDX1FVRVVFX0ZMQUdfVk1fQVNZTkMpIDoN Cj4gLQkJISh2bS0+ZmxhZ3MgJiBYRV9WTV9GTEFHX0FTWU5DX0RFRkFVTFQpOw0KPiAtfQ0KPiAt DQo+ICBzdGF0aWMgaW50IF9feGVfdm1fYmluZChzdHJ1Y3QgeGVfdm0gKnZtLCBzdHJ1Y3QgeGVf dm1hICp2bWEsDQo+ICAJCQlzdHJ1Y3QgeGVfZXhlY19xdWV1ZSAqcSwgc3RydWN0IHhlX3N5bmNf ZW50cnkgKnN5bmNzLA0KPiAgCQkJdTMyIG51bV9zeW5jcywgYm9vbCBpbW1lZGlhdGUsIGJvb2wg Zmlyc3Rfb3AsDQo+IEBAIC0xNzQ3LDggKzE3MzksNiBAQCBzdGF0aWMgaW50IF9feGVfdm1fYmlu ZChzdHJ1Y3QgeGVfdm0gKnZtLCBzdHJ1Y3QgeGVfdm1hICp2bWEsDQo+ICANCj4gIAlpZiAobGFz dF9vcCkNCj4gIAkJeGVfZXhlY19xdWV1ZV9sYXN0X2ZlbmNlX3NldCh3YWl0X2V4ZWNfcXVldWUs IHZtLCBmZW5jZSk7DQo+IC0JaWYgKGxhc3Rfb3AgJiYgeGVfdm1fc3luY19tb2RlKHZtLCBxKSkN Cj4gLQkJZG1hX2ZlbmNlX3dhaXQoZmVuY2UsIHRydWUpOw0KPiAgCWRtYV9mZW5jZV9wdXQoZmVu Y2UpOw0KPiAgDQo+ICAJcmV0dXJuIDA7DQo+IEBAIC0xNzkxLDggKzE3ODEsNiBAQCBzdGF0aWMg aW50IHhlX3ZtX3VuYmluZChzdHJ1Y3QgeGVfdm0gKnZtLCBzdHJ1Y3QgeGVfdm1hICp2bWEsDQo+ ICAJeGVfdm1hX2Rlc3Ryb3kodm1hLCBmZW5jZSk7DQo+ICAJaWYgKGxhc3Rfb3ApDQo+ICAJCXhl X2V4ZWNfcXVldWVfbGFzdF9mZW5jZV9zZXQod2FpdF9leGVjX3F1ZXVlLCB2bSwgZmVuY2UpOw0K PiAtCWlmIChsYXN0X29wICYmIHhlX3ZtX3N5bmNfbW9kZSh2bSwgcSkpDQo+IC0JCWRtYV9mZW5j ZV93YWl0KGZlbmNlLCB0cnVlKTsNCj4gIAlkbWFfZmVuY2VfcHV0KGZlbmNlKTsNCj4gIA0KPiAg CXJldHVybiAwOw0KPiBAQCAtMTgwMCw3ICsxNzg4LDYgQEAgc3RhdGljIGludCB4ZV92bV91bmJp bmQoc3RydWN0IHhlX3ZtICp2bSwgc3RydWN0IHhlX3ZtYSAqdm1hLA0KPiAgDQo+ICAjZGVmaW5l IEFMTF9EUk1fWEVfVk1fQ1JFQVRFX0ZMQUdTIChEUk1fWEVfVk1fQ1JFQVRFX0ZMQUdfU0NSQVRD SF9QQUdFIHwgXA0KPiAgCQkJCSAgICBEUk1fWEVfVk1fQ1JFQVRFX0ZMQUdfTFJfTU9ERSB8IFwN Cj4gLQkJCQkgICAgRFJNX1hFX1ZNX0NSRUFURV9GTEFHX0FTWU5DX0RFRkFVTFQgfCBcDQo+ICAJ CQkJICAgIERSTV9YRV9WTV9DUkVBVEVfRkxBR19GQVVMVF9NT0RFKQ0KPiAgDQo+ICBpbnQgeGVf dm1fY3JlYXRlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsDQo+IEBA IC0xODU0LDggKzE4NDEsNiBAQCBpbnQgeGVfdm1fY3JlYXRlX2lvY3RsKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHZvaWQgKmRhdGEsDQo+ICAJCWZsYWdzIHw9IFhFX1ZNX0ZMQUdfU0NSQVRDSF9Q QUdFOw0KPiAgCWlmIChhcmdzLT5mbGFncyAmIERSTV9YRV9WTV9DUkVBVEVfRkxBR19MUl9NT0RF KQ0KPiAgCQlmbGFncyB8PSBYRV9WTV9GTEFHX0xSX01PREU7DQo+IC0JaWYgKGFyZ3MtPmZsYWdz ICYgRFJNX1hFX1ZNX0NSRUFURV9GTEFHX0FTWU5DX0RFRkFVTFQpDQo+IC0JCWZsYWdzIHw9IFhF X1ZNX0ZMQUdfQVNZTkNfREVGQVVMVDsNCj4gIAlpZiAoYXJncy0+ZmxhZ3MgJiBEUk1fWEVfVk1f Q1JFQVRFX0ZMQUdfRkFVTFRfTU9ERSkNCj4gIAkJZmxhZ3MgfD0gWEVfVk1fRkxBR19GQVVMVF9N T0RFOw0KPiAgDQo+IEBAIC0yMjYzLDggKzIyNDgsNyBAQCBzdGF0aWMgaW50IHhlX3ZtYV9vcF9j b21taXQoc3RydWN0IHhlX3ZtICp2bSwgc3RydWN0IHhlX3ZtYV9vcCAqb3ApDQo+ICBzdGF0aWMg aW50IHZtX2JpbmRfaW9jdGxfb3BzX3BhcnNlKHN0cnVjdCB4ZV92bSAqdm0sIHN0cnVjdCB4ZV9l eGVjX3F1ZXVlICpxLA0KPiAgCQkJCSAgIHN0cnVjdCBkcm1fZ3B1dmFfb3BzICpvcHMsDQo+ICAJ CQkJICAgc3RydWN0IHhlX3N5bmNfZW50cnkgKnN5bmNzLCB1MzIgbnVtX3N5bmNzLA0KPiAtCQkJ CSAgIHN0cnVjdCBsaXN0X2hlYWQgKm9wc19saXN0LCBib29sIGxhc3QsDQo+IC0JCQkJICAgYm9v bCBhc3luYykNCj4gKwkJCQkgICBzdHJ1Y3QgbGlzdF9oZWFkICpvcHNfbGlzdCwgYm9vbCBsYXN0 KQ0KPiAgew0KPiAgCXN0cnVjdCB4ZV92bWFfb3AgKmxhc3Rfb3AgPSBOVUxMOw0KPiAgCXN0cnVj dCBkcm1fZ3B1dmFfb3AgKl9fb3A7DQo+IEBAIC0yNjk2LDI4ICsyNjgwLDI4IEBAIHN0YXRpYyBp bnQgdm1fYmluZF9pb2N0bF9vcHNfZXhlY3V0ZShzdHJ1Y3QgeGVfdm0gKnZtLA0KPiAgDQo+ICAj aWZkZWYgVEVTVF9WTV9BU1lOQ19PUFNfRVJST1INCj4gICNkZWZpbmUgU1VQUE9SVEVEX0ZMQUdT CVwNCj4gLQkoRk9SQ0VfQVNZTkNfT1BfRVJST1IgfCBEUk1fWEVfVk1fQklORF9GTEFHX0FTWU5D IHwgXA0KPiAtCSBEUk1fWEVfVk1fQklORF9GTEFHX1JFQURPTkxZIHwgRFJNX1hFX1ZNX0JJTkRf RkxBR19JTU1FRElBVEUgfCBcDQo+IC0JIERSTV9YRV9WTV9CSU5EX0ZMQUdfTlVMTCB8IDB4ZmZm ZikNCj4gKwkoRk9SQ0VfQVNZTkNfT1BfRVJST1IgfCBEUk1fWEVfVk1fQklORF9GTEFHX1JFQURP TkxZIHwgXA0KPiArCSBEUk1fWEVfVk1fQklORF9GTEFHX0lNTUVESUFURSB8IERSTV9YRV9WTV9C SU5EX0ZMQUdfTlVMTCB8IDB4ZmZmZikNCj4gICNlbHNlDQo+ICAjZGVmaW5lIFNVUFBPUlRFRF9G TEFHUwlcDQo+IC0JKERSTV9YRV9WTV9CSU5EX0ZMQUdfQVNZTkMgfCBEUk1fWEVfVk1fQklORF9G TEFHX1JFQURPTkxZIHwgXA0KPiArCShEUk1fWEVfVk1fQklORF9GTEFHX1JFQURPTkxZIHwgXA0K PiAgCSBEUk1fWEVfVk1fQklORF9GTEFHX0lNTUVESUFURSB8IERSTV9YRV9WTV9CSU5EX0ZMQUdf TlVMTCB8IFwNCj4gIAkgMHhmZmZmKQ0KPiAgI2VuZGlmDQo+ICAjZGVmaW5lIFhFXzY0S19QQUdF X01BU0sgMHhmZmZmdWxsDQo+ICsjZGVmaW5lIEFMTF9EUk1fWEVfU1lOQ1NfRkxBR1MgKERSTV9Y RV9TWU5DU19GTEFHX1dBSVRfRk9SX09QKQ0KPiAgDQo+ICAjZGVmaW5lIE1BWF9CSU5EUwk1MTIJ LyogRklYTUU6IFBpY2tpbmcgcmFuZG9tIHVwcGVyIGxpbWl0ICovDQo+ICANCj4gIHN0YXRpYyBp bnQgdm1fYmluZF9pb2N0bF9jaGVja19hcmdzKHN0cnVjdCB4ZV9kZXZpY2UgKnhlLA0KPiAgCQkJ CSAgICBzdHJ1Y3QgZHJtX3hlX3ZtX2JpbmQgKmFyZ3MsDQo+ICAJCQkJICAgIHN0cnVjdCBkcm1f eGVfdm1fYmluZF9vcCAqKmJpbmRfb3BzLA0KPiAtCQkJCSAgICBib29sICphc3luYykNCj4gKwkJ CQkgICAgYm9vbCAqYXN5bmMsIGJvb2wgKnNraXBfb3BzKQ0KPiAgew0KPiAgCWludCBlcnI7DQo+ ICAJaW50IGk7DQo+ICANCj4gLQlpZiAoWEVfSU9DVExfREJHKHhlLCBhcmdzLT5wYWQgfHwgYXJn cy0+cGFkMikgfHwNCj4gKwlpZiAoWEVfSU9DVExfREJHKHhlLCBhcmdzLT5wYWQpIHx8DQo+ICAJ ICAgIFhFX0lPQ1RMX0RCRyh4ZSwgYXJncy0+cmVzZXJ2ZWRbMF0gfHwgYXJncy0+cmVzZXJ2ZWRb MV0pKQ0KPiAgCQlyZXR1cm4gLUVJTlZBTDsNCj4gIA0KPiBAQCAtMjc0NSw2ICsyNzI5LDMwIEBA IHN0YXRpYyBpbnQgdm1fYmluZF9pb2N0bF9jaGVja19hcmdzKHN0cnVjdCB4ZV9kZXZpY2UgKnhl LA0KPiAgCQkqYmluZF9vcHMgPSAmYXJncy0+YmluZDsNCj4gIAl9DQo+ICANCj4gKwkqYXN5bmMg PSAhKGFyZ3MtPnN5bmNzLmZsYWdzICYgRFJNX1hFX1NZTkNTX0ZMQUdfV0FJVF9GT1JfT1ApOw0K PiArCSpza2lwX29wcyA9IGZhbHNlOw0KPiArDQo+ICsJaWYgKFhFX0lPQ1RMX0RCRyh4ZSwgYXJn cy0+c3luY3MuZmxhZ3MgJiB+QUxMX0RSTV9YRV9TWU5DU19GTEFHUykgfHwNCj4gKwkgICAgWEVf SU9DVExfREJHKHhlLCAqYXN5bmMgJiYgYXJncy0+c3luY3MuY29va2llKSB8fA0KPiArCSAgICBY RV9JT0NUTF9EQkcoeGUsIGFyZ3MtPnN5bmNzLnJlc2VydmVkWzBdIHx8IGFyZ3MtPnN5bmNzLnJl c2VydmVkWzFdKSB8fA0KPiArCSAgICBYRV9JT0NUTF9EQkcoeGUsICEqYXN5bmMgJiYgYXJncy0+ c3luY3MubnVtX3N5bmNzKSkgew0KPiArCQllcnIgPSAtRUlOVkFMOw0KPiArCQlnb3RvIGZyZWVf YmluZF9vcHM7DQo+ICsJfQ0KPiArDQo+ICsJaWYgKCEqYXN5bmMpIHsNCj4gKwkJdTY0IF9fdXNl ciAqY29va2llID0gdTY0X3RvX3VzZXJfcHRyKGFyZ3MtPnN5bmNzLmNvb2tpZSk7DQo+ICsJCXU2 NCB2YWx1ZTsNCj4gKw0KPiArCQllcnIgPSBfX2NvcHlfZnJvbV91c2VyKCZ2YWx1ZSwgY29va2ll LCBzaXplb2YodTY0KSk7DQo+ICsJCWlmIChYRV9JT0NUTF9EQkcoeGUsIGVycikpIHsNCj4gKwkJ CWVyciA9IC1FRkFVTFQ7DQo+ICsJCQlnb3RvIGZyZWVfYmluZF9vcHM7DQo+ICsJCX0NCj4gKwkJ aWYgKHZhbHVlKQ0KPiArCQkJKnNraXBfb3BzID0gdHJ1ZTsNCj4gKwl9DQo+ICsNCj4gIAlmb3Ig KGkgPSAwOyBpIDwgYXJncy0+bnVtX2JpbmRzOyArK2kpIHsNCj4gIAkJdTY0IHJhbmdlID0gKCpi aW5kX29wcylbaV0ucmFuZ2U7DQo+ICAJCXU2NCBhZGRyID0gKCpiaW5kX29wcylbaV0uYWRkcjsN Cj4gQEAgLTI3NzUsMTggKzI3ODMsNiBAQCBzdGF0aWMgaW50IHZtX2JpbmRfaW9jdGxfY2hlY2tf YXJncyhzdHJ1Y3QgeGVfZGV2aWNlICp4ZSwNCj4gIAkJCWdvdG8gZnJlZV9iaW5kX29wczsNCj4g IAkJfQ0KPiAgDQo+IC0JCWlmIChpID09IDApIHsNCj4gLQkJCSphc3luYyA9ICEhKGZsYWdzICYg RFJNX1hFX1ZNX0JJTkRfRkxBR19BU1lOQyk7DQo+IC0JCQlpZiAoWEVfSU9DVExfREJHKHhlLCAh KmFzeW5jICYmIGFyZ3MtPm51bV9zeW5jcykpIHsNCj4gLQkJCQllcnIgPSAtRUlOVkFMOw0KPiAt CQkJCWdvdG8gZnJlZV9iaW5kX29wczsNCj4gLQkJCX0NCj4gLQkJfSBlbHNlIGlmIChYRV9JT0NU TF9EQkcoeGUsICphc3luYyAhPQ0KPiAtCQkJCQkhIShmbGFncyAmIERSTV9YRV9WTV9CSU5EX0ZM QUdfQVNZTkMpKSkgew0KPiAtCQkJZXJyID0gLUVJTlZBTDsNCj4gLQkJCWdvdG8gZnJlZV9iaW5k X29wczsNCj4gLQkJfQ0KPiAtDQo+ICAJCWlmIChYRV9JT0NUTF9EQkcoeGUsIG9wID4gRFJNX1hF X1ZNX0JJTkRfT1BfUFJFRkVUQ0gpIHx8DQo+ICAJCSAgICBYRV9JT0NUTF9EQkcoeGUsIGZsYWdz ICYgflNVUFBPUlRFRF9GTEFHUykgfHwNCj4gIAkJICAgIFhFX0lPQ1RMX0RCRyh4ZSwgb2JqICYm IGlzX251bGwpIHx8DQo+IEBAIC0yODU0LDEyICsyODUwLDI1IEBAIHN0YXRpYyBpbnQgdm1fYmlu ZF9pb2N0bF9zaWduYWxfZmVuY2VzKHN0cnVjdCB4ZV92bSAqdm0sDQo+ICANCj4gIAl4ZV9leGVj X3F1ZXVlX2xhc3RfZmVuY2Vfc2V0KHRvX3dhaXRfZXhlY19xdWV1ZSh2bSwgcSksIHZtLA0KPiAg CQkJCSAgICAgZmVuY2UpOw0KPiArCWRtYV9mZW5jZV9wdXQoZmVuY2UpOw0KPiAgDQo+IC0JaWYg KHhlX3ZtX3N5bmNfbW9kZSh2bSwgcSkpIHsNCj4gLQkJbG9uZyB0aW1lb3V0ID0gZG1hX2ZlbmNl X3dhaXQoZmVuY2UsIHRydWUpOw0KPiArCXJldHVybiBlcnI7DQo+ICt9DQo+ICsNCj4gK3N0YXRp YyBpbnQgdm1fYmluZF9pb2N0bF9zeW5jX3dhaXQoc3RydWN0IHhlX3ZtICp2bSwNCj4gKwkJCQkg ICBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSwNCj4gKwkJCQkgICB1NjQgX191c2VyICpjb29raWUp DQo+ICt7DQo+ICsJbG9uZyB0aW1lb3V0Ow0KPiArCWludCBlcnIgPSAwOw0KPiArDQo+ICsJdGlt ZW91dCA9IGRtYV9mZW5jZV93YWl0KGZlbmNlLCB0cnVlKTsNCj4gKwlpZiAodGltZW91dCA8IDAp IHsNCj4gKwkJdTY0IHZhbHVlID0gMTsNCj4gIA0KPiAtCQlpZiAodGltZW91dCA8IDApDQo+IC0J CQllcnIgPSAtRUlOVFI7DQo+ICsJCWVyciA9IC1FUkVTVEFSVFNZUzsNCj4gKwkJaWYgKGNvcHlf dG9fdXNlcihjb29raWUsICZ2YWx1ZSwgc2l6ZW9mKHZhbHVlKSkpDQo+ICsJCQllcnIgPSAtRUZB VUxUOw0KPiAgCX0NCj4gIA0KPiAgCWRtYV9mZW5jZV9wdXQoZmVuY2UpOw0KPiBAQCAtMjg3NSwy MSArMjg4NCwyMiBAQCBpbnQgeGVfdm1fYmluZF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpDQo+ICAJc3RydWN0IGRybV94ZV9z eW5jIF9fdXNlciAqc3luY3NfdXNlcjsNCj4gIAlzdHJ1Y3QgeGVfYm8gKipib3MgPSBOVUxMOw0K PiAgCXN0cnVjdCBkcm1fZ3B1dmFfb3BzICoqb3BzID0gTlVMTDsNCj4gKwlzdHJ1Y3QgZG1hX2Zl bmNlICpmZW5jZSA9IE5VTEw7DQo+ICAJc3RydWN0IHhlX3ZtICp2bTsNCj4gIAlzdHJ1Y3QgeGVf ZXhlY19xdWV1ZSAqcSA9IE5VTEw7DQo+ICAJdTMyIG51bV9zeW5jczsNCj4gIAlzdHJ1Y3QgeGVf c3luY19lbnRyeSAqc3luY3MgPSBOVUxMOw0KPiAgCXN0cnVjdCBkcm1feGVfdm1fYmluZF9vcCAq YmluZF9vcHM7DQo+ICAJTElTVF9IRUFEKG9wc19saXN0KTsNCj4gLQlib29sIGFzeW5jOw0KPiAr CWJvb2wgYXN5bmMsIHNraXBfb3BzOw0KPiAgCWludCBlcnI7DQo+ICAJaW50IGk7DQo+ICANCj4g LQllcnIgPSB2bV9iaW5kX2lvY3RsX2NoZWNrX2FyZ3MoeGUsIGFyZ3MsICZiaW5kX29wcywgJmFz eW5jKTsNCj4gKwllcnIgPSB2bV9iaW5kX2lvY3RsX2NoZWNrX2FyZ3MoeGUsIGFyZ3MsICZiaW5k X29wcywgJmFzeW5jLCAmc2tpcF9vcHMpOw0KPiAgCWlmIChlcnIpDQo+ICAJCXJldHVybiBlcnI7 DQo+ICANCj4gLQlpZiAoWEVfSU9DVExfREJHKHhlLCBhcmdzLT5wYWQgfHwgYXJncy0+cGFkMikg fHwNCj4gKwlpZiAoWEVfSU9DVExfREJHKHhlLCBhcmdzLT5wYWQpIHx8DQo+ICAJICAgIFhFX0lP Q1RMX0RCRyh4ZSwgYXJncy0+cmVzZXJ2ZWRbMF0gfHwgYXJncy0+cmVzZXJ2ZWRbMV0pKQ0KPiAg CQlyZXR1cm4gLUVJTlZBTDsNCj4gIA0KPiBAQCAtMjkwNCwxMiArMjkxNCw2IEBAIGludCB4ZV92 bV9iaW5kX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBk cm1fZmlsZSAqZmlsZSkNCj4gIAkJCWVyciA9IC1FSU5WQUw7DQo+ICAJCQlnb3RvIHB1dF9leGVj X3F1ZXVlOw0KPiAgCQl9DQo+IC0NCj4gLQkJaWYgKFhFX0lPQ1RMX0RCRyh4ZSwgYXJncy0+bnVt X2JpbmRzICYmIGFzeW5jICE9DQo+IC0JCQkJICEhKHEtPmZsYWdzICYgRVhFQ19RVUVVRV9GTEFH X1ZNX0FTWU5DKSkpIHsNCj4gLQkJCWVyciA9IC1FSU5WQUw7DQo+IC0JCQlnb3RvIHB1dF9leGVj X3F1ZXVlOw0KPiAtCQl9DQo+ICAJfQ0KPiAgDQo+ICAJdm0gPSB4ZV92bV9sb29rdXAoeGVmLCBh cmdzLT52bV9pZCk7DQo+IEBAIC0yOTE4LDE0ICsyOTIyLDYgQEAgaW50IHhlX3ZtX2JpbmRfaW9j dGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpm aWxlKQ0KPiAgCQlnb3RvIHB1dF9leGVjX3F1ZXVlOw0KPiAgCX0NCj4gIA0KPiAtCWlmICghYXJn cy0+ZXhlY19xdWV1ZV9pZCkgew0KPiAtCQlpZiAoWEVfSU9DVExfREJHKHhlLCBhcmdzLT5udW1f YmluZHMgJiYgYXN5bmMgIT0NCj4gLQkJCQkgISEodm0tPmZsYWdzICYgWEVfVk1fRkxBR19BU1lO Q19ERUZBVUxUKSkpIHsNCj4gLQkJCWVyciA9IC1FSU5WQUw7DQo+IC0JCQlnb3RvIHB1dF92bTsN Cj4gLQkJfQ0KPiAtCX0NCj4gLQ0KPiAgCWVyciA9IGRvd25fd3JpdGVfa2lsbGFibGUoJnZtLT5s b2NrKTsNCj4gIAlpZiAoZXJyKQ0KPiAgCQlnb3RvIHB1dF92bTsNCj4gQEAgLTMwMTUsMTYgKzMw MTEsMTYgQEAgaW50IHhlX3ZtX2JpbmRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9p ZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlKQ0KPiAgCQl9DQo+ICAJfQ0KPiAgDQo+IC0J aWYgKGFyZ3MtPm51bV9zeW5jcykgew0KPiAtCQlzeW5jcyA9IGtjYWxsb2MoYXJncy0+bnVtX3N5 bmNzLCBzaXplb2YoKnN5bmNzKSwgR0ZQX0tFUk5FTCk7DQo+ICsJaWYgKGFyZ3MtPnN5bmNzLm51 bV9zeW5jcykgew0KPiArCQlzeW5jcyA9IGtjYWxsb2MoYXJncy0+c3luY3MubnVtX3N5bmNzLCBz aXplb2YoKnN5bmNzKSwgR0ZQX0tFUk5FTCk7DQo+ICAJCWlmICghc3luY3MpIHsNCj4gIAkJCWVy ciA9IC1FTk9NRU07DQo+ICAJCQlnb3RvIHB1dF9vYmo7DQo+ICAJCX0NCj4gIAl9DQo+ICANCj4g LQlzeW5jc191c2VyID0gdTY0X3RvX3VzZXJfcHRyKGFyZ3MtPnN5bmNzKTsNCj4gLQlmb3IgKG51 bV9zeW5jcyA9IDA7IG51bV9zeW5jcyA8IGFyZ3MtPm51bV9zeW5jczsgbnVtX3N5bmNzKyspIHsN Cj4gKwlzeW5jc191c2VyID0gdTY0X3RvX3VzZXJfcHRyKGFyZ3MtPnN5bmNzLnN5bmNzKTsNCj4g Kwlmb3IgKG51bV9zeW5jcyA9IDA7IG51bV9zeW5jcyA8IGFyZ3MtPnN5bmNzLm51bV9zeW5jczsg bnVtX3N5bmNzKyspIHsNCj4gIAkJZXJyID0geGVfc3luY19lbnRyeV9wYXJzZSh4ZSwgeGVmLCAm c3luY3NbbnVtX3N5bmNzXSwNCj4gIAkJCQkJICAmc3luY3NfdXNlcltudW1fc3luY3NdLA0KPiAg CQkJCQkgICh4ZV92bV9pbl9scl9tb2RlKHZtKSA/DQo+IEBAIC0zMDM1LDcgKzMwMzEsNyBAQCBp bnQgeGVfdm1fYmluZF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBz dHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpDQo+ICAJCQlnb3RvIGZyZWVfc3luY3M7DQo+ICAJfQ0KPiAg DQo+IC0JaWYgKCFhcmdzLT5udW1fYmluZHMpIHsNCj4gKwlpZiAoIWFyZ3MtPm51bV9iaW5kcyB8 fCBza2lwX29wcykgew0KPiAgCQllcnIgPSAtRU5PREFUQTsNCj4gIAkJZ290byBmcmVlX3N5bmNz Ow0KPiAgCX0NCj4gQEAgLTMwNjAsOCArMzA1Niw3IEBAIGludCB4ZV92bV9iaW5kX2lvY3RsKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkN Cj4gIA0KPiAgCQllcnIgPSB2bV9iaW5kX2lvY3RsX29wc19wYXJzZSh2bSwgcSwgb3BzW2ldLCBz eW5jcywgbnVtX3N5bmNzLA0KPiAgCQkJCQkgICAgICAmb3BzX2xpc3QsDQo+IC0JCQkJCSAgICAg IGkgPT0gYXJncy0+bnVtX2JpbmRzIC0gMSwNCj4gLQkJCQkJICAgICAgYXN5bmMpOw0KPiArCQkJ CQkgICAgICBpID09IGFyZ3MtPm51bV9iaW5kcyAtIDEpOw0KPiAgCQlpZiAoZXJyKQ0KPiAgCQkJ Z290byB1bndpbmRfb3BzOw0KPiAgCX0NCj4gQEAgLTMwNzcsNyArMzA3MiwxMCBAQCBpbnQgeGVf dm1fYmluZF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3Qg ZHJtX2ZpbGUgKmZpbGUpDQo+ICAJCXhlX2V4ZWNfcXVldWVfZ2V0KHEpOw0KPiAgDQo+ICAJZXJy ID0gdm1fYmluZF9pb2N0bF9vcHNfZXhlY3V0ZSh2bSwgJm9wc19saXN0KTsNCj4gLQ0KPiArCWlm ICghZXJyICYmICFhc3luYykgew0KPiArCQlmZW5jZSA9IHhlX2V4ZWNfcXVldWVfbGFzdF9mZW5j ZV9nZXQodG9fd2FpdF9leGVjX3F1ZXVlKHZtLCBxKSwgdm0pOw0KPiArCQlkbWFfZmVuY2VfZ2V0 KGZlbmNlKTsNCj4gKwl9DQo+ICAJdXBfd3JpdGUoJnZtLT5sb2NrKTsNCj4gIA0KPiAgCWlmIChx KQ0KPiBAQCAtMzA5MiwxMyArMzA5MCwxOSBAQCBpbnQgeGVfdm1fYmluZF9pb2N0bChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpDQo+ICAJ aWYgKGFyZ3MtPm51bV9iaW5kcyA+IDEpDQo+ICAJCWtmcmVlKGJpbmRfb3BzKTsNCj4gIA0KPiAt CXJldHVybiBlcnI7DQo+ICsJcmV0dXJuIGZlbmNlID8gdm1fYmluZF9pb2N0bF9zeW5jX3dhaXQo dm0sIGZlbmNlLCB1NjRfdG9fdXNlcl9wdHIoYXJncy0+c3luY3MuY29va2llKSkgOg0KPiArCQll cnI7DQo+ICANCj4gIHVud2luZF9vcHM6DQo+ICAJdm1fYmluZF9pb2N0bF9vcHNfdW53aW5kKHZt LCBvcHMsIGFyZ3MtPm51bV9iaW5kcyk7DQo+ICBmcmVlX3N5bmNzOg0KPiAtCWlmIChlcnIgPT0g LUVOT0RBVEEpDQo+ICsJaWYgKGVyciA9PSAtRU5PREFUQSkgew0KPiAgCQllcnIgPSB2bV9iaW5k X2lvY3RsX3NpZ25hbF9mZW5jZXModm0sIHEsIHN5bmNzLCBudW1fc3luY3MpOw0KPiArCQlpZiAo IWFzeW5jKSB7DQo+ICsJCQlmZW5jZSA9IHhlX2V4ZWNfcXVldWVfbGFzdF9mZW5jZV9nZXQodG9f d2FpdF9leGVjX3F1ZXVlKHZtLCBxKSwgdm0pOw0KPiArCQkJZG1hX2ZlbmNlX2dldChmZW5jZSk7 DQo+ICsJCX0NCj4gKwl9DQo+ICAJd2hpbGUgKG51bV9zeW5jcy0tKQ0KPiAgCQl4ZV9zeW5jX2Vu dHJ5X2NsZWFudXAoJnN5bmNzW251bV9zeW5jc10pOw0KPiAgDQo+IEBAIC0zMTA4LDYgKzMxMTIs OCBAQCBpbnQgeGVfdm1fYmluZF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpk YXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpDQo+ICAJCXhlX2JvX3B1dChib3NbaV0pOw0KPiAg cmVsZWFzZV92bV9sb2NrOg0KPiAgCXVwX3dyaXRlKCZ2bS0+bG9jayk7DQo+ICsJaWYgKGZlbmNl KQ0KPiArCQllcnIgPSB2bV9iaW5kX2lvY3RsX3N5bmNfd2FpdCh2bSwgZmVuY2UsIHU2NF90b191 c2VyX3B0cihhcmdzLT5zeW5jcy5jb29raWUpKTsNCj4gIHB1dF92bToNCj4gIAl4ZV92bV9wdXQo dm0pOw0KPiAgcHV0X2V4ZWNfcXVldWU6DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v eGUveGVfdm1fdHlwZXMuaCBiL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV92bV90eXBlcy5oDQo+IGlu ZGV4IDJlMDIzNTk2Y2IxNS4uNjNlOGE1MGI4OGU5IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0veGUveGVfdm1fdHlwZXMuaA0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfdm1f dHlwZXMuaA0KPiBAQCAtMTM4LDEzICsxMzgsMTIgQEAgc3RydWN0IHhlX3ZtIHsNCj4gIAkgKi8N Cj4gICNkZWZpbmUgWEVfVk1fRkxBR182NEsJCQlCSVQoMCkNCj4gICNkZWZpbmUgWEVfVk1fRkxB R19MUl9NT0RFCQlCSVQoMSkNCj4gLSNkZWZpbmUgWEVfVk1fRkxBR19BU1lOQ19ERUZBVUxUCUJJ VCgyKQ0KPiAtI2RlZmluZSBYRV9WTV9GTEFHX01JR1JBVElPTgkJQklUKDMpDQo+IC0jZGVmaW5l IFhFX1ZNX0ZMQUdfU0NSQVRDSF9QQUdFCQlCSVQoNCkNCj4gLSNkZWZpbmUgWEVfVk1fRkxBR19G QVVMVF9NT0RFCQlCSVQoNSkNCj4gLSNkZWZpbmUgWEVfVk1fRkxBR19CQU5ORUQJCUJJVCg2KQ0K PiAtI2RlZmluZSBYRV9WTV9GTEFHX1RJTEVfSUQoZmxhZ3MpCUZJRUxEX0dFVChHRU5NQVNLKDgs IDcpLCBmbGFncykNCj4gLSNkZWZpbmUgWEVfVk1fRkxBR19TRVRfVElMRV9JRCh0aWxlKQlGSUVM RF9QUkVQKEdFTk1BU0soOCwgNyksICh0aWxlKS0+aWQpDQo+ICsjZGVmaW5lIFhFX1ZNX0ZMQUdf TUlHUkFUSU9OCQlCSVQoMikNCj4gKyNkZWZpbmUgWEVfVk1fRkxBR19TQ1JBVENIX1BBR0UJCUJJ VCgzKQ0KPiArI2RlZmluZSBYRV9WTV9GTEFHX0ZBVUxUX01PREUJCUJJVCg0KQ0KPiArI2RlZmlu ZSBYRV9WTV9GTEFHX0JBTk5FRAkJQklUKDUpDQo+ICsjZGVmaW5lIFhFX1ZNX0ZMQUdfVElMRV9J RChmbGFncykJRklFTERfR0VUKEdFTk1BU0soNywgNiksIGZsYWdzKQ0KPiArI2RlZmluZSBYRV9W TV9GTEFHX1NFVF9USUxFX0lEKHRpbGUpCUZJRUxEX1BSRVAoR0VOTUFTSyg3LCA2KSwgKHRpbGUp LT5pZCkNCj4gIAl1bnNpZ25lZCBsb25nIGZsYWdzOw0KPiAgDQo+ICAJLyoqIEBjb21wb3NpdGVf ZmVuY2VfY3R4OiBjb250ZXh0IGNvbXBvc2l0ZSBmZW5jZSAqLw0KPiBkaWZmIC0tZ2l0IGEvaW5j bHVkZS91YXBpL2RybS94ZV9kcm0uaCBiL2luY2x1ZGUvdWFwaS9kcm0veGVfZHJtLmgNCj4gaW5k ZXggMDg5NWU0ZDJhOTgxLi44Y2JlN2NhNmZlNTcgMTAwNjQ0DQo+IC0tLSBhL2luY2x1ZGUvdWFw aS9kcm0veGVfZHJtLmgNCj4gKysrIGIvaW5jbHVkZS91YXBpL2RybS94ZV9kcm0uaA0KPiBAQCAt MTQwLDggKzE0MCw3IEBAIHN0cnVjdCBkcm1feGVfZW5naW5lX2NsYXNzX2luc3RhbmNlIHsNCj4g IAkgKiBLZXJuZWwgb25seSBjbGFzc2VzIChub3QgYWN0dWFsIGhhcmR3YXJlIGVuZ2luZSBjbGFz cykuIFVzZWQgZm9yDQo+ICAJICogY3JlYXRpbmcgb3JkZXJlZCBxdWV1ZXMgb2YgVk0gYmluZCBv cGVyYXRpb25zLg0KPiAgCSAqLw0KPiAtI2RlZmluZSBEUk1fWEVfRU5HSU5FX0NMQVNTX1ZNX0JJ TkRfQVNZTkMJNQ0KPiAtI2RlZmluZSBEUk1fWEVfRU5HSU5FX0NMQVNTX1ZNX0JJTkRfU1lOQwk2 DQo+ICsjZGVmaW5lIERSTV9YRV9FTkdJTkVfQ0xBU1NfVk1fQklORAkJNQ0KPiAgCS8qKiBAZW5n aW5lX2NsYXNzOiBlbmdpbmUgY2xhc3MgaWQgKi8NCj4gIAlfX3UxNiBlbmdpbmVfY2xhc3M7DQo+ ICAJLyoqIEBlbmdpbmVfaW5zdGFuY2U6IGVuZ2luZSBpbnN0YW5jZSBpZCAqLw0KPiBAQCAtNjYx LDcgKzY2MCw2IEBAIHN0cnVjdCBkcm1feGVfdm1fY3JlYXRlIHsNCj4gIAkgKiBzdGlsbCBlbmFi bGUgcmVjb3ZlcmFibGUgcGFnZWZhdWx0cyBpZiBzdXBwb3J0ZWQgYnkgdGhlIGRldmljZS4NCj4g IAkgKi8NCj4gICNkZWZpbmUgRFJNX1hFX1ZNX0NSRUFURV9GTEFHX0xSX01PREUJICAgICAgICAo MSA8PCAxKQ0KPiAtI2RlZmluZSBEUk1fWEVfVk1fQ1JFQVRFX0ZMQUdfQVNZTkNfREVGQVVMVAko MSA8PCAyKQ0KPiAgCS8qDQo+ICAJICogRFJNX1hFX1ZNX0NSRUFURV9GTEFHX0ZBVUxUX01PREUg cmVxdWlyZXMgYWxzbw0KPiAgCSAqIERSTV9YRV9WTV9DUkVBVEVfRkxBR19MUl9NT0RFLiBJdCBh bGxvd3MgbWVtb3J5IHRvIGJlIGFsbG9jYXRlZA0KPiBAQCAtNjY5LDcgKzY2Nyw3IEBAIHN0cnVj dCBkcm1feGVfdm1fY3JlYXRlIHsNCj4gIAkgKiBUaGUgeGUgZHJpdmVyIGludGVybmFsbHkgdXNl cyByZWNvdmVyYWJsZSBwYWdlZmF1bHRzIHRvIGltcGxlbWVudA0KPiAgCSAqIHRoaXMuDQo+ICAJ ICovDQo+IC0jZGVmaW5lIERSTV9YRV9WTV9DUkVBVEVfRkxBR19GQVVMVF9NT0RFCSgxIDw8IDMp DQo+ICsjZGVmaW5lIERSTV9YRV9WTV9DUkVBVEVfRkxBR19GQVVMVF9NT0RFCSgxIDw8IDIpDQo+ ICAJLyoqIEBmbGFnczogRmxhZ3MgKi8NCj4gIAlfX3UzMiBmbGFnczsNCj4gIA0KPiBAQCAtNzc3 LDEyICs3NzUsMTEgQEAgc3RydWN0IGRybV94ZV92bV9iaW5kX29wIHsNCj4gIAlfX3UzMiBvcDsN Cj4gIA0KPiAgI2RlZmluZSBEUk1fWEVfVk1fQklORF9GTEFHX1JFQURPTkxZCSgxIDw8IDApDQo+ IC0jZGVmaW5lIERSTV9YRV9WTV9CSU5EX0ZMQUdfQVNZTkMJKDEgPDwgMSkNCj4gIAkvKg0KPiAg CSAqIFZhbGlkIG9uIGEgZmF1bHRpbmcgVk0gb25seSwgZG8gdGhlIE1BUCBvcGVyYXRpb24gaW1t ZWRpYXRlbHkgcmF0aGVyDQo+ICAJICogdGhhbiBkZWZlcnJpbmcgdGhlIE1BUCB0byB0aGUgcGFn ZSBmYXVsdCBoYW5kbGVyLg0KPiAgCSAqLw0KPiAtI2RlZmluZSBEUk1fWEVfVk1fQklORF9GTEFH X0lNTUVESUFURQkoMSA8PCAyKQ0KPiArI2RlZmluZSBEUk1fWEVfVk1fQklORF9GTEFHX0lNTUVE SUFURQkoMSA8PCAxKQ0KPiAgCS8qDQo+ICAJICogV2hlbiB0aGUgTlVMTCBmbGFnIGlzIHNldCwg dGhlIHBhZ2UgdGFibGVzIGFyZSBzZXR1cCB3aXRoIGEgc3BlY2lhbA0KPiAgCSAqIGJpdCB3aGlj aCBpbmRpY2F0ZXMgd3JpdGVzIGFyZSBkcm9wcGVkIGFuZCBhbGwgcmVhZHMgcmV0dXJuIHplcm8u ICBJbg0KPiBAQCAtNzkwLDcgKzc4Nyw3IEBAIHN0cnVjdCBkcm1feGVfdm1fYmluZF9vcCB7DQo+ ICAJICogb3BlcmF0aW9ucywgdGhlIEJPIGhhbmRsZSBNQlosIGFuZCB0aGUgQk8gb2Zmc2V0IE1C Wi4gVGhpcyBmbGFnIGlzDQo+ICAJICogaW50ZW5kZWQgdG8gaW1wbGVtZW50IFZLIHNwYXJzZSBi aW5kaW5ncy4NCj4gIAkgKi8NCj4gLSNkZWZpbmUgRFJNX1hFX1ZNX0JJTkRfRkxBR19OVUxMCSgx IDw8IDMpDQo+ICsjZGVmaW5lIERSTV9YRV9WTV9CSU5EX0ZMQUdfTlVMTAkoMSA8PCAyKQ0KPiAg CS8qKiBAZmxhZ3M6IEJpbmQgZmxhZ3MgKi8NCj4gIAlfX3UzMiBmbGFnczsNCj4gIA0KPiBAQCAt ODA4LDYgKzgwNSwzNiBAQCBzdHJ1Y3QgZHJtX3hlX3ZtX2JpbmRfb3Agew0KPiAgCV9fdTY0IHJl c2VydmVkWzNdOw0KPiAgfTsNCj4gIA0KPiArLyoqDQo+ICsgKiBzdHJ1Y3QgZHJtX3hlX3N5bmNz IC0gSW4gLyBvdXQgc3luY3MgZm9yIElPQ1RMcy4NCj4gKyAqLw0KPiArc3RydWN0IGRybV94ZV9z eW5jcyB7DQo+ICsJLyoqIEBudW1fc3luY3M6IGFtb3VudCBvZiBzeW5jcyB0byB3YWl0IG9uICov DQo+ICsJX191MzIgbnVtX3N5bmNzOw0KPiArDQo+ICsJLyoNCj4gKwkgKiBCbG9jayBpbiBJT0NU TCB1bnRpbCBvcGVyYXRpb24gY29tcGxldGUsIG51bV9zeW5jcyBNQlogaWYgc2V0Lg0KPiArCSAq Lw0KPiArI2RlZmluZSBEUk1fWEVfU1lOQ1NfRkxBR19XQUlUX0ZPUl9PUCAoMSA8PCAwKQ0KPiAr CS8qKiBAZmxhZ3M6IFN5bmMgZmxhZ3MgKi8NCj4gKwlfX3UzMiBmbGFnczsNCj4gKw0KPiArCS8q Kg0KPiArCSAqIEBjb29raWU6IHBvaW50ZXIgd2hpY2ggaXMgd3JpdHRlbiB3aXRoIGFuIG5vbi16 ZXJvIHZhbHVlIGlmIElPQ1RMDQo+ICsJICogb3BlcmF0aW9uIGhhcyBiZWVuIGNvbW1pdHRlZCBi dXQgdGhlIHdhaXQgZm9yIGNvbXBsZXRpb24NCj4gKwkgKiAoRFJNX1hFX1NZTkNTX0ZMQUdfV0FJ VF9GT1JfT1AgaXMgc2V0KSBpcyBpbnRlcnJ1cHRlZC4gVmFsdWUgb2YNCj4gKwkgKiAqY29va2ll IE1CWiBmb3IgSU9DVEwgb3BlcmF0aW9ucyB0byBiZSBleGVjdXRlZCwgaWYgbm9uLXplcm8NCj4g KwkgKiBvcGVyYXRpb25zIGFyZSBza2lwcGVkIGFuZCBibG9ja3MgdW50aWwgZXhlYyBxdWV1ZSBm b3IgSU9DVEwgaXMgaWRsZS4NCj4gKwkgKi8NCj4gKwlfX3U2NCBjb29raWU7DQoNCmp1c3QgbGVm dCBhIGNvbW1lbnQgaW4gdjIuDQpwb2ludGVyIGluIHRoZSBjb21tZW50IGlzIG1pc2xlYWRpbmcs IGxvb2tzIGxpa2UgVU1EIG5lZWRzIHRvIGFsbG9jYXRlIG1lbW9yeSBhbmQgc2V0IGl0IGluIGhl cmUuDQphYm91dCB0aGUgbmFtZSBJIHRoaW5rIGl0IHNob3VsZCBiZSBuYW1lZCBhcyByZXNlcnZl ZCwgc28gVU1EcyBkb250IHRvdWNoIGl0IGF0IGFsbCBpbiBmYWN0IEkgdGhpbmsgVU1EcyBzaG91 bGQgbm90IGV2ZW4ga25vdyB0aGF0IHRoZSByZXNlcnZlZCBmaWVsZA0KaXMgYmVpbmcgdXNlZCBm b3Igc29tZXRoaW5nLg0KDQo+ICsNCj4gKwkvKiogQHN5bmNzOiBwb2ludGVyIHRvIHN0cnVjdCBk cm1feGVfc3luYyBhcnJheSAqLw0KPiArCV9fdTY0IHN5bmNzOw0KPiArDQo+ICsJLyoqIEByZXNl cnZlZDogUmVzZXJ2ZWQgKi8NCj4gKwlfX3U2NCByZXNlcnZlZFsyXTsNCj4gK307DQo+ICsNCj4g IHN0cnVjdCBkcm1feGVfdm1fYmluZCB7DQo+ICAJLyoqIEBleHRlbnNpb25zOiBQb2ludGVyIHRv IHRoZSBmaXJzdCBleHRlbnNpb24gc3RydWN0LCBpZiBhbnkgKi8NCj4gIAlfX3U2NCBleHRlbnNp b25zOw0KPiBAQCAtODM5LDE0ICs4NjYsOCBAQCBzdHJ1Y3QgZHJtX3hlX3ZtX2JpbmQgew0KPiAg CQlfX3U2NCB2ZWN0b3Jfb2ZfYmluZHM7DQo+ICAJfTsNCj4gIA0KPiAtCS8qKiBAcGFkOiBNQlog Ki8NCj4gLQlfX3UzMiBwYWQyOw0KPiAtDQo+IC0JLyoqIEBudW1fc3luY3M6IGFtb3VudCBvZiBz eW5jcyB0byB3YWl0IG9uICovDQo+IC0JX191MzIgbnVtX3N5bmNzOw0KPiAtDQo+IC0JLyoqIEBz eW5jczogcG9pbnRlciB0byBzdHJ1Y3QgZHJtX3hlX3N5bmMgYXJyYXkgKi8NCj4gLQlfX3U2NCBz eW5jczsNCj4gKwkvKiogQHN5bmNzOiBzeW5jcyBmb3IgYmluZCAqLw0KPiArCXN0cnVjdCBkcm1f eGVfc3luY3Mgc3luY3M7DQo+ICANCj4gIAkvKiogQHJlc2VydmVkOiBSZXNlcnZlZCAqLw0KPiAg CV9fdTY0IHJlc2VydmVkWzJdOw0KPiBAQCAtOTc1LDE0ICs5OTYsMTQgQEAgc3RydWN0IGRybV94 ZV9leGVjIHsNCj4gIAkvKiogQGV4dGVuc2lvbnM6IFBvaW50ZXIgdG8gdGhlIGZpcnN0IGV4dGVu c2lvbiBzdHJ1Y3QsIGlmIGFueSAqLw0KPiAgCV9fdTY0IGV4dGVuc2lvbnM7DQo+ICANCj4gKwkv KiogQHBhZDogTUJaICovDQo+ICsJX191MzIgcGFkOw0KPiArDQo+ICAJLyoqIEBleGVjX3F1ZXVl X2lkOiBFeGVjIHF1ZXVlIElEIGZvciB0aGUgYmF0Y2ggYnVmZmVyICovDQo+ICAJX191MzIgZXhl Y19xdWV1ZV9pZDsNCj4gIA0KPiAtCS8qKiBAbnVtX3N5bmNzOiBBbW91bnQgb2Ygc3RydWN0IGRy bV94ZV9zeW5jIGluIGFycmF5LiAqLw0KPiAtCV9fdTMyIG51bV9zeW5jczsNCj4gLQ0KPiAtCS8q KiBAc3luY3M6IFBvaW50ZXIgdG8gc3RydWN0IGRybV94ZV9zeW5jIGFycmF5LiAqLw0KPiAtCV9f dTY0IHN5bmNzOw0KPiArCS8qKiBAc3luY3M6IHN5bmNzIGZvciBleGVjICovDQo+ICsJc3RydWN0 IGRybV94ZV9zeW5jcyBzeW5jczsNCg0KaWYgbm90IGltcGxlbWVudGVkIHNob3VsZCBub3QgYmUg dXNlZA0KDQo+ICANCj4gIAkvKioNCj4gIAkgKiBAYWRkcmVzczogYWRkcmVzcyBvZiBiYXRjaCBi dWZmZXIgaWYgbnVtX2JhdGNoX2J1ZmZlciA9PSAxIG9yIGFuDQo+IEBAIC05OTYsOCArMTAxNyw4 IEBAIHN0cnVjdCBkcm1feGVfZXhlYyB7DQo+ICAJICovDQo+ICAJX191MTYgbnVtX2JhdGNoX2J1 ZmZlcjsNCj4gIA0KPiAtCS8qKiBAcGFkOiBNQlogKi8NCj4gLQlfX3UxNiBwYWRbM107DQo+ICsJ LyoqIEBwYWQyOiBNQlogKi8NCj4gKwlfX3UxNiBwYWQyWzNdOw0KPiAgDQo+ICAJLyoqIEByZXNl cnZlZDogUmVzZXJ2ZWQgKi8NCj4gIAlfX3U2NCByZXNlcnZlZFsyXTsNCg0K