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 94B04C71153 for ; Mon, 4 Sep 2023 20:21:31 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 4EB8810E404; Mon, 4 Sep 2023 20:21:31 +0000 (UTC) Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 81C7C10E404 for ; Mon, 4 Sep 2023 20:21:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1693858890; x=1725394890; h=from:to:subject:date:message-id:references:in-reply-to: content-id:content-transfer-encoding:mime-version; bh=Q9/hhUy36JC8EsxGaagLgExmGVS/JCAcI5Mphf0DF3w=; b=gmkMFyS6CtKjSrpH1jQzNV/svU3RQXnGYxzyLJwDZGqR0DGa8niBvYRO bz4wHqQAg3iyJJFkXf6hflBn0Dx6Q/jgUrimnu5r0zq7YndT2zgoszqe1 zbsn3tQOIUdOqVl8inAKtq0Pxc+BVKXU4SwCgn3kWua3XnH0pISKjAhV7 GGDRdmr8IJp1B84g4d5SqrNxN4aVRfBs/9ADbt/yhXQO1XOlLLpyMNb+F dNbtF1OutYFtF8GvfcJ5v+2p0ghNCROi9+A7q7AP6v6X9NRzHciqQNxkD 5jr06ZwUChD0+x1jhHxUP64CjhWFSIy52MFyoJ9k7kKaK8XsumbPYJ6tX g==; X-IronPort-AV: E=McAfee;i="6600,9927,10823"; a="463024098" X-IronPort-AV: E=Sophos;i="6.02,227,1688454000"; d="scan'208";a="463024098" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Sep 2023 13:21:29 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10823"; a="855708043" X-IronPort-AV: E=Sophos;i="6.02,227,1688454000"; d="scan'208";a="855708043" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by fmsmga002.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 04 Sep 2023 13:21:29 -0700 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.27; Mon, 4 Sep 2023 13:21:28 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) 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.27 via Frontend Transport; Mon, 4 Sep 2023 13:21:28 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.171) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.27; Mon, 4 Sep 2023 13:21:28 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EzoD/iuwdNpY6JZTyH1SZRB/HEIRwagMxYrCSc6QWewnVNolUCbN7pJy+4T5iveasg+K9ayabhVFDkXUhXur7+/cr+xBYk+NefOSzfIN5ba+rtYv/Abz8t2pFQB/pl0vhdr1zaXnLlKiRX5rsokOat5Jz4oIPChqfz913HYX5pQ6doD6uaaZsWG7qanACpllWWmjmeeO64SMO70zzgPeUHOOyxmfPZ7ljRDoulaYytLyQv5HZJt8vF7fs8ySWDpXaP3upCSY1XCwgmEIWcXeuup91R/DrxAGoP2ZRtiB13/Hwk8eH3o/Zero3qRNXkLEqogJdu0SKS7dg346MBhwbQ== 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=Q9/hhUy36JC8EsxGaagLgExmGVS/JCAcI5Mphf0DF3w=; b=LsEXSezvF2Pjc/o0dyY+SQP0C52Pw8HKNXOzkE0EtPBdHXCRGECB3yVqXp2Td/mebHBQR0domrNgGXhuV7EUeINT+tJXJsnlv6rFwDW/MOjCOi2k2sp0yXQAAxcBIYGgF+vX24SBTu/gl02wRHSKe4NAjyFYsJVebPtHO4ltsClaWYsNY4xLlMBLahjxeOXhAk9JQMN8Tri+0+lyhs7c068j8/Ed2C9aEoCQIczNsS1vX58eVbI4bw5od52rxMX8L9463wcSJa4XRI0boPKlZfjuABGO1AP6smfv7seDRTvpYGTFtAHbxNNkmyxvRjPSkUj0wSwSQuBu0M6uTqXQ5Q== 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 PH0PR11MB5205.namprd11.prod.outlook.com (2603:10b6:510:3d::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6745.33; Mon, 4 Sep 2023 20:21:26 +0000 Received: from DM4PR11MB8179.namprd11.prod.outlook.com ([fe80::8e21:274a:64d1:5de]) by DM4PR11MB8179.namprd11.prod.outlook.com ([fe80::8e21:274a:64d1:5de%4]) with mapi id 15.20.6745.030; Mon, 4 Sep 2023 20:21:26 +0000 From: "Souza, Jose" To: "intel-xe@lists.freedesktop.org" , "Auld, Matthew" Thread-Topic: [RFC 5/5] drm/xe/uapi: support pat_index selection with vm_bind Thread-Index: AQHZ2pYR0AWHnEV100SnrRZuaM23YrALJZKA Date: Mon, 4 Sep 2023 20:21:25 +0000 Message-ID: <30ea933fa6fb03beaeead5307b341b2b9619e41f.camel@intel.com> References: <20230829162840.73444-7-matthew.auld@intel.com> <20230829162840.73444-12-matthew.auld@intel.com> In-Reply-To: <20230829162840.73444-12-matthew.auld@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_|PH0PR11MB5205:EE_ x-ms-office365-filtering-correlation-id: 20d8ce32-f1af-43ff-d955-08dbad848389 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ia9Aenfos0wxeqJHavoK6aDjmMfQnUWc66gtpHZiG/ww/0Icb4i0AwFFEE5uwRGKOcg+8KJK6DGbrRqoN9U6xA47VBiNvoK0ARy4KEvgBw0WJjp+8B55QUw7Tt22ugiUmckQ/d6J7BnrqCfS0YEJvl2nOcKv9rCmD/C7OmR6rhoExwCGCjFvgsfntiPKKT3cUmZvFTPbERhDLlTEKnkNIUqkk5nVQQWyZPw7c7zWtLfNLe8iXlXStbugV3QRn/2QgnOjYwsgavbuv9JVy/PMRaFIDVXzZxvw8/zBK7+vCfuumaGpAmXjmA/GHcEk3wpWNSYKEEWMkZfpC2nsfD1rhWv9ImgNNii8Bf3UebkPch+KXRhtkOUIu1gpcG/tncglXiYyRH9dR3U3pC+kRk+RKuvrNxZvgzgO2ApKt0EleuTnAtMzFfiRLmUR/pYGqw0pShIZdnNI2H2v8IK4mMl0EPr9YP1/lLgdLybtDL8GnFwKDYEJ0Ah1/roky2fVEVOhIOWWXDvxHsjxIs6qSaxTmWJjwRXFqhga07h+nl3H5TfquFVn4UZxrWXleFB94HfXt88Lk9CWuiY6umZ5sNo/1zJCqfyCoTaYZ52IsyP9SPc= 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)(136003)(346002)(1800799009)(186009)(451199024)(478600001)(71200400001)(91956017)(110136005)(66476007)(76116006)(66556008)(66946007)(66446008)(26005)(2616005)(64756008)(6486002)(6506007)(6512007)(30864003)(8676002)(2906002)(6636002)(8936002)(316002)(41300700001)(5660300002)(86362001)(122000001)(82960400001)(38070700005)(38100700002)(36756003)(66574015)(83380400001)(579004)(559001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?K0dERGdJZWRKUU11dWc3ODNXcWpDZDBUUkE0anFlTnQyaG53S0NodzV6T2Nv?= =?utf-8?B?SU1XK0Fuajc3MXMyV1VGdllHT2pHdnZaMTFXWW1DRWpyemhYeFJqRG5sTkJi?= =?utf-8?B?OHJFZnlvRHBxWU0ramZVcGFsZ3JlZ2dPR3JKbVB6NXdwUUtOUzNxSHozMzdp?= =?utf-8?B?YTBuWFBUSnNYRzZzc3hYTjlnbUd0U01lalgzUlBEZXk5Y2tSd2dXVVpGSUlC?= =?utf-8?B?c1l2bXRWOUlyQW40L0REbXI2dEU1TnlMODlDYm16dFFVcnFLcVgzVDhwQXFO?= =?utf-8?B?TTgvWEErWUpLdEgrZG9HUzFuNDZzejY0WDNOeUZIWmJBN2VKcmpVYU1lcEpo?= =?utf-8?B?YUl6MVJiOUtKcEVheHFLMDNWaVFxeHg2bXdMc0J0b2JacFc4VUhwa28rQUVi?= =?utf-8?B?a1AyNU5EZm80VXd6Q1pJMU9RblArN2MwR3RUMVZIWWVDOUU2NVNWcWNRSGJL?= =?utf-8?B?dGZ3SE9ueG5rOGpvL25mVk1FSTBLWDFaalFxVHpRenE2dVhjcXJiRHFVRlpY?= =?utf-8?B?U1oxazQ4UXVEM1ZjMStIZ3M4dEo1WGNuZzhOdVZkM1FHYlo5K3FMejcwUit6?= =?utf-8?B?NG1HWXkvSFR3R3RSbTgxdXloN1dvc2JiTzJZVWNkV3puU3JualBNdUltVHNw?= =?utf-8?B?M2RLaW9YVkxMWnBDUkpERG9ua3lsdEx3WDgvbE9MQlMvWDRPT0dlMlF4a3NJ?= =?utf-8?B?Q1pEV212bGgreDh6M3BobFhNVjh4cjZyaXZuZktzVnVvdGVxYTdFVG1ydmZ2?= =?utf-8?B?UnhoNUZIeWh6MFRySzNEYlpCVTVISWoyWTFXbkZIMk52YWtMd2p0M1dDV0pv?= =?utf-8?B?UDRJYy9odXJkU0EyVVdjamRWQnlkaHhPY3ZGTmZwTUs3SVdlcWxqRmpNa2Vk?= =?utf-8?B?eEZPQUtTeEFjVWg2OEQ1MXR2eWpLRENNUDZab0hEZEZVR0xDQ0ttZ1dSdmsy?= =?utf-8?B?aldaazFJNXBlRGg2RXdpTU42bXB4Z2IwM3k2OW53SFVsSEdMditHdlRWQy81?= =?utf-8?B?eFFUNXBRcTd2WlZEcktUbVZxYmQ2RncxcVlrNmRPVVIrd1VPOHVKcUM5OGJF?= =?utf-8?B?UWdVdnJFaGtvazA1RnVQaG5EMCtwaXkraHp4MXExb0lrd3IzZlIrbTJLbCtj?= =?utf-8?B?d21lZmtJdzR5dHlSM0h0aVcvTHVBTTI0SFpwWTU3TDVVRWpzTXQvY0xITlpS?= =?utf-8?B?VS8yWDdmU0o3Lytnd01aS0UrV0ZSbmd0b2plWGJjL09hRUR6QzB5d1lndGJk?= =?utf-8?B?ZFZydkN4cDd1UVkyaFllL09UNUY2Z2RHTktFUEsxWlhKNlhveElBaHBnUi9z?= =?utf-8?B?a0NuOVNoTmx0aHNGK1Rndlo4Sk5hZXd6RkhrOWNXalhPMmxCKzNNSlpzMjJx?= =?utf-8?B?LytDZTFtc29SemdOYWlrRjBCekJUOVVEeUUvWWxIVzBqM3R1QkNjUnMrNFhU?= =?utf-8?B?MEd1bXdWOGNsUHZwejViNm45V01QME1ZZ2tqbDBCS2x1VWVtY0dkMld3dnNJ?= =?utf-8?B?Qzl4Ymo3QUR6a0ZTanlqM0VtZVBSc1V6RW14bGNlckZWeU9zSFR4Ui8xQWtt?= =?utf-8?B?UnhSRjVUdmErWng1U0VXK2ZyRHdMMzNFQjJqT0c2cjU5b0tlRlBibWZpOGdu?= =?utf-8?B?c3VuVU0weWpSK2U4R2lXdFBRVldTOHZuK3NRZ2thVUlrREFXdFR0ZFhVd0ZP?= =?utf-8?B?Ni94QTk4NjJyZHB0c2lrNiswR3lZTHJhdjEyYVVjdmx0N0c5ejN6TGlWQllF?= =?utf-8?B?dW82R1Z5aFl4b0FrenRwMitRTm56U3hNREhSVGNtWllkWUdDdUJoM0llUkJ4?= =?utf-8?B?L3dhQitpOGxFcDBQMG1RQjgxaFVqZ2NxWVpnMUdxb0N4T1l0enFMdE1OdW9r?= =?utf-8?B?MDNyUU11ZWhtaVB3a0duaVpjSWdTdkgyV0xMa1drdUcvSHVRYlY1endTbVBk?= =?utf-8?B?WGI4Wmt1d1ZiNVhWckw5WFNoYkxocmNQZFZnMU5TaGIzeUczQkZpRDNVVEh5?= =?utf-8?B?cysya2lLdHlKd1lxd09BQnVNSmRIZXZ2NTNyUVgrL1lZeUxMZm1wMUtZd015?= =?utf-8?B?c2Q2a3JpRW0rdEw4eVNBMzdUbm5NVjdqK3VHblkyb25VQWhDckZDSGR4MDZW?= =?utf-8?B?dUFrN1hGVXBwR0ZTdVNIT2JKYXBYeDRGRGpibWZvbkVVd0lhUzZ0TlZudWtl?= =?utf-8?B?RUE9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: 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: 20d8ce32-f1af-43ff-d955-08dbad848389 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Sep 2023 20:21:25.6640 (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: PzMSoLrXZEmOiAbydT6KxK/oSuebFM1LN/8vVDSP2qUFbWvUbwKPfr3w3F1Y9A62r9ZpdtXepPjmFbsAwD/rKw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB5205 X-OriginatorOrg: intel.com Subject: Re: [Intel-xe] [RFC 5/5] drm/xe/uapi: support pat_index selection with vm_bind 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" T24gVHVlLCAyMDIzLTA4LTI5IGF0IDE3OjI4ICswMTAwLCBNYXR0aGV3IEF1bGQgd3JvdGU6DQo+ IEFsbG93IHVzZXJzcGFjZSB0byBkaXJlY3RseSBjb250cm9sIHRoZSBwYXRfaW5kZXggZm9yIGEg Z2l2ZW4gdm0NCj4gYmluZGluZy4gVGhpcyBzaG91bGQgYWxsb3cgZGlyZWN0bHkgY29udHJvbGxp bmcgdGhlIGNvaGVyZW5jeSwgY2FjaGluZw0KPiBhbmQgcG90ZW50aWFsbHkgb3RoZXIgc3R1ZmYg aW4gdGhlIGZ1dHVyZSBmb3IgdGhlIHBwR1RUIGJpbmRpbmcuDQo+IA0KPiBUaGUgZXhhY3QgbWVh bmluZyBiZWhpbmQgdGhlIHBhdF9pbmRleCBpcyB2ZXJ5IHBsYXRmb3JtIHNwZWNpZmljIChzZWUN Cj4gQlNwZWMgb3IgUFJNcykgYnV0IGVmZmVjdGl2ZWx5IG1hcHMgdG8gc29tZSBwcmVkZWZpbmVk IG1lbW9yeQ0KPiBhdHRyaWJ1dGVzLiBGcm9tIHRoZSBLTUQgcG92IHdlIG9ubHkgY2FyZSBhYm91 dCB0aGUgY29oZXJlbmN5IHRoYXQgaXMNCj4gcHJvdmlkZWQgYnkgdGhlIHBhdF9pbmRleCwgd2hp Y2ggZmFsbHMgaW50byBlaXRoZXIgTk9ORSwgMVdBWSBvciAyV0FZLg0KPiBUaGUgdm1fYmluZCBj b2hlcmVuY3kgbW9kZSBmb3IgdGhlIGdpdmVuIHBhdF9pbmRleCBuZWVkcyB0byBtYXRjaCB0aGUN Cj4gZ2l2ZW4gY29oX21vZGUgdGhhdCB3YXMgc2V0IGF0IG9iamVjdCBjcmVhdGlvbi4gRm9yIHBs YXRmb3JtcyB0aGF0IGxhY2sNCj4gdGhlIGV4cGxpY2l0IGNvaGVyZW5jeSBtb2RlLCB3ZSB0cmVh dCBVQy9XVC9XQyBhcyBOT05FIGFuZCBXQiBhcyAyV0FZLg0KPiANCj4gRm9yIHVzZXJwdHIgbWFw cGluZ3Mgd2UgbGFjayBhIGNvcnJlc3BvbmRpbmcgZ2VtIG9iamVjdCwgc28gdGhlIGV4cGVjdGVk DQo+IGNvaGVyZW5jeSBtb2RlIGlzIGluc3RlYWQgaW1wbGljaXQgYW5kIG11c3QgZmFsbCBpbnRv IGVpdGhlciAxV0FZIG9yDQo+IDJXQVkuIFRyeWluZyB0byB1c2UgTk9ORSB3aWxsIGJlIHJlamVj dGVkIGJ5IHRoZSBrZXJuZWwuIEZvciBpbXBvcnRlZA0KPiBkbWEtYnVmIChmcm9tIGEgZGlmZmVy ZW50IGRldmljZSkgdGhlIGNvaGVyZW5jeSBtb2RlIGlzIGFsc28gaW1wbGljaXQNCj4gYW5kIG11 c3QgYWxzbyBiZSBlaXRoZXIgMVdBWSBvciAyV0FZLg0KPiANCj4gQXMgcGFydCBvZiBhZGRpbmcg cGF0X2luZGV4IHN1cHBvcnQgd2l0aCB2bV9iaW5kIHdlIGFsc28gbmVlZCBzdG9wIHVzaW5nDQo+ IHhlX2NhY2hlX2xldmVsIGFuZCBpbnN0ZWFkIHVzZSB0aGUgcGF0X2luZGV4IGluIHZhcmlvdXMg cGxhY2VzLiBXZSBzdGlsbA0KPiBtYWtlIHVzZSBvZiB4ZV9jYWNoZV9sZXZlbCwgYnV0IG9ubHkg YXMgYSBjb252ZW5pZW5jZSBmb3Iga2VybmVsDQo+IGludGVybmFsIG9iamVjdHNpIChpbnRlcm5h bGx5IGl0IG1hcHMgdG8gc29tZSByZWFzb25hYmxlIHBhdF9pbmRleCkuIEZvcg0KPiBub3cgdGhp cyBpcyBqdXN0IGEgMToxIGNvbnZlcnNpb24gb2YgdGhlIGV4aXN0aW5nIGNvZGUsIGhvd2V2ZXIg Zm9yDQo+IHBsYXRmb3JtcyBsaWtlIE1UTCsgd2UgbWlnaHQgbmVlZCB0byBnaXZlIG1vcmUgY29u dHJvbCB0aHJvdWdoIGJvX2NyZWF0ZQ0KPiBvciBzdG9wIHVzaW5nIFdCIG9uIHRoZSBDUFUgc2lk ZSBpZiB3ZSBuZWVkIENQVSBhY2Nlc3MuDQo+IA0KPiBCc3BlYzogNDUxMDEsIDQ0MjM1ICN4ZQ0K PiBCc3BlYzogNzA1NTIsIDcxNTgyLCA1OTQwMCAjeGUyDQo+IFNpZ25lZC1vZmYtYnk6IE1hdHRo ZXcgQXVsZCA8bWF0dGhldy5hdWxkQGludGVsLmNvbT4NCj4gQ2M6IFBhbGxhdmkgTWlzaHJhIDxw YWxsYXZpLm1pc2hyYUBpbnRlbC5jb20+DQo+IENjOiBUaG9tYXMgSGVsbHN0csO2bSA8dGhvbWFz LmhlbGxzdHJvbUBsaW51eC5pbnRlbC5jb20+DQo+IENjOiBKb29uYXMgTGFodGluZW4gPGpvb25h cy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+DQo+IENjOiBMdWNhcyBEZSBNYXJjaGkgPGx1Y2Fz LmRlbWFyY2hpQGludGVsLmNvbT4NCj4gQ2M6IE1hdHQgUm9wZXIgPG1hdHRoZXcuZC5yb3BlckBp bnRlbC5jb20+DQo+IENjOiBKb3PDqSBSb2JlcnRvIGRlIFNvdXphIDxqb3NlLnNvdXphQGludGVs LmNvbT4NCj4gQ2M6IEZpbGlwIEhhenVic2tpIDxmaWxpcC5oYXp1YnNraUBpbnRlbC5jb20+DQo+ IENjOiBDYXJsIFpoYW5nIDxjYXJsLnpoYW5nQGludGVsLmNvbT4NCj4gQ2M6IEVmZmllIFl1IDxl ZmZpZS55dUBpbnRlbC5jb20+DQo+IC0tLQ0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50 ZWxfZ3R0LmggICB8ICAyICstDQo+ICBkcml2ZXJzL2dwdS9kcm0veGUvdGVzdHMveGVfbWlncmF0 ZS5jIHwgIDIgKy0NCj4gIGRyaXZlcnMvZ3B1L2RybS94ZS94ZV9nZ3R0LmMgICAgICAgICAgfCAg NyArKy0NCj4gIGRyaXZlcnMvZ3B1L2RybS94ZS94ZV9nZ3R0X3R5cGVzLmggICAgfCAgMiArLQ0K PiAgZHJpdmVycy9ncHUvZHJtL3hlL3hlX21pZ3JhdGUuYyAgICAgICB8IDE0ICsrLS0tDQo+ICBk cml2ZXJzL2dwdS9kcm0veGUveGVfcHQuYyAgICAgICAgICAgIHwgMzIgKysrKystLS0tLS0tDQo+ ICBkcml2ZXJzL2dwdS9kcm0veGUveGVfcHQuaCAgICAgICAgICAgIHwgIDYgKy0tDQo+ICBkcml2 ZXJzL2dwdS9kcm0veGUveGVfdm0uYyAgICAgICAgICAgIHwgNzMgKysrKysrKysrKysrKysrKysr KysrLS0tLS0tDQo+ICBkcml2ZXJzL2dwdS9kcm0veGUveGVfdm1fdHlwZXMuaCAgICAgIHwgMTMg KysrLS0NCj4gIGluY2x1ZGUvdWFwaS9kcm0veGVfZHJtLmggICAgICAgICAgICAgfCA0MSArKysr KysrKysrKysrKy0NCj4gIDEwIGZpbGVzIGNoYW5nZWQsIDEzNCBpbnNlcnRpb25zKCspLCA1OCBk ZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9p bnRlbF9ndHQuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2d0dC5oDQo+IGluZGV4 IDRkNjI5NmNkYmNmZC4uYmI0YzE4MjA0OGMzIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9ndC9pbnRlbF9ndHQuaA0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9p bnRlbF9ndHQuaA0KPiBAQCAtMzAyLDcgKzMwMiw3IEBAIHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3Bh Y2Ugew0KPiAgCQkoKmFsbG9jX3NjcmF0Y2hfZG1hKShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNl ICp2bSwgaW50IHN6KTsNCj4gIA0KPiAgCXU2NCAoKnB0ZV9lbmNvZGUpKGRtYV9hZGRyX3QgYWRk ciwNCj4gLQkJCSAgdW5zaWduZWQgaW50IHBhdF9pbmRleCwNCj4gKwkJCSAgdTMyIHBhdF9pbmRl eCwNCj4gIAkJCSAgdTMyIGZsYWdzKTsgLyogQ3JlYXRlIGEgdmFsaWQgUFRFICovDQo+ICAjZGVm aW5lIFBURV9SRUFEX09OTFkJQklUKDApDQo+ICAjZGVmaW5lIFBURV9MTQkJQklUKDEpDQo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0veGUvdGVzdHMveGVfbWlncmF0ZS5jIGIvZHJpdmVy cy9ncHUvZHJtL3hlL3Rlc3RzL3hlX21pZ3JhdGUuYw0KPiBpbmRleCA1YzhkNWU3OGQ5YmMuLjdh MTI4ZmQyMGEyOSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3hlL3Rlc3RzL3hlX21p Z3JhdGUuYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0veGUvdGVzdHMveGVfbWlncmF0ZS5jDQo+ IEBAIC0zMDEsNyArMzAxLDcgQEAgc3RhdGljIHZvaWQgeGVfbWlncmF0ZV9zYW5pdHlfdGVzdChz dHJ1Y3QgeGVfbWlncmF0ZSAqbSwgc3RydWN0IGt1bml0ICp0ZXN0KQ0KPiAgCS8qIEZpcnN0IHBh cnQgb2YgdGhlIHRlc3QsIGFyZSB3ZSB1cGRhdGluZyBvdXIgcGFnZXRhYmxlIGJvIHdpdGggYSBu ZXcgZW50cnk/ICovDQo+ICAJeGVfbWFwX3dyKHhlLCAmYm8tPnZtYXAsIFhFX1BBR0VfU0laRSAq IChOVU1fS0VSTkVMX1BERSAtIDEpLCB1NjQsDQo+ICAJCSAgMHhkZWFkZGVhZGJlZWZiZWVmKTsN Cj4gLQlleHBlY3RlZCA9IHhlX3B0ZV9lbmNvZGUocHQsIDAsIFhFX0NBQ0hFX1dCLCAwKTsNCj4g KwlleHBlY3RlZCA9IHhlX3B0ZV9lbmNvZGUocHQsIDAsIHhlX3BhdF9nZXRfaW5kZXgoeGUsIFhF X0NBQ0hFX1dCKSwgMCk7DQo+ICAJaWYgKG0tPnEtPnZtLT5mbGFncyAmIFhFX1ZNX0ZMQUdfNjRL KQ0KPiAgCQlleHBlY3RlZCB8PSBYRV9QVEVfUFM2NDsNCj4gIAlpZiAoeGVfYm9faXNfdnJhbShw dCkpDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfZ2d0dC5jIGIvZHJpdmVy cy9ncHUvZHJtL3hlL3hlX2dndHQuYw0KPiBpbmRleCAyMDlmYTA1M2Q5ZmIuLjQxMzRjMjYxNTBh NSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3hlL3hlX2dndHQuYw0KPiArKysgYi9k cml2ZXJzL2dwdS9kcm0veGUveGVfZ2d0dC5jDQo+IEBAIC00MSw3ICs0MSw4IEBAIHU2NCB4ZV9n Z3R0X3B0ZV9lbmNvZGUoc3RydWN0IHhlX2JvICpibywgdTY0IGJvX29mZnNldCkNCj4gIAkJcHRl IHw9IFhFX0dHVFRfUFRFX0RNOw0KPiAgDQo+ICAJaWYgKChnZ3R0LT5wYXRfZW5jb2RlKS5wdGVf ZW5jb2RlKQ0KPiAtCQlwdGUgPSAoZ2d0dC0+cGF0X2VuY29kZSkucHRlX2VuY29kZSh4ZSwgcHRl LCBYRV9DQUNIRV9XQl8xX1dBWSk7DQo+ICsJCXB0ZSA9IChnZ3R0LT5wYXRfZW5jb2RlKS5wdGVf ZW5jb2RlKHhlLCBwdGUsDQo+ICsJCQkJCQkgICAgeGVfcGF0X2dldF9pbmRleCh4ZSwgWEVfQ0FD SEVfV0JfMV9XQVkpKTsNCj4gIA0KPiAgCXJldHVybiBwdGU7DQo+ICB9DQo+IEBAIC0xMDIsMTAg KzEwMyw4IEBAIHN0YXRpYyB2b2lkIHByaW1lbG9ja2RlcChzdHJ1Y3QgeGVfZ2d0dCAqZ2d0dCkN Cj4gIH0NCj4gIA0KPiAgc3RhdGljIHU2NCB4ZWxwZ19nZ3R0X3B0ZV9lbmNvZGVfcGF0KHN0cnVj dCB4ZV9kZXZpY2UgKnhlLCB1NjQgcHRlX3BhdCwNCj4gLQkJCQkJCWVudW0geGVfY2FjaGVfbGV2 ZWwgY2FjaGUpDQo+ICsJCQkJICAgICB1MzIgcGF0X2luZGV4KQ0KPiAgew0KPiAtCXUzMiBwYXRf aW5kZXggPSB4ZV9wYXRfZ2V0X2luZGV4KHhlLCBjYWNoZSk7DQo+IC0NCj4gIAlwdGVfcGF0ICY9 IH4oWEVMUEdfR0dUVF9QVEVfUEFUX01BU0spOw0KPiAgDQo+ICAJaWYgKHBhdF9pbmRleCAmIEJJ VCgwKSkNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV9nZ3R0X3R5cGVzLmgg Yi9kcml2ZXJzL2dwdS9kcm0veGUveGVfZ2d0dF90eXBlcy5oDQo+IGluZGV4IDdlNTVmYWMxYThh OS4uMGJjNDBjYjA3MmUzIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfZ2d0 dF90eXBlcy5oDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV9nZ3R0X3R5cGVzLmgNCj4g QEAgLTMxLDcgKzMxLDcgQEAgc3RydWN0IHhlX2dndHQgew0KPiAgDQo+ICAJc3RydWN0IHsNCj4g IAkJdTY0ICgqcHRlX2VuY29kZSkoc3RydWN0IHhlX2RldmljZSAqeGUsIHU2NCBwdGVfcGF0LA0K PiAtCQkJCQkJZW51bSB4ZV9jYWNoZV9sZXZlbCBjYWNoZSk7DQo+ICsJCQkJICB1MzIgcGF0X2lu ZGV4KTsNCj4gIAl9IHBhdF9lbmNvZGU7DQo+ICB9Ow0KPiAgDQo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0veGUveGVfbWlncmF0ZS5jIGIvZHJpdmVycy9ncHUvZHJtL3hlL3hlX21pZ3Jh dGUuYw0KPiBpbmRleCBhNzgyZWEyODJjYjYuLjU0NTg1ZTk4NDUyYSAxMDA2NDQNCj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3hlL3hlX21pZ3JhdGUuYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v eGUveGVfbWlncmF0ZS5jDQo+IEBAIC0yNCw2ICsyNCw3IEBADQo+ICAjaW5jbHVkZSAieGVfbHJj LmgiDQo+ICAjaW5jbHVkZSAieGVfbWFwLmgiDQo+ICAjaW5jbHVkZSAieGVfbW9jcy5oIg0KPiAr I2luY2x1ZGUgInhlX3BhdC5oIg0KPiAgI2luY2x1ZGUgInhlX3B0LmgiDQo+ICAjaW5jbHVkZSAi eGVfcmVzX2N1cnNvci5oIg0KPiAgI2luY2x1ZGUgInhlX3NjaGVkX2pvYi5oIg0KPiBAQCAtMTYy LDYgKzE2Myw3IEBAIHN0YXRpYyBpbnQgeGVfbWlncmF0ZV9wcmVwYXJlX3ZtKHN0cnVjdCB4ZV90 aWxlICp0aWxlLCBzdHJ1Y3QgeGVfbWlncmF0ZSAqbSwNCj4gIAl1MzIgbnVtX2VudHJpZXMgPSBO VU1fUFRfU0xPVFMsIG51bV9sZXZlbCA9IHZtLT5wdF9yb290W2lkXS0+bGV2ZWw7DQo+ICAJdTMy IG1hcF9vZnMsIGxldmVsLCBpOw0KPiAgCXN0cnVjdCB4ZV9ibyAqYm8sICpiYXRjaCA9IHRpbGUt Pm1lbS5rZXJuZWxfYmJfcG9vbC0+Ym87DQo+ICsJdTMyIHBhdF9pbmRleCA9IHhlX3BhdF9nZXRf aW5kZXgoeGUsIFhFX0NBQ0hFX1dCKTsNCj4gIAl1NjQgZW50cnk7DQo+ICAJaW50IHJldDsNCj4g IA0KPiBAQCAtMTg5LDE0ICsxOTEsMTQgQEAgc3RhdGljIGludCB4ZV9taWdyYXRlX3ByZXBhcmVf dm0oc3RydWN0IHhlX3RpbGUgKnRpbGUsIHN0cnVjdCB4ZV9taWdyYXRlICptLA0KPiAgCQlyZXR1 cm4gcmV0Ow0KPiAgCX0NCj4gIA0KPiAtCWVudHJ5ID0geGVfcGRlX2VuY29kZShibywgYm8tPnNp emUgLSBYRV9QQUdFX1NJWkUsIFhFX0NBQ0hFX1dCKTsNCj4gKwllbnRyeSA9IHhlX3BkZV9lbmNv ZGUoYm8sIGJvLT5zaXplIC0gWEVfUEFHRV9TSVpFLCBwYXRfaW5kZXgpOw0KPiAgCXhlX3B0X3dy aXRlKHhlLCAmdm0tPnB0X3Jvb3RbaWRdLT5iby0+dm1hcCwgMCwgZW50cnkpOw0KPiAgDQo+ICAJ bWFwX29mcyA9IChudW1fZW50cmllcyAtIG51bV9sZXZlbCkgKiBYRV9QQUdFX1NJWkU7DQo+ICAN Cj4gIAkvKiBNYXAgdGhlIGVudGlyZSBCTyBpbiBvdXIgbGV2ZWwgMCBwdCAqLw0KPiAgCWZvciAo aSA9IDAsIGxldmVsID0gMDsgaSA8IG51bV9lbnRyaWVzOyBsZXZlbCsrKSB7DQo+IC0JCWVudHJ5 ID0geGVfcHRlX2VuY29kZShibywgaSAqIFhFX1BBR0VfU0laRSwgWEVfQ0FDSEVfV0IsIDApOw0K PiArCQllbnRyeSA9IHhlX3B0ZV9lbmNvZGUoYm8sIGkgKiBYRV9QQUdFX1NJWkUsIHBhdF9pbmRl eCwgMCk7DQo+ICANCj4gIAkJeGVfbWFwX3dyKHhlLCAmYm8tPnZtYXAsIG1hcF9vZnMgKyBsZXZl bCAqIDgsIHU2NCwgZW50cnkpOw0KPiAgDQo+IEBAIC0yMTQsNyArMjE2LDcgQEAgc3RhdGljIGlu dCB4ZV9taWdyYXRlX3ByZXBhcmVfdm0oc3RydWN0IHhlX3RpbGUgKnRpbGUsIHN0cnVjdCB4ZV9t aWdyYXRlICptLA0KPiAgCQlmb3IgKGkgPSAwOyBpIDwgYmF0Y2gtPnNpemU7DQo+ICAJCSAgICAg aSArPSB2bS0+ZmxhZ3MgJiBYRV9WTV9GTEFHXzY0SyA/IFhFXzY0S19QQUdFX1NJWkUgOg0KPiAg CQkgICAgIFhFX1BBR0VfU0laRSkgew0KPiAtCQkJZW50cnkgPSB4ZV9wdGVfZW5jb2RlKGJhdGNo LCBpLCBYRV9DQUNIRV9XQiwgMCk7DQo+ICsJCQllbnRyeSA9IHhlX3B0ZV9lbmNvZGUoYmF0Y2gs IGksIHBhdF9pbmRleCwgMCk7DQo+ICANCj4gIAkJCXhlX21hcF93cih4ZSwgJmJvLT52bWFwLCBt YXBfb2ZzICsgbGV2ZWwgKiA4LCB1NjQsDQo+ICAJCQkJICBlbnRyeSk7DQo+IEBAIC0yMzksNyAr MjQxLDcgQEAgc3RhdGljIGludCB4ZV9taWdyYXRlX3ByZXBhcmVfdm0oc3RydWN0IHhlX3RpbGUg KnRpbGUsIHN0cnVjdCB4ZV9taWdyYXRlICptLA0KPiAgCQkJZmxhZ3MgPSBYRV9QREVfNjRLOw0K PiAgDQo+ICAJCWVudHJ5ID0geGVfcGRlX2VuY29kZShibywgbWFwX29mcyArIChsZXZlbCAtIDEp ICoNCj4gLQkJCQkJWEVfUEFHRV9TSVpFLCBYRV9DQUNIRV9XQik7DQo+ICsJCQkJCVhFX1BBR0Vf U0laRSwgcGF0X2luZGV4KTsNCj4gIAkJeGVfbWFwX3dyKHhlLCAmYm8tPnZtYXAsIG1hcF9vZnMg KyBYRV9QQUdFX1NJWkUgKiBsZXZlbCwgdTY0LA0KPiAgCQkJICBlbnRyeSB8IGZsYWdzKTsNCj4g IAl9DQo+IEBAIC0yNDcsNyArMjQ5LDcgQEAgc3RhdGljIGludCB4ZV9taWdyYXRlX3ByZXBhcmVf dm0oc3RydWN0IHhlX3RpbGUgKnRpbGUsIHN0cnVjdCB4ZV9taWdyYXRlICptLA0KPiAgCS8qIFdy aXRlIFBERSdzIHRoYXQgcG9pbnQgdG8gb3VyIEJPLiAqLw0KPiAgCWZvciAoaSA9IDA7IGkgPCBu dW1fZW50cmllcyAtIG51bV9sZXZlbDsgaSsrKSB7DQo+ICAJCWVudHJ5ID0geGVfcGRlX2VuY29k ZShibywgaSAqIFhFX1BBR0VfU0laRSwNCj4gLQkJCQkgICAgICBYRV9DQUNIRV9XQik7DQo+ICsJ CQkJICAgICAgcGF0X2luZGV4KTsNCj4gIA0KPiAgCQl4ZV9tYXBfd3IoeGUsICZiby0+dm1hcCwg bWFwX29mcyArIFhFX1BBR0VfU0laRSArDQo+ICAJCQkgIChpICsgMSkgKiA4LCB1NjQsIGVudHJ5 KTsNCj4gQEAgLTEyNTYsNyArMTI1OCw3IEBAIHhlX21pZ3JhdGVfdXBkYXRlX3BndGFibGVzKHN0 cnVjdCB4ZV9taWdyYXRlICptLA0KPiAgDQo+ICAJCQlYRV9XQVJOX09OKHB0X2JvLT5zaXplICE9 IFNaXzRLKTsNCj4gIA0KPiAtCQkJYWRkciA9IHhlX3B0ZV9lbmNvZGUocHRfYm8sIDAsIFhFX0NB Q0hFX1dCLCAwKTsNCj4gKwkJCWFkZHIgPSB4ZV9wdGVfZW5jb2RlKHB0X2JvLCAwLCB4ZV9wYXRf Z2V0X2luZGV4KHhlLCBYRV9DQUNIRV9XQiksIDApOw0KPiAgCQkJYmItPmNzW2JiLT5sZW4rK10g PSBsb3dlcl8zMl9iaXRzKGFkZHIpOw0KPiAgCQkJYmItPmNzW2JiLT5sZW4rK10gPSB1cHBlcl8z Ml9iaXRzKGFkZHIpOw0KPiAgCQl9DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0veGUv eGVfcHQuYyBiL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV9wdC5jDQo+IGluZGV4IDY0NzEzZjQwMGQ5 NC4uMDE5YWYyOTIwMDc4IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0veGUveGVfcHQu Yw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfcHQuYw0KPiBAQCAtMTAsNiArMTAsNyBA QA0KPiAgI2luY2x1ZGUgInhlX2d0LmgiDQo+ICAjaW5jbHVkZSAieGVfZ3RfdGxiX2ludmFsaWRh dGlvbi5oIg0KPiAgI2luY2x1ZGUgInhlX21pZ3JhdGUuaCINCj4gKyNpbmNsdWRlICJ4ZV9wYXQu aCINCj4gICNpbmNsdWRlICJ4ZV9wdF90eXBlcy5oIg0KPiAgI2luY2x1ZGUgInhlX3B0X3dhbGsu aCINCj4gICNpbmNsdWRlICJ4ZV9yZXNfY3Vyc29yLmgiDQo+IEBAIC01NywyNCArNTgsMjIgQEAg c3RhdGljIHN0cnVjdCB4ZV9wdCAqeGVfcHRfZW50cnkoc3RydWN0IHhlX3B0X2RpciAqcHRfZGly LCB1bnNpZ25lZCBpbnQgaW5kZXgpDQo+ICAgKg0KPiAgICogUmV0dXJuOiBBbiBlbmNvZGVkIHBh Z2UgZGlyZWN0b3J5IGVudHJ5LiBObyBlcnJvcnMuDQo+ICAgKi8NCj4gLXU2NCB4ZV9wZGVfZW5j b2RlKHN0cnVjdCB4ZV9ibyAqYm8sIHU2NCBib19vZmZzZXQsDQo+IC0JCSAgY29uc3QgZW51bSB4 ZV9jYWNoZV9sZXZlbCBjYWNoZSkNCj4gK3U2NCB4ZV9wZGVfZW5jb2RlKHN0cnVjdCB4ZV9ibyAq Ym8sIHU2NCBib19vZmZzZXQsIHUzMiBwYXRfaW5kZXgpDQo+ICB7DQo+ICAJdTY0IHBkZTsNCj4g IAlzdHJ1Y3QgeGVfdm0gKnZtID0gYm8tPnZtOw0KPiAgCXN0cnVjdCB4ZV9kZXZpY2UgKnhlID0g dm0tPnhlOw0KPiAgDQo+IC0NCj4gIAlwZGUgPSB4ZV9ib19hZGRyKGJvLCBib19vZmZzZXQsIFhF X1BBR0VfU0laRSk7DQo+ICAJcGRlIHw9IFhFX1BBR0VfUFJFU0VOVCB8IFhFX1BBR0VfUlc7DQo+ ICANCj4gIAlpZiAoKHZtLT5wYXRfZW5jb2RlKS5wZGVfZW5jb2RlKQ0KPiAtCQlwZGUgPSAodm0t PnBhdF9lbmNvZGUpLnBkZV9lbmNvZGUoeGUsIHBkZSwgY2FjaGUpOw0KPiArCQlwZGUgPSAodm0t PnBhdF9lbmNvZGUpLnBkZV9lbmNvZGUoeGUsIHBkZSwgcGF0X2luZGV4KTsNCj4gIA0KPiAgCXJl dHVybiBwZGU7DQo+ICB9DQo+ICANCj4gLXN0YXRpYyB1NjQgX19wdGVfZW5jb2RlKHU2NCBwdGUs IGVudW0geGVfY2FjaGVfbGV2ZWwgY2FjaGUsDQo+ICtzdGF0aWMgdTY0IF9fcHRlX2VuY29kZSh1 NjQgcHRlLCB1MzIgcGF0X2luZGV4LA0KPiAgCQkJc3RydWN0IHhlX3ZtYSAqdm1hLCB1MzIgcHRf bGV2ZWwpDQo+ICB7DQo+ICAJc3RydWN0IHhlX3ZtICp2bSA9IHhlX3ZtYV92bSh2bWEpOw0KPiBA QCAtODksNyArODgsNyBAQCBzdGF0aWMgdTY0IF9fcHRlX2VuY29kZSh1NjQgcHRlLCBlbnVtIHhl X2NhY2hlX2xldmVsIGNhY2hlLA0KPiAgCQlwdGUgfD0gWEVfUFRFX05VTEw7DQo+ICANCj4gIAlp ZiAoKHZtLT5wYXRfZW5jb2RlKS5wdGVfZW5jb2RlKQ0KPiAtCQlwdGUgPSAodm0tPnBhdF9lbmNv ZGUpLnB0ZV9lbmNvZGUoeGUsIHB0ZSwgY2FjaGUpOw0KPiArCQlwdGUgPSAodm0tPnBhdF9lbmNv ZGUpLnB0ZV9lbmNvZGUoeGUsIHB0ZSwgcGF0X2luZGV4KTsNCj4gIA0KPiAgCWlmIChwdF9sZXZl bCA9PSAxKQ0KPiAgCQlwdGUgfD0gWEVfUERFX1BTXzJNOw0KPiBAQCAtMTEyLDcgKzExMSw3IEBA IHN0YXRpYyB1NjQgX19wdGVfZW5jb2RlKHU2NCBwdGUsIGVudW0geGVfY2FjaGVfbGV2ZWwgY2Fj aGUsDQo+ICAgKg0KPiAgICogUmV0dXJuOiBBbiBlbmNvZGVkIHBhZ2UtdGFibGUgZW50cnkuIE5v IGVycm9ycy4NCj4gICAqLw0KPiAtdTY0IHhlX3B0ZV9lbmNvZGUoc3RydWN0IHhlX2JvICpibywg dTY0IG9mZnNldCwgZW51bSB4ZV9jYWNoZV9sZXZlbCBjYWNoZSwNCj4gK3U2NCB4ZV9wdGVfZW5j b2RlKHN0cnVjdCB4ZV9ibyAqYm8sIHU2NCBvZmZzZXQsIHUzMiBwYXRfaW5kZXgsDQo+ICAJCSAg dTMyIHB0X2xldmVsKQ0KPiAgew0KPiAgCXU2NCBwdGU7DQo+IEBAIC0xMjEsNyArMTIwLDcgQEAg dTY0IHhlX3B0ZV9lbmNvZGUoc3RydWN0IHhlX2JvICpibywgdTY0IG9mZnNldCwgZW51bSB4ZV9j YWNoZV9sZXZlbCBjYWNoZSwNCj4gIAlpZiAoeGVfYm9faXNfdnJhbShibykgfHwgeGVfYm9faXNf c3RvbGVuX2Rldm1lbShibykpDQo+ICAJCXB0ZSB8PSBYRV9QUEdUVF9QVEVfRE07DQo+ICANCj4g LQlyZXR1cm4gX19wdGVfZW5jb2RlKHB0ZSwgY2FjaGUsIE5VTEwsIHB0X2xldmVsKTsNCj4gKwly ZXR1cm4gX19wdGVfZW5jb2RlKHB0ZSwgcGF0X2luZGV4LCBOVUxMLCBwdF9sZXZlbCk7DQo+ICB9 DQo+ICANCj4gIHN0YXRpYyB1NjQgX194ZV9wdF9lbXB0eV9wdGUoc3RydWN0IHhlX3RpbGUgKnRp bGUsIHN0cnVjdCB4ZV92bSAqdm0sDQo+IEBAIC0xMzQsMTIgKzEzMywxMiBAQCBzdGF0aWMgdTY0 IF9feGVfcHRfZW1wdHlfcHRlKHN0cnVjdCB4ZV90aWxlICp0aWxlLCBzdHJ1Y3QgeGVfdm0gKnZt LA0KPiAgDQo+ICAJaWYgKGxldmVsID09IDApIHsNCj4gIAkJdTY0IGVtcHR5ID0geGVfcHRlX2Vu Y29kZSh2bS0+c2NyYXRjaF9ib1tpZF0sIDAsDQo+IC0JCQkJCSAgWEVfQ0FDSEVfV0IsIDApOw0K PiArCQkJCQkgIHhlX3BhdF9nZXRfaW5kZXgodm0tPnhlLCBYRV9DQUNIRV9XQiksIDApOw0KPiAg DQo+ICAJCXJldHVybiBlbXB0eTsNCj4gIAl9IGVsc2Ugew0KPiAgCQlyZXR1cm4geGVfcGRlX2Vu Y29kZSh2bS0+c2NyYXRjaF9wdFtpZF1bbGV2ZWwgLSAxXS0+Ym8sIDAsDQo+IC0JCQkJICAgICBY RV9DQUNIRV9XQik7DQo+ICsJCQkJICAgICB4ZV9wYXRfZ2V0X2luZGV4KHZtLT54ZSwgWEVfQ0FD SEVfV0IpKTsNCj4gIAl9DQo+ICB9DQo+ICANCj4gQEAgLTM2OCw4ICszNjcsNiBAQCBzdHJ1Y3Qg eGVfcHRfc3RhZ2VfYmluZF93YWxrIHsNCj4gIAlzdHJ1Y3QgeGVfdm0gKnZtOw0KPiAgCS8qKiBA dGlsZTogVGhlIHRpbGUgd2UncmUgYnVpbGRpbmcgZm9yLiAqLw0KPiAgCXN0cnVjdCB4ZV90aWxl ICp0aWxlOw0KPiAtCS8qKiBAY2FjaGU6IERlc2lyZWQgY2FjaGUgbGV2ZWwgZm9yIHRoZSBwdGVz ICovDQo+IC0JZW51bSB4ZV9jYWNoZV9sZXZlbCBjYWNoZTsNCj4gIAkvKiogQGRlZmF1bHRfcHRl OiBQVEUgZmxhZyBvbmx5IHRlbXBsYXRlLiBObyBhZGRyZXNzIGlzIGFzc29jaWF0ZWQgKi8NCj4g IAl1NjQgZGVmYXVsdF9wdGU7DQo+ICAJLyoqIEBkbWFfb2Zmc2V0OiBETUEgb2Zmc2V0IHRvIGFk ZCB0byB0aGUgUFRFLiAqLw0KPiBAQCAtNjA0LDcgKzYwMSw3IEBAIHhlX3B0X3N0YWdlX2JpbmRf ZW50cnkoc3RydWN0IHhlX3B0dyAqcGFyZW50LCBwZ29mZl90IG9mZnNldCwNCj4gIA0KPiAgCQlw dGUgPSBfX3B0ZV9lbmNvZGUoaXNfbnVsbCA/IDAgOg0KPiAgCQkJCSAgIHhlX3Jlc19kbWEoY3Vy cykgKyB4ZV93YWxrLT5kbWFfb2Zmc2V0LA0KPiAtCQkJCSAgIHhlX3dhbGstPmNhY2hlLCB4ZV93 YWxrLT52bWEsIGxldmVsKTsNCj4gKwkJCQkgICB4ZV93YWxrLT52bWEtPnBhdF9pbmRleCwgeGVf d2Fsay0+dm1hLCBsZXZlbCk7DQo+ICAJCXB0ZSB8PSB4ZV93YWxrLT5kZWZhdWx0X3B0ZTsNCj4g IA0KPiAgCQkvKg0KPiBAQCAtNjY5LDcgKzY2Niw3IEBAIHhlX3B0X3N0YWdlX2JpbmRfZW50cnko c3RydWN0IHhlX3B0dyAqcGFyZW50LCBwZ29mZl90IG9mZnNldCwNCj4gIAkJCXhlX2NoaWxkLT5p c19jb21wYWN0ID0gdHJ1ZTsNCj4gIAkJfQ0KPiAgDQo+IC0JCXB0ZSA9IHhlX3BkZV9lbmNvZGUo eGVfY2hpbGQtPmJvLCAwLCB4ZV93YWxrLT5jYWNoZSkgfCBmbGFnczsNCj4gKwkJcHRlID0geGVf cGRlX2VuY29kZSh4ZV9jaGlsZC0+Ym8sIDAsIHhlX3dhbGstPnZtYS0+cGF0X2luZGV4KSB8IGZs YWdzOw0KPiAgCQlyZXQgPSB4ZV9wdF9pbnNlcnRfZW50cnkoeGVfd2FsaywgeGVfcGFyZW50LCBv ZmZzZXQsIHhlX2NoaWxkLA0KPiAgCQkJCQkgcHRlKTsNCj4gIAl9DQo+IEBAIC03MzAsMTMgKzcy Nyw4IEBAIHhlX3B0X3N0YWdlX2JpbmQoc3RydWN0IHhlX3RpbGUgKnRpbGUsIHN0cnVjdCB4ZV92 bWEgKnZtYSwNCj4gIAkJaWYgKHZtYSAmJiB2bWEtPmdwdXZhLmZsYWdzICYgWEVfVk1BX0FUT01J Q19QVEVfQklUKQ0KPiAgCQkJeGVfd2Fsay5kZWZhdWx0X3B0ZSB8PSBYRV9VU01fUFBHVFRfUFRF X0FFOw0KPiAgCQl4ZV93YWxrLmRtYV9vZmZzZXQgPSB2cmFtX3JlZ2lvbl9ncHVfb2Zmc2V0KGJv LT50dG0ucmVzb3VyY2UpOw0KPiAtCQl4ZV93YWxrLmNhY2hlID0gWEVfQ0FDSEVfV0I7DQo+IC0J fSBlbHNlIHsNCj4gLQkJaWYgKCF4ZV92bWFfaGFzX25vX2JvKHZtYSkgJiYgYm8tPmZsYWdzICYg WEVfQk9fU0NBTk9VVF9CSVQpDQo+IC0JCQl4ZV93YWxrLmNhY2hlID0gWEVfQ0FDSEVfV1Q7DQo+ IC0JCWVsc2UNCj4gLQkJCXhlX3dhbGsuY2FjaGUgPSBYRV9DQUNIRV9XQjsNCj4gIAl9DQo+ICsN Cj4gIAlpZiAoIXhlX3ZtYV9oYXNfbm9fYm8odm1hKSAmJiB4ZV9ib19pc19zdG9sZW4oYm8pKQ0K PiAgCQl4ZV93YWxrLmRtYV9vZmZzZXQgPSB4ZV90dG1fc3RvbGVuX2dwdV9vZmZzZXQoeGVfYm9f ZGV2aWNlKGJvKSk7DQo+ICANCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV9w dC5oIGIvZHJpdmVycy9ncHUvZHJtL3hlL3hlX3B0LmgNCj4gaW5kZXggMDFiZTdhYjA4Zjg3Li4x ZDQzM2E1YTk2YjQgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV9wdC5oDQo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV9wdC5oDQo+IEBAIC00NSwxMCArNDUsOCBAQCBf X3hlX3B0X3VuYmluZF92bWEoc3RydWN0IHhlX3RpbGUgKnRpbGUsIHN0cnVjdCB4ZV92bWEgKnZt YSwgc3RydWN0IHhlX2V4ZWNfcXVldQ0KPiAgDQo+ICBib29sIHhlX3B0X3phcF9wdGVzKHN0cnVj dCB4ZV90aWxlICp0aWxlLCBzdHJ1Y3QgeGVfdm1hICp2bWEpOw0KPiAgDQo+IC11NjQgeGVfcGRl X2VuY29kZShzdHJ1Y3QgeGVfYm8gKmJvLCB1NjQgYm9fb2Zmc2V0LA0KPiAtCQkgIGNvbnN0IGVu dW0geGVfY2FjaGVfbGV2ZWwgbGV2ZWwpOw0KPiArdTY0IHhlX3BkZV9lbmNvZGUoc3RydWN0IHhl X2JvICpibywgdTY0IGJvX29mZnNldCwgdTMyIHBhdF9pbmRleCk7DQo+ICANCj4gLXU2NCB4ZV9w dGVfZW5jb2RlKHN0cnVjdCB4ZV9ibyAqYm8sIHU2NCBvZmZzZXQsIGVudW0geGVfY2FjaGVfbGV2 ZWwgY2FjaGUsDQo+IC0JCSAgdTMyIHB0X2xldmVsKTsNCj4gK3U2NCB4ZV9wdGVfZW5jb2RlKHN0 cnVjdCB4ZV9ibyAqYm8sIHU2NCBvZmZzZXQsIHUzMiBwYXRfaW5kZXgsIHUzMiBwdF9sZXZlbCk7 DQo+ICANCj4gICNlbmRpZg0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3hlL3hlX3Zt LmMgYi9kcml2ZXJzL2dwdS9kcm0veGUveGVfdm0uYw0KPiBpbmRleCA3ZWVlZWQwNDExZjMuLjM0 NjAzYTdlODRiMCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3hlL3hlX3ZtLmMNCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL3hlL3hlX3ZtLmMNCj4gQEAgLTYsNiArNiw3IEBADQo+ICAj aW5jbHVkZSAieGVfdm0uaCINCj4gIA0KPiAgI2luY2x1ZGUgPGxpbnV4L2RtYS1mZW5jZS1hcnJh eS5oPg0KPiArI2luY2x1ZGUgPGxpbnV4L25vc3BlYy5oPg0KPiAgDQo+ICAjaW5jbHVkZSA8ZHJt L2RybV9wcmludC5oPg0KPiAgI2luY2x1ZGUgPGRybS90dG0vdHRtX2V4ZWNidWZfdXRpbC5oPg0K PiBAQCAtODc0LDcgKzg3NSw4IEBAIHN0YXRpYyBzdHJ1Y3QgeGVfdm1hICp4ZV92bWFfY3JlYXRl KHN0cnVjdCB4ZV92bSAqdm0sDQo+ICAJCQkJICAgIHU2NCBzdGFydCwgdTY0IGVuZCwNCj4gIAkJ CQkgICAgYm9vbCByZWFkX29ubHksDQo+ICAJCQkJICAgIGJvb2wgaXNfbnVsbCwNCj4gLQkJCQkg ICAgdTggdGlsZV9tYXNrKQ0KPiArCQkJCSAgICB1OCB0aWxlX21hc2ssDQo+ICsJCQkJICAgIHUz MiBwYXRfaW5kZXgpDQo+ICB7DQo+ICAJc3RydWN0IHhlX3ZtYSAqdm1hOw0KPiAgCXN0cnVjdCB4 ZV90aWxlICp0aWxlOw0KPiBAQCAtOTEzLDYgKzkxNSw4IEBAIHN0YXRpYyBzdHJ1Y3QgeGVfdm1h ICp4ZV92bWFfY3JlYXRlKHN0cnVjdCB4ZV92bSAqdm0sDQo+ICAJCQl2bWEtPnRpbGVfbWFzayB8 PSAweDEgPDwgaWQ7DQo+ICAJfQ0KPiAgDQo+ICsJdm1hLT5wYXRfaW5kZXggPSBwYXRfaW5kZXg7 DQo+ICsNCj4gIAlpZiAodm0tPnhlLT5pbmZvLnBsYXRmb3JtID09IFhFX1BWQykNCj4gIAkJdm1h LT5ncHV2YS5mbGFncyB8PSBYRV9WTUFfQVRPTUlDX1BURV9CSVQ7DQo+ICANCj4gQEAgLTExOTQs MTAgKzExOTgsOCBAQCBzdGF0aWMgdm9pZCB4ZV92bWFfb3Bfd29ya19mdW5jKHN0cnVjdCB3b3Jr X3N0cnVjdCAqdyk7DQo+ICBzdGF0aWMgdm9pZCB2bV9kZXN0cm95X3dvcmtfZnVuYyhzdHJ1Y3Qg d29ya19zdHJ1Y3QgKncpOw0KPiAgDQo+ICBzdGF0aWMgdTY0IHhlbHBfcHBndHRfcGRlX2VuY29k ZV9wYXQoc3RydWN0IHhlX2RldmljZSAqeGUsIHU2NCBwZGVfcGF0LA0KPiAtCQkJCQkJZW51bSB4 ZV9jYWNoZV9sZXZlbCBjYWNoZSkNCj4gKwkJCQkgICAgIHUzMiBwYXRfaW5kZXgpDQo+ICB7DQo+ IC0JdTMyIHBhdF9pbmRleCA9IHhlX3BhdF9nZXRfaW5kZXgoeGUsIGNhY2hlKTsNCj4gLQ0KPiAg CXBkZV9wYXQgJj0gfihYRUxQX1BERV9QQVRfTUFTSyk7DQo+ICANCj4gIAlpZiAocGF0X2luZGV4 ICYgQklUKDApKQ0KPiBAQCAtMTIxMywxMCArMTIxNSw4IEBAIHN0YXRpYyB1NjQgeGVscF9wcGd0 dF9wZGVfZW5jb2RlX3BhdChzdHJ1Y3QgeGVfZGV2aWNlICp4ZSwgdTY0IHBkZV9wYXQsDQo+ICB9 DQo+ICANCj4gIHN0YXRpYyB1NjQgeGVscF9wcGd0dF9wdGVfZW5jb2RlX3BhdChzdHJ1Y3QgeGVf ZGV2aWNlICp4ZSwgdTY0IHB0ZV9wYXQsDQo+IC0JCQkJCQllbnVtIHhlX2NhY2hlX2xldmVsIGNh Y2hlKQ0KPiArCQkJCSAgICAgdTMyIHBhdF9pbmRleCkNCj4gIHsNCj4gLQl1MzIgcGF0X2luZGV4 ID0geGVfcGF0X2dldF9pbmRleCh4ZSwgY2FjaGUpOw0KPiAtDQo+ICAJcHRlX3BhdCAmPSB+KFhF TFBfUFRFX1BBVF9NQVNLKTsNCj4gIA0KPiAgCWlmIChwYXRfaW5kZXggJiBCSVQoMCkpDQo+IEBA IC0xNjIyLDcgKzE2MjIsNyBAQCBzdHJ1Y3QgeGVfdm0gKnhlX3ZtX2xvb2t1cChzdHJ1Y3QgeGVf ZmlsZSAqeGVmLCB1MzIgaWQpDQo+ICB1NjQgeGVfdm1fcGRwNF9kZXNjcmlwdG9yKHN0cnVjdCB4 ZV92bSAqdm0sIHN0cnVjdCB4ZV90aWxlICp0aWxlKQ0KPiAgew0KPiAgCXJldHVybiB4ZV9wZGVf ZW5jb2RlKHZtLT5wdF9yb290W3RpbGUtPmlkXS0+Ym8sIDAsDQo+IC0JCQkgICAgIFhFX0NBQ0hF X1dCKTsNCj4gKwkJCSAgICAgeGVfcGF0X2dldF9pbmRleCh2bS0+eGUsIFhFX0NBQ0hFX1dCKSk7 DQo+ICB9DQo+ICANCj4gIHN0YXRpYyBzdHJ1Y3QgZG1hX2ZlbmNlICoNCj4gQEAgLTIzMTEsNyAr MjMxMSw3IEBAIHN0YXRpYyB2b2lkIHByaW50X29wKHN0cnVjdCB4ZV9kZXZpY2UgKnhlLCBzdHJ1 Y3QgZHJtX2dwdXZhX29wICpvcCkNCj4gIHN0YXRpYyBzdHJ1Y3QgZHJtX2dwdXZhX29wcyAqDQo+ ICB2bV9iaW5kX2lvY3RsX29wc19jcmVhdGUoc3RydWN0IHhlX3ZtICp2bSwgc3RydWN0IHhlX2Jv ICpibywNCj4gIAkJCSB1NjQgYm9fb2Zmc2V0X29yX3VzZXJwdHIsIHU2NCBhZGRyLCB1NjQgcmFu Z2UsDQo+IC0JCQkgdTMyIG9wZXJhdGlvbiwgdTggdGlsZV9tYXNrLCB1MzIgcmVnaW9uKQ0KPiAr CQkJIHUzMiBvcGVyYXRpb24sIHU4IHRpbGVfbWFzaywgdTMyIHJlZ2lvbiwgdTMyIHBhdF9pbmRl eCkNCj4gIHsNCj4gIAlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiA9IGJvID8gJmJvLT50dG0u YmFzZSA6IE5VTEw7DQo+ICAJc3RydWN0IHd3X2FjcXVpcmVfY3R4IHd3Ow0KPiBAQCAtMjMzOSw2 ICsyMzM5LDcgQEAgdm1fYmluZF9pb2N0bF9vcHNfY3JlYXRlKHN0cnVjdCB4ZV92bSAqdm0sIHN0 cnVjdCB4ZV9ibyAqYm8sDQo+ICAJCQlzdHJ1Y3QgeGVfdm1hX29wICpvcCA9IGdwdXZhX29wX3Rv X3ZtYV9vcChfX29wKTsNCj4gIA0KPiAgCQkJb3AtPnRpbGVfbWFzayA9IHRpbGVfbWFzazsNCj4g KwkJCW9wLT5wYXRfaW5kZXggPSBwYXRfaW5kZXg7DQo+ICAJCQlvcC0+bWFwLmltbWVkaWF0ZSA9 DQo+ICAJCQkJb3BlcmF0aW9uICYgWEVfVk1fQklORF9GTEFHX0lNTUVESUFURTsNCj4gIAkJCW9w LT5tYXAucmVhZF9vbmx5ID0NCj4gQEAgLTIzNjYsNiArMjM2Nyw3IEBAIHZtX2JpbmRfaW9jdGxf b3BzX2NyZWF0ZShzdHJ1Y3QgeGVfdm0gKnZtLCBzdHJ1Y3QgeGVfYm8gKmJvLA0KPiAgCQkJc3Ry dWN0IHhlX3ZtYV9vcCAqb3AgPSBncHV2YV9vcF90b192bWFfb3AoX19vcCk7DQo+ICANCj4gIAkJ CW9wLT50aWxlX21hc2sgPSB0aWxlX21hc2s7DQo+ICsJCQlvcC0+cGF0X2luZGV4ID0gcGF0X2lu ZGV4Ow0KPiAgCQkJb3AtPnByZWZldGNoLnJlZ2lvbiA9IHJlZ2lvbjsNCj4gIAkJfQ0KPiAgCQli cmVhazsNCj4gQEAgLTI0MDgsNyArMjQxMCw4IEBAIHZtX2JpbmRfaW9jdGxfb3BzX2NyZWF0ZShz dHJ1Y3QgeGVfdm0gKnZtLCBzdHJ1Y3QgeGVfYm8gKmJvLA0KPiAgfQ0KPiAgDQo+ICBzdGF0aWMg c3RydWN0IHhlX3ZtYSAqbmV3X3ZtYShzdHJ1Y3QgeGVfdm0gKnZtLCBzdHJ1Y3QgZHJtX2dwdXZh X29wX21hcCAqb3AsDQo+IC0JCQkgICAgICB1OCB0aWxlX21hc2ssIGJvb2wgcmVhZF9vbmx5LCBi b29sIGlzX251bGwpDQo+ICsJCQkgICAgICB1OCB0aWxlX21hc2ssIGJvb2wgcmVhZF9vbmx5LCBi b29sIGlzX251bGwsDQo+ICsJCQkgICAgICB1MzIgcGF0X2luZGV4KQ0KPiAgew0KPiAgCXN0cnVj dCB4ZV9ibyAqYm8gPSBvcC0+Z2VtLm9iaiA/IGdlbV90b194ZV9ibyhvcC0+Z2VtLm9iaikgOiBO VUxMOw0KPiAgCXN0cnVjdCB4ZV92bWEgKnZtYTsNCj4gQEAgLTI0MjUsNyArMjQyOCw3IEBAIHN0 YXRpYyBzdHJ1Y3QgeGVfdm1hICpuZXdfdm1hKHN0cnVjdCB4ZV92bSAqdm0sIHN0cnVjdCBkcm1f Z3B1dmFfb3BfbWFwICpvcCwNCj4gIAl2bWEgPSB4ZV92bWFfY3JlYXRlKHZtLCBibywgb3AtPmdl bS5vZmZzZXQsDQo+ICAJCQkgICAgb3AtPnZhLmFkZHIsIG9wLT52YS5hZGRyICsNCj4gIAkJCSAg ICBvcC0+dmEucmFuZ2UgLSAxLCByZWFkX29ubHksIGlzX251bGwsDQo+IC0JCQkgICAgdGlsZV9t YXNrKTsNCj4gKwkJCSAgICB0aWxlX21hc2ssIHBhdF9pbmRleCk7DQo+ICAJaWYgKGJvKQ0KPiAg CQl4ZV9ib191bmxvY2soYm8sICZ3dyk7DQo+ICANCj4gQEAgLTI1MzksNyArMjU0Miw3IEBAIHN0 YXRpYyBpbnQgdm1fYmluZF9pb2N0bF9vcHNfcGFyc2Uoc3RydWN0IHhlX3ZtICp2bSwgc3RydWN0 IHhlX2V4ZWNfcXVldWUgKnEsDQo+ICANCj4gIAkJCQl2bWEgPSBuZXdfdm1hKHZtLCAmb3AtPmJh c2UubWFwLA0KPiAgCQkJCQkgICAgICBvcC0+dGlsZV9tYXNrLCBvcC0+bWFwLnJlYWRfb25seSwN Cj4gLQkJCQkJICAgICAgb3AtPm1hcC5pc19udWxsKTsNCj4gKwkJCQkJICAgICAgb3AtPm1hcC5p c19udWxsLCBvcC0+cGF0X2luZGV4KTsNCj4gIAkJCQlpZiAoSVNfRVJSKHZtYSkpIHsNCj4gIAkJ CQkJZXJyID0gUFRSX0VSUih2bWEpOw0KPiAgCQkJCQlnb3RvIGZyZWVfZmVuY2U7DQo+IEBAIC0y NTY3LDcgKzI1NzAsNyBAQCBzdGF0aWMgaW50IHZtX2JpbmRfaW9jdGxfb3BzX3BhcnNlKHN0cnVj dCB4ZV92bSAqdm0sIHN0cnVjdCB4ZV9leGVjX3F1ZXVlICpxLA0KPiAgDQo+ICAJCQkJCXZtYSA9 IG5ld192bWEodm0sIG9wLT5iYXNlLnJlbWFwLnByZXYsDQo+ICAJCQkJCQkgICAgICBvcC0+dGls ZV9tYXNrLCByZWFkX29ubHksDQo+IC0JCQkJCQkgICAgICBpc19udWxsKTsNCj4gKwkJCQkJCSAg ICAgIGlzX251bGwsIG9wLT5wYXRfaW5kZXgpOw0KPiAgCQkJCQlpZiAoSVNfRVJSKHZtYSkpIHsN Cj4gIAkJCQkJCWVyciA9IFBUUl9FUlIodm1hKTsNCj4gIAkJCQkJCWdvdG8gZnJlZV9mZW5jZTsN Cj4gQEAgLTI2MDMsNyArMjYwNiw3IEBAIHN0YXRpYyBpbnQgdm1fYmluZF9pb2N0bF9vcHNfcGFy c2Uoc3RydWN0IHhlX3ZtICp2bSwgc3RydWN0IHhlX2V4ZWNfcXVldWUgKnEsDQo+ICANCj4gIAkJ CQkJdm1hID0gbmV3X3ZtYSh2bSwgb3AtPmJhc2UucmVtYXAubmV4dCwNCj4gIAkJCQkJCSAgICAg IG9wLT50aWxlX21hc2ssIHJlYWRfb25seSwNCj4gLQkJCQkJCSAgICAgIGlzX251bGwpOw0KPiAr CQkJCQkJICAgICAgaXNfbnVsbCwgb3AtPnBhdF9pbmRleCk7DQo+ICAJCQkJCWlmIChJU19FUlIo dm1hKSkgew0KPiAgCQkJCQkJZXJyID0gUFRSX0VSUih2bWEpOw0KPiAgCQkJCQkJZ290byBmcmVl X2ZlbmNlOw0KPiBAQCAtMzE1OCw4ICszMTYxLDE0IEBAIHN0YXRpYyBpbnQgdm1fYmluZF9pb2N0 bF9jaGVja19hcmdzKHN0cnVjdCB4ZV9kZXZpY2UgKnhlLA0KPiAgCQl1MzIgb2JqID0gKCpiaW5k X29wcylbaV0ub2JqOw0KPiAgCQl1NjQgb2JqX29mZnNldCA9ICgqYmluZF9vcHMpW2ldLm9ial9v ZmZzZXQ7DQo+ICAJCXUzMiByZWdpb24gPSAoKmJpbmRfb3BzKVtpXS5yZWdpb247DQo+ICsJCXUz MiBwYXRfaW5kZXggPSAoKmJpbmRfb3BzKVtpXS5wYXRfaW5kZXg7DQo+ICAJCWJvb2wgaXNfbnVs bCA9IG9wICYgWEVfVk1fQklORF9GTEFHX05VTEw7DQo+ICANCj4gKwkJaWYgKFhFX0lPQ1RMX0RC Ryh4ZSwgcGF0X2luZGV4ID49IHhlLT5pbmZvLnBhdF90YWJsZV9uX2VudHJpZXMpKSB7DQo+ICsJ CQllcnIgPSAtRUlOVkFMOw0KPiArCQkJZ290byBmcmVlX2JpbmRfb3BzOw0KPiArCQl9DQo+ICsN Cj4gIAkJaWYgKGkgPT0gMCkgew0KPiAgCQkJKmFzeW5jID0gISEob3AgJiBYRV9WTV9CSU5EX0ZM QUdfQVNZTkMpOw0KPiAgCQl9IGVsc2UgaWYgKFhFX0lPQ1RMX0RCRyh4ZSwgISphc3luYykgfHwN Cj4gQEAgLTMzNDYsOCArMzM1NSwyNSBAQCBpbnQgeGVfdm1fYmluZF9pb2N0bChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpDQo+ICAJCXN0 cnVjdCBkcm1fZ2VtX29iamVjdCAqZ2VtX29iajsNCj4gIAkJdTY0IHJhbmdlID0gYmluZF9vcHNb aV0ucmFuZ2U7DQo+ICAJCXU2NCBhZGRyID0gYmluZF9vcHNbaV0uYWRkcjsNCj4gKwkJdTMyIG9w ID0gYmluZF9vcHNbaV0ub3A7DQo+ICAJCXUzMiBvYmogPSBiaW5kX29wc1tpXS5vYmo7DQo+ICAJ CXU2NCBvYmpfb2Zmc2V0ID0gYmluZF9vcHNbaV0ub2JqX29mZnNldDsNCj4gKwkJdTMyIHBhdF9p bmRleCA9IGJpbmRfb3BzW2ldLnBhdF9pbmRleDsNCj4gKwkJdTE2IGNvaF9tb2RlOw0KPiArDQo+ ICsJCXBhdF9pbmRleCA9IGFycmF5X2luZGV4X25vc3BlYyhwYXRfaW5kZXgsDQo+ICsJCQkJCSAg ICAgICB4ZS0+aW5mby5wYXRfdGFibGVfbl9lbnRyaWVzKTsNCj4gKwkJY29oX21vZGUgPSB4ZV9w YXRfaW5kZXhfZ2V0X2NvaF9tb2RlKHhlLCBwYXRfaW5kZXgpOw0KPiArCQlpZiAoWEVfSU9DVExf REJHKHhlLCAhY29oX21vZGUpKSB7DQo+ICsJCQllcnIgPSAtRUlOVkFMOw0KPiArCQkJZ290byBw dXRfb2JqOw0KPiArCQl9DQoNCkluIG15IG9waW5pb24gdGhpcyBjaGVjayBiZWxvbmdzIHRvIHZt X2JpbmRfaW9jdGxfY2hlY2tfYXJncygpLg0KDQo+ICsNCj4gKwkJaWYgKFhFX0lPQ1RMX0RCRyh4 ZSwgVk1fQklORF9PUChvcCkgPT0gWEVfVk1fQklORF9PUF9NQVBfVVNFUlBUUiAmJg0KPiArCQkJ CSBjb2hfbW9kZSA9PSBYRV9HRU1fQ09IRVJFTkNZX05PTkUpKSB7DQo+ICsJCQllcnIgPSAtRUlO VkFMOw0KPiArCQkJZ290byBwdXRfb2JqOw0KPiArCQl9DQoNClNhbWUgZm9yIHRoaXMgb25lLg0K DQo+ICANCj4gIAkJaWYgKCFvYmopDQo+ICAJCQljb250aW51ZTsNCj4gQEAgLTMzNzUsNiArMzQw MSwyMiBAQCBpbnQgeGVfdm1fYmluZF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lk ICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpDQo+ICAJCQkJZ290byBwdXRfb2JqOw0KPiAg CQkJfQ0KPiAgCQl9DQo+ICsNCj4gKwkJaWYgKGJvc1tpXS0+Y29oX21vZGUpIHsNCj4gKwkJCWlm IChYRV9JT0NUTF9EQkcoeGUsIGJvc1tpXS0+Y29oX21vZGUgIT0gY29oX21vZGUpKSB7DQo+ICsJ CQkJZXJyID0gLUVJTlZBTDsNCj4gKwkJCQlnb3RvIHB1dF9vYmo7DQo+ICsJCQl9DQo+ICsJCX0g ZWxzZSBpZiAoWEVfSU9DVExfREJHKHhlLCBjb2hfbW9kZSA9PSBYRV9HRU1fQ09IRVJFTkNZX05P TkUpKSB7DQo+ICsJCQkvKg0KPiArCQkJICogSW1wb3J0ZWQgZG1hLWJ1ZiBmcm9tIGEgZGlmZmVy ZW50IGRldmljZSBzaG91bGQNCj4gKwkJCSAqIHJlcXVpcmUgMXdheSBvciAyd2F5IGNvaGVyZW5j eSBzaW5jZSB3ZSBkb24ndCBrbm93DQo+ICsJCQkgKiBob3cgaXQgd2FzIG1hcHBlZCBvbiBDUFUu IEp1c3QgYXNzdW1lIGlzIGl0DQo+ICsJCQkgKiBwb3RlbnRpYWxseSBjYWNoZWQgb24gQ1BVIHNp ZGUuDQo+ICsJCQkgKi8NCj4gKwkJCWVyciA9IC1FSU5WQUw7DQo+ICsJCQlnb3RvIHB1dF9vYmo7 DQo+ICsJCX0NCj4gIAl9DQo+ICANCj4gIAlpZiAoYXJncy0+bnVtX3N5bmNzKSB7DQo+IEBAIC0z NDEyLDEwICszNDU0LDExIEBAIGludCB4ZV92bV9iaW5kX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkNCj4gIAkJdTY0IG9ial9v ZmZzZXQgPSBiaW5kX29wc1tpXS5vYmpfb2Zmc2V0Ow0KPiAgCQl1OCB0aWxlX21hc2sgPSBiaW5k X29wc1tpXS50aWxlX21hc2s7DQo+ICAJCXUzMiByZWdpb24gPSBiaW5kX29wc1tpXS5yZWdpb247 DQo+ICsJCXUzMiBwYXRfaW5kZXggPSBiaW5kX29wc1tpXS5wYXRfaW5kZXg7DQo+ICANCj4gIAkJ b3BzW2ldID0gdm1fYmluZF9pb2N0bF9vcHNfY3JlYXRlKHZtLCBib3NbaV0sIG9ial9vZmZzZXQs DQo+ICAJCQkJCQkgIGFkZHIsIHJhbmdlLCBvcCwgdGlsZV9tYXNrLA0KPiAtCQkJCQkJICByZWdp b24pOw0KPiArCQkJCQkJICByZWdpb24sIHBhdF9pbmRleCk7DQo+ICAJCWlmIChJU19FUlIob3Bz W2ldKSkgew0KPiAgCQkJZXJyID0gUFRSX0VSUihvcHNbaV0pOw0KPiAgCQkJb3BzW2ldID0gTlVM TDsNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV92bV90eXBlcy5oIGIvZHJp dmVycy9ncHUvZHJtL3hlL3hlX3ZtX3R5cGVzLmgNCj4gaW5kZXggODNhMWY4N2I2NTM3Li41MDg2 NzllZDNjNzQgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV92bV90eXBlcy5o DQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV92bV90eXBlcy5oDQo+IEBAIC0xMTEsNiAr MTExLDExIEBAIHN0cnVjdCB4ZV92bWEgew0KPiAgCSAqLw0KPiAgCXU4IHRpbGVfcHJlc2VudDsN Cj4gIA0KPiArCS8qKg0KPiArCSAqIEBwYXRfaW5kZXg6IFRoZSBwYXQgaW5kZXggdG8gdXNlIHdo ZW4gZW5jb2RpbmcgdGhlIFBURXMgZm9yIHRoaXMgdm1hLg0KPiArCSAqLw0KPiArCXUzMiBwYXRf aW5kZXg7DQoNCnUzMiBpcyBvdmVya2lsbCBmb3IgcGF0X2luZGV4Lg0KDQo+ICsNCj4gIAlzdHJ1 Y3Qgew0KPiAgCQlzdHJ1Y3QgbGlzdF9oZWFkIHJlYmluZF9saW5rOw0KPiAgCX0gbm90aWZpZXI7 DQo+IEBAIC0zMzgsMTAgKzM0Myw4IEBAIHN0cnVjdCB4ZV92bSB7DQo+ICAJYm9vbCBiYXRjaF9p bnZhbGlkYXRlX3RsYjsNCj4gIA0KPiAgCXN0cnVjdCB7DQo+IC0JCXU2NCAoKnB0ZV9lbmNvZGUp KHN0cnVjdCB4ZV9kZXZpY2UgKnhlLCB1NjQgcHRlX3BhdCwNCj4gLQkJCQkJCWVudW0geGVfY2Fj aGVfbGV2ZWwgY2FjaGUpOw0KPiAtCQl1NjQgKCpwZGVfZW5jb2RlKShzdHJ1Y3QgeGVfZGV2aWNl ICp4ZSwgdTY0IHBkZV9wYXQsDQo+IC0JCQkJCQllbnVtIHhlX2NhY2hlX2xldmVsIGNhY2hlKTsN Cj4gKwkJdTY0ICgqcHRlX2VuY29kZSkoc3RydWN0IHhlX2RldmljZSAqeGUsIHU2NCBwdGVfcGF0 LCB1MzIgcGF0X2luZGV4KTsNCj4gKwkJdTY0ICgqcGRlX2VuY29kZSkoc3RydWN0IHhlX2Rldmlj ZSAqeGUsIHU2NCBwZGVfcGF0LCB1MzIgcGF0X2luZGV4KTsNCj4gIAl9IHBhdF9lbmNvZGU7DQo+ ICB9Ow0KPiAgDQo+IEBAIC00MTcsNiArNDIwLDggQEAgc3RydWN0IHhlX3ZtYV9vcCB7DQo+ICAJ c3RydWN0IGFzeW5jX29wX2ZlbmNlICpmZW5jZTsNCj4gIAkvKiogQHRpbGVfbWFzazogZ3QgbWFz ayBmb3IgdGhpcyBvcGVyYXRpb24gKi8NCj4gIAl1OCB0aWxlX21hc2s7DQo+ICsJLyoqIEBwYXRf aW5kZXg6IFRoZSBwYXQgaW5kZXggdG8gdXNlIGZvciB0aGlzIG9wZXJhdGlvbi4gKi8NCj4gKwl1 MzIgcGF0X2luZGV4Ow0KPiAgCS8qKiBAZmxhZ3M6IG9wZXJhdGlvbiBmbGFncyAqLw0KPiAgCWVu dW0geGVfdm1hX29wX2ZsYWdzIGZsYWdzOw0KPiAgDQo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3Vh cGkvZHJtL3hlX2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS94ZV9kcm0uaA0KPiBpbmRleCA2NGJj NjZkNGI1NTAuLjBjMTViNmYzMjQ0NyAxMDA2NDQNCj4gLS0tIGEvaW5jbHVkZS91YXBpL2RybS94 ZV9kcm0uaA0KPiArKysgYi9pbmNsdWRlL3VhcGkvZHJtL3hlX2RybS5oDQo+IEBAIC02MDAsOCAr NjAwLDQ1IEBAIHN0cnVjdCBkcm1feGVfdm1fYmluZF9vcCB7DQo+ICAJICovDQo+ICAJX191MzIg b2JqOw0KPiAgDQo+IC0JLyoqIEBwYWQ6IE1CWiAqLw0KPiAtCV9fdTMyIHBhZDsNCj4gKwkvKioN Cj4gKwkgKiBAcGF0X2luZGV4OiBUaGUgcGxhdGZvcm0gZGVmaW5lZCBAcGF0X2luZGV4IHRvIHVz ZSBmb3IgdGhpcyBtYXBwaW5nLg0KPiArCSAqIFRoZSBpbmRleCBiYXNpY2FsbHkgbWFwcyB0byBz b21lIHByZWRlZmluZWQgbWVtb3J5IGF0dHJpYnV0ZXMsDQo+ICsJICogaW5jbHVkaW5nIHRoaW5n cyBsaWtlIGNhY2hpbmcsIGNvaGVyZW5jeSBhbmQgbGlrZWx5IG90aGVyIHN0dWZmIGluDQo+ICsJ ICogdGhlIGZ1dHVyZS4gIFRoZSBleGFjdCBtZWFuaW5nIG9mIHRoZSBwYXRfaW5kZXggaXMgcGxh dGZvcm0gc3BlY2lmaWMNCj4gKwkgKiBhbmQgZGVmaW5lZCBpbiB0aGUgQnNwZWMgYW5kIFBSTXMu ICBXaGVuIHRoZSBLTUQgc2V0cyB1cCB0aGUgYmluZGluZw0KPiArCSAqIHRoZSBpbmRleCBoZXJl IGlzIGVuY29kZWQgaW50byB0aGUgcHBHVFQgUFRFLg0KPiArCSAqDQo+ICsJICogRm9yIGNvaGVy ZW5jeSB0aGUgQHBhdF9pbmRleCBuZWVkcyB0byBtYXRjaCB0aGUNCj4gKwkgKiBkcm1feGVfZ2Vt X2NyZWF0ZS5jb2hfbW9kZSwgc28gZWl0aGVyIFhFX0dFTV9DT0hFUkVOQ1lfTk9ORSwNCj4gKwkg KiBYRV9HRU1fQ09IRVJFTkNZXzFXQVkgb3IgWEVfR0VNX0NPSEVSRU5DWV8yV0FZLiBUaGUgS01E IHdpbGwgZXh0cmFjdA0KPiArCSAqIHRoZSBjb2hlcmVuY3kgbW9kZSBmcm9tIHRoZSBAcGF0X2lu ZGV4IGFuZCByZWplY3QgaWYgdGhlcmUgaXMgYQ0KPiArCSAqIG1pc21hdGNoIChzZWUgbm90ZSBi ZWxvdyBmb3IgcHJlLU1UTCBwbGF0Zm9ybXMpLg0KPiArCSAqDQo+ICsJICogTm90ZTogT24gcHJl LU1UTCBwbGF0Zm9ybXMgdGhlcmUgaXMgb25seSBhIGNhY2hpbmcgbW9kZSBhbmQgbm8NCj4gKwkg KiBleHBsaWNpdCBjb2hlcmVuY3kgbW9kZSwgYnV0IG9uIHN1Y2ggaGFyZHdhcmUgdGhlcmUgaXMg YWx3YXlzIGENCj4gKwkgKiBzaGFyZWQtTExDIChvciBpcyBkZ3B1KSBzbyBhbGwgR1QgbWVtb3J5 IGFjY2Vzc2VzIGFyZSBjb2hlcmVudCB3aXRoDQo+ICsJICogQ1BVIGNhY2hlcyBldmVuIHdpdGgg dGhlIGNhY2hpbmcgbW9kZSBzZXQgYXMgdW5jYWNoZWQuICBJdCdzIG9ubHkgdGhlDQo+ICsJICog ZGlzcGxheSBlbmdpbmUgdGhhdCBpcyBpbmNvaGVyZW50IChvbiBkZ3B1IGl0IG11c3QgYmUgaW4g VlJBTSB3aGljaA0KPiArCSAqIGlzIGFsd2F5cyBtYXBwZWQgYXMgV0Mgb24gdGhlIENQVSkuIEhv d2V2ZXIgdG8ga2VlcCB0aGUgdWFwaSBzb21ld2hhdA0KPiArCSAqIGNvbnNpc3RlbnQgd2l0aCBu ZXdlciBwbGF0Zm9ybXMgdGhlIEtNRCBncm91cHMgdGhlIGRpZmZlcmVudCBjYWNoZQ0KPiArCSAq IGxldmVscyBpbnRvIHRoZSBmb2xsb3dpbmcgY29oZXJlbmN5IGJ1Y2tldHMgb24gYWxsIHByZS1N VEwgcGxhdGZvcm1zOg0KPiArCSAqDQo+ICsJICoJcHBHVFQgVUMgLT4gWEVfR0VNX0NPSEVSRU5D WV9OT05FDQo+ICsJICoJcHBHVFQgV0MgLT4gWEVfR0VNX0NPSEVSRU5DWV9OT05FDQo+ICsJICoJ cHBHVFQgV1QgLT4gWEVfR0VNX0NPSEVSRU5DWV9OT05FDQo+ICsJICoJcHBHVFQgV0IgLT4gWEVf R0VNX0NPSEVSRU5DWV8yV0FZDQo+ICsJICoNCj4gKwkgKiBJbiBwcmFjdGljZSBVQy9XQy9XVCBz aG91bGQgb25seSBldmVyIHVzZWQgZm9yIHNjYW5vdXQgc3VyZmFjZXMgb24NCj4gKwkgKiBzdWNo IHBsYXRmb3JtcyBzaW5jZSBpdCBpcyBvbmx5IHRoZSBkaXNwbGF5IGVuZ2luZSB0aGF0IGlzIGFj dHVhbGx5DQo+ICsJICogaW5jb2hlcmVudC4gRXZlcnl0aGluZyBlbHNlIHNob3VsZCB0eXBpY2Fs bHkgdXNlIFdCIGdpdmVuIHRoYXQgd2UNCj4gKwkgKiBoYXZlIGEgc2hhcmVkLUxMQy4gIE9uIE1U TCsgdGhpcyBjb21wbGV0ZWx5IGNoYW5nZXMgKGFsc28gcG90ZW50aWFsbHkNCj4gKwkgKiBubyBz aGFyZWQtTExDKSBhbmQgdGhlIEhXIGRlZmluZXMgdGhlIGNvaGVyZW5jeSBtb2RlIGFzIHBhcnQg b2YgdGhlDQo+ICsJICogQHBhdF9pbmRleC4NCj4gKwkgKg0KPiArCSAqIE5vdGU6IEZvciB1c2Vy cHRyIGFuZCBleHRlcm5hbGx5IGltcG9ydGVkIGRtYS1idWYgdGhlIGtlcm5lbCBleHBlY3RzDQo+ ICsJICogZWl0aGVyIDFXQVkgb3IgMldBWSBmb3IgdGhlIEBwYXRfaW5kZXguDQo+ICsJICovDQo+ ICsJX191MzIgcGF0X2luZGV4Ow0KPiAgDQo+ICAJdW5pb24gew0KPiAgCQkvKioNCg0K