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 CED3CC433EF for ; Wed, 1 Dec 2021 10:05:58 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 605836E975; Wed, 1 Dec 2021 10:05:58 +0000 (UTC) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 901886E975 for ; Wed, 1 Dec 2021 10:05:57 +0000 (UTC) X-IronPort-AV: E=McAfee;i="6200,9189,10184"; a="297229178" X-IronPort-AV: E=Sophos;i="5.87,278,1631602800"; d="scan'208";a="297229178" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Dec 2021 02:04:25 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.87,278,1631602800"; d="scan'208";a="677205851" Received: from irsmsx601.ger.corp.intel.com ([163.33.146.7]) by orsmga005.jf.intel.com with ESMTP; 01 Dec 2021 02:04:24 -0800 Received: from irsmsx605.ger.corp.intel.com (163.33.146.138) by irsmsx601.ger.corp.intel.com (163.33.146.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Wed, 1 Dec 2021 10:04:23 +0000 Received: from irsmsx605.ger.corp.intel.com ([163.33.146.138]) by IRSMSX605.ger.corp.intel.com ([163.33.146.138]) with mapi id 15.01.2308.020; Wed, 1 Dec 2021 10:04:23 +0000 From: "Kahola, Mika" To: Ville Syrjala , "intel-gfx@lists.freedesktop.org" Thread-Topic: [Intel-gfx] [PATCH 08/20] drm/i915/fbc: Track FBC usage per-plane Thread-Index: AQHX4Ses51E64EANCk+MDUN+52cY2qwdc0cA Date: Wed, 1 Dec 2021 10:04:23 +0000 Message-ID: <8621fcb04e8743468a75398f13831b9c@intel.com> References: <20211124113652.22090-1-ville.syrjala@linux.intel.com> <20211124113652.22090-9-ville.syrjala@linux.intel.com> In-Reply-To: <20211124113652.22090-9-ville.syrjala@linux.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [163.33.253.164] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [Intel-gfx] [PATCH 08/20] drm/i915/fbc: Track FBC usage per-plane X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBJbnRlbC1nZnggPGludGVsLWdm eC1ib3VuY2VzQGxpc3RzLmZyZWVkZXNrdG9wLm9yZz4gT24gQmVoYWxmIE9mIFZpbGxlDQo+IFN5 cmphbGENCj4gU2VudDogV2VkbmVzZGF5LCBOb3ZlbWJlciAyNCwgMjAyMSAxOjM3IFBNDQo+IFRv OiBpbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnDQo+IFN1YmplY3Q6IFtJbnRlbC1nZnhd IFtQQVRDSCAwOC8yMF0gZHJtL2k5MTUvZmJjOiBUcmFjayBGQkMgdXNhZ2UgcGVyLXBsYW5lDQo+ IA0KPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29t Pg0KPiANCj4gSW4gdGhlIGZ1dHVyZSB3ZSBtYXkgaGF2ZSBtdWx0aXBsZSBwbGFuZXMgb24gdGhl IHNhbWUgcGlwZSBjYXBhYmxlIG9mIHVzaW5nDQo+IEZCQy4gUHJlcGFyZSBmb3IgdGhhdCBieSB0 cmFja2luZyBGQkMgdXNhZ2UgcGVyLXBsYW5lIHJhdGhlciB0aGFuIHBlci1jcnRjLg0KPiANCj4g U2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVs LmNvbT4NCg0KUmV2aWV3ZWQtYnk6IE1pa2EgS2Fob2xhIDxtaWthLmthaG9sYUBpbnRlbC5jb20+ DQoNCj4gLS0tDQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2ZiYy5jIHwg MjI0ICsrKysrKysrKysrLS0tLS0tLS0tLS0tDQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oICAgICAgICAgIHwgICAyICstDQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3Ry YWNlLmggICAgICAgIHwgIDE4ICstDQo+ICAzIGZpbGVzIGNoYW5nZWQsIDEyMyBpbnNlcnRpb25z KCspLCAxMjEgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9mYmMuYw0KPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfZmJjLmMNCj4gaW5kZXggZGIzOTBjMjljNjY1Li5jZjdmYzBkZTYwODEgMTAwNjQ0 DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZmJjLmMNCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9mYmMuYw0KPiBAQCAtNTgzLDcg KzU4Myw3IEBAIHN0YXRpYyBib29sIGludGVsX2ZiY19od19pc19hY3RpdmUoc3RydWN0IGludGVs X2ZiYyAqZmJjKQ0KPiANCj4gIHN0YXRpYyB2b2lkIGludGVsX2ZiY19od19hY3RpdmF0ZShzdHJ1 Y3QgaW50ZWxfZmJjICpmYmMpICB7DQo+IC0JdHJhY2VfaW50ZWxfZmJjX2FjdGl2YXRlKGZiYy0+ Y3J0Yyk7DQo+ICsJdHJhY2VfaW50ZWxfZmJjX2FjdGl2YXRlKGZiYy0+cGxhbmUpOw0KPiANCj4g IAlmYmMtPmFjdGl2ZSA9IHRydWU7DQo+ICAJZmJjLT5hY3RpdmF0ZWQgPSB0cnVlOw0KPiBAQCAt NTkzLDcgKzU5Myw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2ZiY19od19hY3RpdmF0ZShzdHJ1Y3Qg aW50ZWxfZmJjICpmYmMpDQo+IA0KPiAgc3RhdGljIHZvaWQgaW50ZWxfZmJjX2h3X2RlYWN0aXZh dGUoc3RydWN0IGludGVsX2ZiYyAqZmJjKSAgew0KPiAtCXRyYWNlX2ludGVsX2ZiY19kZWFjdGl2 YXRlKGZiYy0+Y3J0Yyk7DQo+ICsJdHJhY2VfaW50ZWxfZmJjX2RlYWN0aXZhdGUoZmJjLT5wbGFu ZSk7DQo+IA0KPiAgCWZiYy0+YWN0aXZlID0gZmFsc2U7DQo+IA0KPiBAQCAtNjA3LDcgKzYwNyw3 IEBAIGJvb2wgaW50ZWxfZmJjX2lzX2NvbXByZXNzaW5nKHN0cnVjdCBpbnRlbF9mYmMgKmZiYykN Cj4gDQo+ICBzdGF0aWMgdm9pZCBpbnRlbF9mYmNfbnVrZShzdHJ1Y3QgaW50ZWxfZmJjICpmYmMp ICB7DQo+IC0JdHJhY2VfaW50ZWxfZmJjX251a2UoZmJjLT5jcnRjKTsNCj4gKwl0cmFjZV9pbnRl bF9mYmNfbnVrZShmYmMtPnBsYW5lKTsNCj4gDQo+ICAJZmJjLT5mdW5jcy0+bnVrZShmYmMpOw0K PiAgfQ0KPiBAQCAtMTE1NCw4ICsxMTU0LDcgQEAgc3RhdGljIGJvb2wgaW50ZWxfZmJjX2Nhbl9h Y3RpdmF0ZShzdHJ1Y3QgaW50ZWxfZmJjDQo+ICpmYmMpDQo+ICAJcmV0dXJuIHRydWU7DQo+ICB9 DQo+IA0KPiAtc3RhdGljIHZvaWQgaW50ZWxfZmJjX2dldF9yZWdfcGFyYW1zKHN0cnVjdCBpbnRl bF9mYmMgKmZiYywNCj4gLQkJCQkgICAgIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQ0KPiArc3Rh dGljIHZvaWQgaW50ZWxfZmJjX2dldF9yZWdfcGFyYW1zKHN0cnVjdCBpbnRlbF9mYmMgKmZiYykN Cj4gIHsNCj4gIAljb25zdCBzdHJ1Y3QgaW50ZWxfZmJjX3N0YXRlICpjYWNoZSA9ICZmYmMtPnN0 YXRlX2NhY2hlOw0KPiAgCXN0cnVjdCBpbnRlbF9mYmNfc3RhdGUgKnBhcmFtcyA9ICZmYmMtPnBh cmFtczsgQEAgLTEyMTMsMzAgKzEyMTIsMTkNCj4gQEAgc3RhdGljIGJvb2wgaW50ZWxfZmJjX2Nh bl9mbGlwX251a2Uoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsDQo+ICAJcmV0dXJu IHRydWU7DQo+ICB9DQo+IA0KPiAtYm9vbCBpbnRlbF9mYmNfcHJlX3VwZGF0ZShzdHJ1Y3QgaW50 ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwNCj4gLQkJCSAgc3RydWN0IGludGVsX2NydGMgKmNydGMp DQo+ICtzdGF0aWMgYm9vbCBfX2ludGVsX2ZiY19wcmVfdXBkYXRlKHN0cnVjdCBpbnRlbF9hdG9t aWNfc3RhdGUgKnN0YXRlLA0KPiArCQkJCSAgIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLA0KPiAr CQkJCSAgIHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUpDQo+ICB7DQo+IC0Jc3RydWN0IGludGVs X3BsYW5lICpwbGFuZSA9IHRvX2ludGVsX3BsYW5lKGNydGMtPmJhc2UucHJpbWFyeSk7DQo+IC0J Y29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSA9DQo+IC0JCWludGVs X2F0b21pY19nZXRfbmV3X3BsYW5lX3N0YXRlKHN0YXRlLCBwbGFuZSk7DQo+IC0Jc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsNCj4gKwlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUoc3RhdGUtPmJhc2UuZGV2KTsNCj4g IAlzdHJ1Y3QgaW50ZWxfZmJjICpmYmMgPSBwbGFuZS0+ZmJjOw0KPiAtCWNvbnN0IGNoYXIgKnJl YXNvbiA9ICJ1cGRhdGUgcGVuZGluZyI7DQo+ICAJYm9vbCBuZWVkX3ZibGFua193YWl0ID0gZmFs c2U7DQo+IA0KPiAtCWlmICghZmJjIHx8ICFwbGFuZV9zdGF0ZSkNCj4gLQkJcmV0dXJuIG5lZWRf dmJsYW5rX3dhaXQ7DQo+IC0NCj4gLQltdXRleF9sb2NrKCZmYmMtPmxvY2spOw0KPiAtDQo+IC0J aWYgKGZiYy0+Y3J0YyAhPSBjcnRjKQ0KPiAtCQlnb3RvIHVubG9jazsNCj4gLQ0KPiAgCWludGVs X2ZiY191cGRhdGVfc3RhdGVfY2FjaGUoc3RhdGUsIGNydGMsIHBsYW5lKTsNCj4gIAlmYmMtPmZs aXBfcGVuZGluZyA9IHRydWU7DQo+IA0KPiAgCWlmICghaW50ZWxfZmJjX2Nhbl9mbGlwX251a2Uo c3RhdGUsIGNydGMsIHBsYW5lKSkgew0KPiAtCQlpbnRlbF9mYmNfZGVhY3RpdmF0ZShmYmMsIHJl YXNvbik7DQo+ICsJCWludGVsX2ZiY19kZWFjdGl2YXRlKGZiYywgInVwZGF0ZSBwZW5kaW5nIik7 DQo+IA0KPiAgCQkvKg0KPiAgCQkgKiBEaXNwbGF5IFdBICMxMTk4OiBnbGsrDQo+IEBAIC0xMjU2 LDggKzEyNDQsMzEgQEAgYm9vbCBpbnRlbF9mYmNfcHJlX3VwZGF0ZShzdHJ1Y3QgaW50ZWxfYXRv bWljX3N0YXRlDQo+ICpzdGF0ZSwNCj4gIAkJCW5lZWRfdmJsYW5rX3dhaXQgPSB0cnVlOw0KPiAg CQlmYmMtPmFjdGl2YXRlZCA9IGZhbHNlOw0KPiAgCX0NCj4gLXVubG9jazoNCj4gLQltdXRleF91 bmxvY2soJmZiYy0+bG9jayk7DQo+ICsNCj4gKwlyZXR1cm4gbmVlZF92Ymxhbmtfd2FpdDsNCj4g K30NCj4gKw0KPiArYm9vbCBpbnRlbF9mYmNfcHJlX3VwZGF0ZShzdHJ1Y3QgaW50ZWxfYXRvbWlj X3N0YXRlICpzdGF0ZSwNCj4gKwkJCSAgc3RydWN0IGludGVsX2NydGMgKmNydGMpDQo+ICt7DQo+ ICsJY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZTsNCj4gKwlib29s IG5lZWRfdmJsYW5rX3dhaXQgPSBmYWxzZTsNCj4gKwlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBsYW5l Ow0KPiArCWludCBpOw0KPiArDQo+ICsJZm9yX2VhY2hfbmV3X2ludGVsX3BsYW5lX2luX3N0YXRl KHN0YXRlLCBwbGFuZSwgcGxhbmVfc3RhdGUsIGkpIHsNCj4gKwkJc3RydWN0IGludGVsX2ZiYyAq ZmJjID0gcGxhbmUtPmZiYzsNCj4gKw0KPiArCQlpZiAoIWZiYyB8fCBwbGFuZS0+cGlwZSAhPSBj cnRjLT5waXBlKQ0KPiArCQkJY29udGludWU7DQo+ICsNCj4gKwkJbXV0ZXhfbG9jaygmZmJjLT5s b2NrKTsNCj4gKw0KPiArCQlpZiAoZmJjLT5wbGFuZSA9PSBwbGFuZSkNCj4gKwkJCW5lZWRfdmJs YW5rX3dhaXQgfD0gX19pbnRlbF9mYmNfcHJlX3VwZGF0ZShzdGF0ZSwNCj4gY3J0YywgcGxhbmUp Ow0KPiArDQo+ICsJCW11dGV4X3VubG9jaygmZmJjLT5sb2NrKTsNCj4gKwl9DQo+IA0KPiAgCXJl dHVybiBuZWVkX3ZibGFua193YWl0Ow0KPiAgfQ0KPiBAQCAtMTI2NSwxOCArMTI3NiwxOCBAQCBi b29sIGludGVsX2ZiY19wcmVfdXBkYXRlKHN0cnVjdA0KPiBpbnRlbF9hdG9taWNfc3RhdGUgKnN0 YXRlLCAgc3RhdGljIHZvaWQgX19pbnRlbF9mYmNfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZmJjICpm YmMpDQo+IHsNCj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IGZiYy0+aTkxNTsN Cj4gLQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IGZiYy0+Y3J0YzsNCj4gKwlzdHJ1Y3QgaW50 ZWxfcGxhbmUgKnBsYW5lID0gZmJjLT5wbGFuZTsNCj4gDQo+ICAJZHJtX1dBUk5fT04oJmk5MTUt PmRybSwgIW11dGV4X2lzX2xvY2tlZCgmZmJjLT5sb2NrKSk7DQo+IC0JZHJtX1dBUk5fT04oJmk5 MTUtPmRybSwgIWZiYy0+Y3J0Yyk7DQo+ICsJZHJtX1dBUk5fT04oJmk5MTUtPmRybSwgIWZiYy0+ cGxhbmUpOw0KPiAgCWRybV9XQVJOX09OKCZpOTE1LT5kcm0sIGZiYy0+YWN0aXZlKTsNCj4gDQo+ IC0JZHJtX2RiZ19rbXMoJmk5MTUtPmRybSwgIkRpc2FibGluZyBGQkMgb24gcGlwZSAlY1xuIiwN Cj4gLQkJICAgIHBpcGVfbmFtZShjcnRjLT5waXBlKSk7DQo+ICsJZHJtX2RiZ19rbXMoJmk5MTUt PmRybSwgIkRpc2FibGluZyBGQkMgb24gW1BMQU5FOiVkOiVzXVxuIiwNCj4gKwkJICAgIHBsYW5l LT5iYXNlLmJhc2UuaWQsIHBsYW5lLT5iYXNlLm5hbWUpOw0KPiANCj4gIAlfX2ludGVsX2ZiY19j bGVhbnVwX2NmYihmYmMpOw0KPiANCj4gLQlmYmMtPmNydGMgPSBOVUxMOw0KPiArCWZiYy0+cGxh bmUgPSBOVUxMOw0KPiAgfQ0KPiANCj4gIHN0YXRpYyB2b2lkIF9faW50ZWxfZmJjX3Bvc3RfdXBk YXRlKHN0cnVjdCBpbnRlbF9mYmMgKmZiYykgQEAgLTEzMDQsMjcNCj4gKzEzMTUsMzIgQEAgc3Rh dGljIHZvaWQgX19pbnRlbF9mYmNfcG9zdF91cGRhdGUoc3RydWN0IGludGVsX2ZiYyAqZmJjKSAg dm9pZA0KPiBpbnRlbF9mYmNfcG9zdF91cGRhdGUoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAq c3RhdGUsDQo+ICAJCQkgICBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykNCj4gIHsNCj4gLQlzdHJ1 Y3QgaW50ZWxfcGxhbmUgKnBsYW5lID0gdG9faW50ZWxfcGxhbmUoY3J0Yy0+YmFzZS5wcmltYXJ5 KTsNCj4gLQljb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlID0NCj4g LQkJaW50ZWxfYXRvbWljX2dldF9uZXdfcGxhbmVfc3RhdGUoc3RhdGUsIHBsYW5lKTsNCj4gLQlz dHJ1Y3QgaW50ZWxfZmJjICpmYmMgPSBwbGFuZS0+ZmJjOw0KPiAtDQo+IC0JaWYgKCFmYmMgfHwg IXBsYW5lX3N0YXRlKQ0KPiAtCQlyZXR1cm47DQo+IC0NCj4gLQltdXRleF9sb2NrKCZmYmMtPmxv Y2spOw0KPiAtCWlmIChmYmMtPmNydGMgPT0gY3J0Yykgew0KPiAtCQlmYmMtPmZsaXBfcGVuZGlu ZyA9IGZhbHNlOw0KPiAtCQlpbnRlbF9mYmNfZ2V0X3JlZ19wYXJhbXMoZmJjLCBjcnRjKTsNCj4g LQkJX19pbnRlbF9mYmNfcG9zdF91cGRhdGUoZmJjKTsNCj4gKwljb25zdCBzdHJ1Y3QgaW50ZWxf cGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlOw0KPiArCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmU7 DQo+ICsJaW50IGk7DQo+ICsNCj4gKwlmb3JfZWFjaF9uZXdfaW50ZWxfcGxhbmVfaW5fc3RhdGUo c3RhdGUsIHBsYW5lLCBwbGFuZV9zdGF0ZSwgaSkgew0KPiArCQlzdHJ1Y3QgaW50ZWxfZmJjICpm YmMgPSBwbGFuZS0+ZmJjOw0KPiArDQo+ICsJCWlmICghZmJjIHx8IHBsYW5lLT5waXBlICE9IGNy dGMtPnBpcGUpDQo+ICsJCQljb250aW51ZTsNCj4gKw0KPiArCQltdXRleF9sb2NrKCZmYmMtPmxv Y2spOw0KPiArDQo+ICsJCWlmIChmYmMtPnBsYW5lID09IHBsYW5lKSB7DQo+ICsJCQlmYmMtPmZs aXBfcGVuZGluZyA9IGZhbHNlOw0KPiArCQkJaW50ZWxfZmJjX2dldF9yZWdfcGFyYW1zKGZiYyk7 DQo+ICsJCQlfX2ludGVsX2ZiY19wb3N0X3VwZGF0ZShmYmMpOw0KPiArCQl9DQo+ICsNCj4gKwkJ bXV0ZXhfdW5sb2NrKCZmYmMtPmxvY2spOw0KPiAgCX0NCj4gLQltdXRleF91bmxvY2soJmZiYy0+ bG9jayk7DQo+ICB9DQo+IA0KPiAgc3RhdGljIHVuc2lnbmVkIGludCBpbnRlbF9mYmNfZ2V0X2Zy b250YnVmZmVyX2JpdChzdHJ1Y3QgaW50ZWxfZmJjICpmYmMpICB7DQo+IC0JaWYgKGZiYy0+Y3J0 YykNCj4gLQkJcmV0dXJuIHRvX2ludGVsX3BsYW5lKGZiYy0+Y3J0Yy0+YmFzZS5wcmltYXJ5KS0N Cj4gPmZyb250YnVmZmVyX2JpdDsNCj4gKwlpZiAoZmJjLT5wbGFuZSkNCj4gKwkJcmV0dXJuIGZi Yy0+cGxhbmUtPmZyb250YnVmZmVyX2JpdDsNCj4gIAllbHNlDQo+ICAJCXJldHVybiBmYmMtPnBv c3NpYmxlX2ZyYW1lYnVmZmVyX2JpdHM7ICB9IEBAIC0xMzQ1LDcgKzEzNjEsNw0KPiBAQCB2b2lk IGludGVsX2ZiY19pbnZhbGlkYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LA0KPiAN Cj4gIAlmYmMtPmJ1c3lfYml0cyB8PSBpbnRlbF9mYmNfZ2V0X2Zyb250YnVmZmVyX2JpdChmYmMp ICYgZnJvbnRidWZmZXJfYml0czsNCj4gDQo+IC0JaWYgKGZiYy0+Y3J0YyAmJiBmYmMtPmJ1c3lf Yml0cykNCj4gKwlpZiAoZmJjLT5wbGFuZSAmJiBmYmMtPmJ1c3lfYml0cykNCj4gIAkJaW50ZWxf ZmJjX2RlYWN0aXZhdGUoZmJjLCAiZnJvbnRidWZmZXIgd3JpdGUiKTsNCj4gDQo+ICAJbXV0ZXhf dW5sb2NrKCZmYmMtPmxvY2spOw0KPiBAQCAtMTM2Niw3ICsxMzgyLDcgQEAgdm9pZCBpbnRlbF9m YmNfZmx1c2goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsDQo+ICAJaWYgKG9yaWdpbiA9 PSBPUklHSU5fRkxJUCB8fCBvcmlnaW4gPT0gT1JJR0lOX0NVUlNPUl9VUERBVEUpDQo+ICAJCWdv dG8gb3V0Ow0KPiANCj4gLQlpZiAoIWZiYy0+YnVzeV9iaXRzICYmIGZiYy0+Y3J0YyAmJg0KPiAr CWlmICghZmJjLT5idXN5X2JpdHMgJiYgZmJjLT5wbGFuZSAmJg0KPiAgCSAgICAoZnJvbnRidWZm ZXJfYml0cyAmIGludGVsX2ZiY19nZXRfZnJvbnRidWZmZXJfYml0KGZiYykpKSB7DQo+ICAJCWlm IChmYmMtPmFjdGl2ZSkNCj4gIAkJCWludGVsX2ZiY19udWtlKGZiYyk7DQo+IEBAIC0xMzk1LDQz ICsxNDExLDI0IEBAIGludCBpbnRlbF9mYmNfYXRvbWljX2NoZWNrKHN0cnVjdA0KPiBpbnRlbF9h dG9taWNfc3RhdGUgKnN0YXRlKQ0KPiAgCXJldHVybiAwOw0KPiAgfQ0KPiANCj4gLS8qKg0KPiAt ICogaW50ZWxfZmJjX2VuYWJsZTogdHJpZXMgdG8gZW5hYmxlIEZCQyBvbiB0aGUgQ1JUQw0KPiAt ICogQGNydGM6IHRoZSBDUlRDDQo+IC0gKiBAc3RhdGU6IGNvcnJlc3BvbmRpbmcgJmRybV9jcnRj X3N0YXRlIGZvciBAY3J0Yw0KPiAtICoNCj4gLSAqIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGlmIHRo ZSBnaXZlbiBDUlRDIHdhcyBjaG9zZW4gZm9yIEZCQywgdGhlbiBlbmFibGVzIGl0IGlmDQo+IC0g KiBwb3NzaWJsZS4gTm90aWNlIHRoYXQgaXQgZG9lc24ndCBhY3RpdmF0ZSBGQkMuIEl0IGlzIHZh bGlkIHRvIGNhbGwNCj4gLSAqIGludGVsX2ZiY19lbmFibGUgbXVsdGlwbGUgdGltZXMgZm9yIHRo ZSBzYW1lIHBpcGUgd2l0aG91dCBhbg0KPiAtICogaW50ZWxfZmJjX2Rpc2FibGUgaW4gdGhlIG1p ZGRsZSwgYXMgbG9uZyBhcyBpdCBpcyBkZWFjdGl2YXRlZC4NCj4gLSAqLw0KPiAtc3RhdGljIHZv aWQgaW50ZWxfZmJjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwNCj4g LQkJCSAgICAgc3RydWN0IGludGVsX2NydGMgKmNydGMpDQo+ICtzdGF0aWMgdm9pZCBfX2ludGVs X2ZiY19lbmFibGUoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsDQo+ICsJCQkgICAg ICAgc3RydWN0IGludGVsX2NydGMgKmNydGMsDQo+ICsJCQkgICAgICAgc3RydWN0IGludGVsX3Bs YW5lICpwbGFuZSkNCj4gIHsNCj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRv X2k5MTUoY3J0Yy0+YmFzZS5kZXYpOw0KPiAtCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUgPSB0 b19pbnRlbF9wbGFuZShjcnRjLT5iYXNlLnByaW1hcnkpOw0KPiArCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICppOTE1ID0gdG9faTkxNShzdGF0ZS0+YmFzZS5kZXYpOw0KPiAgCWNvbnN0IHN0cnVj dCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUgPQ0KPiAgCQlpbnRlbF9hdG9taWNfZ2V0 X25ld19wbGFuZV9zdGF0ZShzdGF0ZSwgcGxhbmUpOw0KPiAgCXN0cnVjdCBpbnRlbF9mYmMgKmZi YyA9IHBsYW5lLT5mYmM7DQo+IC0Jc3RydWN0IGludGVsX2ZiY19zdGF0ZSAqY2FjaGU7DQo+IC0J aW50IG1pbl9saW1pdDsNCj4gKwlzdHJ1Y3QgaW50ZWxfZmJjX3N0YXRlICpjYWNoZSA9ICZmYmMt PnN0YXRlX2NhY2hlOw0KPiArCWludCBtaW5fbGltaXQgPSBpbnRlbF9mYmNfbWluX2xpbWl0KHBs YW5lX3N0YXRlKTsNCj4gDQo+IC0JaWYgKCFmYmMgfHwgIXBsYW5lX3N0YXRlKQ0KPiAtCQlyZXR1 cm47DQo+IC0NCj4gLQljYWNoZSA9ICZmYmMtPnN0YXRlX2NhY2hlOw0KPiAtDQo+IC0JbWluX2xp bWl0ID0gaW50ZWxfZmJjX21pbl9saW1pdChwbGFuZV9zdGF0ZSk7DQo+IC0NCj4gLQltdXRleF9s b2NrKCZmYmMtPmxvY2spOw0KPiAtDQo+IC0JaWYgKGZiYy0+Y3J0Yykgew0KPiAtCQlpZiAoZmJj LT5jcnRjICE9IGNydGMpDQo+IC0JCQlnb3RvIG91dDsNCj4gKwlpZiAoZmJjLT5wbGFuZSkgew0K PiArCQlpZiAoZmJjLT5wbGFuZSAhPSBwbGFuZSkNCj4gKwkJCXJldHVybjsNCj4gDQo+ICAJCWlm IChmYmMtPmxpbWl0ID49IG1pbl9saW1pdCAmJg0KPiAgCQkgICAgIWludGVsX2ZiY19jZmJfc2l6 ZV9jaGFuZ2VkKGZiYykpDQo+IC0JCQlnb3RvIG91dDsNCj4gKwkJCXJldHVybjsNCj4gDQo+ICAJ CV9faW50ZWxfZmJjX2Rpc2FibGUoZmJjKTsNCj4gIAl9DQo+IEBAIC0xNDQxLDIyICsxNDM4LDIw IEBAIHN0YXRpYyB2b2lkIGludGVsX2ZiY19lbmFibGUoc3RydWN0DQo+IGludGVsX2F0b21pY19z dGF0ZSAqc3RhdGUsDQo+ICAJaW50ZWxfZmJjX3VwZGF0ZV9zdGF0ZV9jYWNoZShzdGF0ZSwgY3J0 YywgcGxhbmUpOw0KPiANCj4gIAlpZiAoY2FjaGUtPm5vX2ZiY19yZWFzb24pDQo+IC0JCWdvdG8g b3V0Ow0KPiArCQlyZXR1cm47DQo+IA0KPiAgCWlmIChpbnRlbF9mYmNfYWxsb2NfY2ZiKGZiYywg aW50ZWxfZmJjX2NmYl9zaXplKHBsYW5lX3N0YXRlKSwgbWluX2xpbWl0KSkgew0KPiAgCQlmYmMt Pm5vX2ZiY19yZWFzb24gPSAibm90IGVub3VnaCBzdG9sZW4gbWVtb3J5IjsNCj4gLQkJZ290byBv dXQ7DQo+ICsJCXJldHVybjsNCj4gIAl9DQo+IA0KPiAtCWRybV9kYmdfa21zKCZpOTE1LT5kcm0s ICJFbmFibGluZyBGQkMgb24gcGlwZSAlY1xuIiwNCj4gLQkJICAgIHBpcGVfbmFtZShjcnRjLT5w aXBlKSk7DQo+ICsJZHJtX2RiZ19rbXMoJmk5MTUtPmRybSwgIkVuYWJsaW5nIEZCQyBvbiBbUExB TkU6JWQ6JXNdXG4iLA0KPiArCQkgICAgcGxhbmUtPmJhc2UuYmFzZS5pZCwgcGxhbmUtPmJhc2Uu bmFtZSk7DQo+ICAJZmJjLT5ub19mYmNfcmVhc29uID0gIkZCQyBlbmFibGVkIGJ1dCBub3QgYWN0 aXZlIHlldFxuIjsNCj4gDQo+IC0JZmJjLT5jcnRjID0gY3J0YzsNCj4gKwlmYmMtPnBsYW5lID0g cGxhbmU7DQo+IA0KPiAgCWludGVsX2ZiY19wcm9ncmFtX2NmYihmYmMpOw0KPiAtb3V0Og0KPiAt CW11dGV4X3VubG9jaygmZmJjLT5sb2NrKTsNCj4gIH0NCj4gDQo+ICAvKioNCj4gQEAgLTE0Njcs NDUgKzE0NjIsNDggQEAgc3RhdGljIHZvaWQgaW50ZWxfZmJjX2VuYWJsZShzdHJ1Y3QNCj4gaW50 ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwNCj4gICAqLw0KPiAgdm9pZCBpbnRlbF9mYmNfZGlzYWJs ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykgIHsNCj4gLQlzdHJ1Y3QgaW50ZWxfcGxhbmUgKnBs YW5lID0gdG9faW50ZWxfcGxhbmUoY3J0Yy0+YmFzZS5wcmltYXJ5KTsNCj4gLQlzdHJ1Y3QgaW50 ZWxfZmJjICpmYmMgPSBwbGFuZS0+ZmJjOw0KPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7DQo+ICsJc3RydWN0IGludGVsX3BsYW5lICpw bGFuZTsNCj4gDQo+IC0JaWYgKCFmYmMpDQo+IC0JCXJldHVybjsNCj4gKwlmb3JfZWFjaF9pbnRl bF9wbGFuZSgmaTkxNS0+ZHJtLCBwbGFuZSkgew0KPiArCQlzdHJ1Y3QgaW50ZWxfZmJjICpmYmMg PSBwbGFuZS0+ZmJjOw0KPiANCj4gLQltdXRleF9sb2NrKCZmYmMtPmxvY2spOw0KPiAtCWlmIChm YmMtPmNydGMgPT0gY3J0YykNCj4gLQkJX19pbnRlbF9mYmNfZGlzYWJsZShmYmMpOw0KPiAtCW11 dGV4X3VubG9jaygmZmJjLT5sb2NrKTsNCj4gKwkJaWYgKCFmYmMgfHwgcGxhbmUtPnBpcGUgIT0g Y3J0Yy0+cGlwZSkNCj4gKwkJCWNvbnRpbnVlOw0KPiArDQo+ICsJCW11dGV4X2xvY2soJmZiYy0+ bG9jayk7DQo+ICsJCWlmIChmYmMtPnBsYW5lID09IHBsYW5lKQ0KPiArCQkJX19pbnRlbF9mYmNf ZGlzYWJsZShmYmMpOw0KPiArCQltdXRleF91bmxvY2soJmZiYy0+bG9jayk7DQo+ICsJfQ0KPiAg fQ0KPiANCj4gLS8qKg0KPiAtICogaW50ZWxfZmJjX3VwZGF0ZTogZW5hYmxlL2Rpc2FibGUgRkJD IG9uIHRoZSBDUlRDDQo+IC0gKiBAc3RhdGU6IGF0b21pYyBzdGF0ZQ0KPiAtICogQGNydGM6IHRo ZSBDUlRDDQo+IC0gKg0KPiAtICogVGhpcyBmdW5jdGlvbiBjaGVja3MgaWYgdGhlIGdpdmVuIENS VEMgd2FzIGNob3NlbiBmb3IgRkJDLCB0aGVuIGVuYWJsZXMgaXQgaWYNCj4gLSAqIHBvc3NpYmxl LiBOb3RpY2UgdGhhdCBpdCBkb2Vzbid0IGFjdGl2YXRlIEZCQy4gSXQgaXMgdmFsaWQgdG8gY2Fs bA0KPiAtICogaW50ZWxfZmJjX3VwZGF0ZSBtdWx0aXBsZSB0aW1lcyBmb3IgdGhlIHNhbWUgcGlw ZSB3aXRob3V0IGFuDQo+IC0gKiBpbnRlbF9mYmNfZGlzYWJsZSBpbiB0aGUgbWlkZGxlLg0KPiAt ICovDQo+ICB2b2lkIGludGVsX2ZiY191cGRhdGUoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAq c3RhdGUsDQo+ICAJCSAgICAgIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQ0KPiAgew0KPiAtCXN0 cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUgPSB0b19pbnRlbF9wbGFuZShjcnRjLT5iYXNlLnByaW1h cnkpOw0KPiAgCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlID0NCj4g IAkJaW50ZWxfYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7DQo+IC0JY29u c3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSA9DQo+IC0JCWludGVsX2F0 b21pY19nZXRfbmV3X3BsYW5lX3N0YXRlKHN0YXRlLCBwbGFuZSk7DQo+IC0Jc3RydWN0IGludGVs X2ZiYyAqZmJjID0gcGxhbmUtPmZiYzsNCj4gKwljb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3Rh dGUgKnBsYW5lX3N0YXRlOw0KPiArCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmU7DQo+ICsJaW50 IGk7DQo+IA0KPiAtCWlmICghZmJjIHx8ICFwbGFuZV9zdGF0ZSkNCj4gLQkJcmV0dXJuOw0KPiAr CWZvcl9lYWNoX25ld19pbnRlbF9wbGFuZV9pbl9zdGF0ZShzdGF0ZSwgcGxhbmUsIHBsYW5lX3N0 YXRlLCBpKSB7DQo+ICsJCXN0cnVjdCBpbnRlbF9mYmMgKmZiYyA9IHBsYW5lLT5mYmM7DQo+IA0K PiAtCWlmIChjcnRjX3N0YXRlLT51cGRhdGVfcGlwZSAmJiBwbGFuZV9zdGF0ZS0+bm9fZmJjX3Jl YXNvbikNCj4gLQkJaW50ZWxfZmJjX2Rpc2FibGUoY3J0Yyk7DQo+IC0JZWxzZQ0KPiAtCQlpbnRl bF9mYmNfZW5hYmxlKHN0YXRlLCBjcnRjKTsNCj4gKwkJaWYgKCFmYmMgfHwgcGxhbmUtPnBpcGUg IT0gY3J0Yy0+cGlwZSkNCj4gKwkJCWNvbnRpbnVlOw0KPiArDQo+ICsJCW11dGV4X2xvY2soJmZi Yy0+bG9jayk7DQo+ICsNCj4gKwkJaWYgKGNydGNfc3RhdGUtPnVwZGF0ZV9waXBlICYmIHBsYW5l X3N0YXRlLT5ub19mYmNfcmVhc29uKSB7DQo+ICsJCQlpZiAoZmJjLT5wbGFuZSA9PSBwbGFuZSkN Cj4gKwkJCQlfX2ludGVsX2ZiY19kaXNhYmxlKGZiYyk7DQo+ICsJCX0gZWxzZSB7DQo+ICsJCQlf X2ludGVsX2ZiY19lbmFibGUoc3RhdGUsIGNydGMsIHBsYW5lKTsNCj4gKwkJfQ0KPiArDQo+ICsJ CW11dGV4X3VubG9jaygmZmJjLT5sb2NrKTsNCj4gKwl9DQo+ICB9DQo+IA0KPiAgLyoqDQo+IEBA IC0xNTIyLDEwICsxNTIwLDggQEAgdm9pZCBpbnRlbF9mYmNfZ2xvYmFsX2Rpc2FibGUoc3RydWN0 DQo+IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpDQo+ICAJCXJldHVybjsNCj4gDQo+ICAJbXV0ZXhf bG9jaygmZmJjLT5sb2NrKTsNCj4gLQlpZiAoZmJjLT5jcnRjKSB7DQo+IC0JCWRybV9XQVJOX09O KCZpOTE1LT5kcm0sIGZiYy0+Y3J0Yy0+YWN0aXZlKTsNCj4gKwlpZiAoZmJjLT5wbGFuZSkNCj4g IAkJX19pbnRlbF9mYmNfZGlzYWJsZShmYmMpOw0KPiAtCX0NCj4gIAltdXRleF91bmxvY2soJmZi Yy0+bG9jayk7DQo+ICB9DQo+IA0KPiBAQCAtMTUzOCw3ICsxNTM0LDcgQEAgc3RhdGljIHZvaWQg aW50ZWxfZmJjX3VuZGVycnVuX3dvcmtfZm4oc3RydWN0DQo+IHdvcmtfc3RydWN0ICp3b3JrKQ0K PiAgCW11dGV4X2xvY2soJmZiYy0+bG9jayk7DQo+IA0KPiAgCS8qIE1heWJlIHdlIHdlcmUgc2No ZWR1bGVkIHR3aWNlLiAqLw0KPiAtCWlmIChmYmMtPnVuZGVycnVuX2RldGVjdGVkIHx8ICFmYmMt PmNydGMpDQo+ICsJaWYgKGZiYy0+dW5kZXJydW5fZGV0ZWN0ZWQgfHwgIWZiYy0+cGxhbmUpDQo+ ICAJCWdvdG8gb3V0Ow0KPiANCj4gIAlkcm1fZGJnX2ttcygmaTkxNS0+ZHJtLCAiRGlzYWJsaW5n IEZCQyBkdWUgdG8gRklGTyB1bmRlcnJ1bi5cbiIpOw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgN Cj4gaW5kZXggYTczN2ZhNDgzY2YzLi5mNjMyYjAyNmNlMzQgMTAwNjQ0DQo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaA0KPiBAQCAtNDIzLDcgKzQyMyw3IEBAIHN0cnVjdCBpbnRlbF9mYmMgew0KPiAg CXN0cnVjdCBtdXRleCBsb2NrOw0KPiAgCXVuc2lnbmVkIGludCBwb3NzaWJsZV9mcmFtZWJ1ZmZl cl9iaXRzOw0KPiAgCXVuc2lnbmVkIGludCBidXN5X2JpdHM7DQo+IC0Jc3RydWN0IGludGVsX2Ny dGMgKmNydGM7DQo+ICsJc3RydWN0IGludGVsX3BsYW5lICpwbGFuZTsNCj4gDQo+ICAJc3RydWN0 IGRybV9tbV9ub2RlIGNvbXByZXNzZWRfZmI7DQo+ICAJc3RydWN0IGRybV9tbV9ub2RlIGNvbXBy ZXNzZWRfbGxiOw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90cmFj ZS5oDQo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90cmFjZS5oDQo+IGluZGV4IDZiOGZi NmZmZThkYS4uN2Q2ZTYzOGRjY2NiIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3RyYWNlLmgNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV90cmFjZS5o DQo+IEBAIC0zNzIsOCArMzcyLDggQEAgVFJBQ0VfRVZFTlQoaW50ZWxfcGxhbmVfZGlzYWJsZV9h cm0sDQo+ICAvKiBmYmMgKi8NCj4gDQo+ICBUUkFDRV9FVkVOVChpbnRlbF9mYmNfYWN0aXZhdGUs DQo+IC0JICAgIFRQX1BST1RPKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKSwNCj4gLQkgICAgVFBf QVJHUyhjcnRjKSwNCj4gKwkgICAgVFBfUFJPVE8oc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSks DQo+ICsJICAgIFRQX0FSR1MocGxhbmUpLA0KPiANCj4gIAkgICAgVFBfU1RSVUNUX19lbnRyeSgN Cj4gIAkJCSAgICAgX19maWVsZChlbnVtIHBpcGUsIHBpcGUpDQo+IEBAIC0zODIsNiArMzgyLDgg QEAgVFJBQ0VfRVZFTlQoaW50ZWxfZmJjX2FjdGl2YXRlLA0KPiAgCQkJICAgICApLA0KPiANCj4g IAkgICAgVFBfZmFzdF9hc3NpZ24oDQo+ICsJCQkgICBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9 DQo+IGludGVsX2dldF9jcnRjX2Zvcl9waXBlKHRvX2k5MTUocGxhbmUtPmJhc2UuZGV2KSwNCj4g Kw0KPiBwbGFuZS0+cGlwZSk7DQo+ICAJCQkgICBfX2VudHJ5LT5waXBlID0gY3J0Yy0+cGlwZTsN Cj4gIAkJCSAgIF9fZW50cnktPmZyYW1lID0NCj4gaW50ZWxfY3J0Y19nZXRfdmJsYW5rX2NvdW50 ZXIoY3J0Yyk7DQo+ICAJCQkgICBfX2VudHJ5LT5zY2FubGluZSA9IGludGVsX2dldF9jcnRjX3Nj YW5saW5lKGNydGMpOyBAQA0KPiAtMzkyLDggKzM5NCw4IEBAIFRSQUNFX0VWRU5UKGludGVsX2Zi Y19hY3RpdmF0ZSwgICk7DQo+IA0KPiAgVFJBQ0VfRVZFTlQoaW50ZWxfZmJjX2RlYWN0aXZhdGUs DQo+IC0JICAgIFRQX1BST1RPKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKSwNCj4gLQkgICAgVFBf QVJHUyhjcnRjKSwNCj4gKwkgICAgVFBfUFJPVE8oc3RydWN0IGludGVsX3BsYW5lICpwbGFuZSks DQo+ICsJICAgIFRQX0FSR1MocGxhbmUpLA0KPiANCj4gIAkgICAgVFBfU1RSVUNUX19lbnRyeSgN Cj4gIAkJCSAgICAgX19maWVsZChlbnVtIHBpcGUsIHBpcGUpDQo+IEBAIC00MDIsNiArNDA0LDgg QEAgVFJBQ0VfRVZFTlQoaW50ZWxfZmJjX2RlYWN0aXZhdGUsDQo+ICAJCQkgICAgICksDQo+IA0K PiAgCSAgICBUUF9mYXN0X2Fzc2lnbigNCj4gKwkJCSAgIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRj ID0NCj4gaW50ZWxfZ2V0X2NydGNfZm9yX3BpcGUodG9faTkxNShwbGFuZS0+YmFzZS5kZXYpLA0K PiArDQo+IHBsYW5lLT5waXBlKTsNCj4gIAkJCSAgIF9fZW50cnktPnBpcGUgPSBjcnRjLT5waXBl Ow0KPiAgCQkJICAgX19lbnRyeS0+ZnJhbWUgPQ0KPiBpbnRlbF9jcnRjX2dldF92YmxhbmtfY291 bnRlcihjcnRjKTsNCj4gIAkJCSAgIF9fZW50cnktPnNjYW5saW5lID0gaW50ZWxfZ2V0X2NydGNf c2NhbmxpbmUoY3J0Yyk7IEBADQo+IC00MTIsOCArNDE2LDggQEAgVFJBQ0VfRVZFTlQoaW50ZWxf ZmJjX2RlYWN0aXZhdGUsICApOw0KPiANCj4gIFRSQUNFX0VWRU5UKGludGVsX2ZiY19udWtlLA0K PiAtCSAgICBUUF9QUk9UTyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyksDQo+IC0JICAgIFRQX0FS R1MoY3J0YyksDQo+ICsJICAgIFRQX1BST1RPKHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUpLA0K PiArCSAgICBUUF9BUkdTKHBsYW5lKSwNCj4gDQo+ICAJICAgIFRQX1NUUlVDVF9fZW50cnkoDQo+ ICAJCQkgICAgIF9fZmllbGQoZW51bSBwaXBlLCBwaXBlKQ0KPiBAQCAtNDIyLDYgKzQyNiw4IEBA IFRSQUNFX0VWRU5UKGludGVsX2ZiY19udWtlLA0KPiAgCQkJICAgICApLA0KPiANCj4gIAkgICAg VFBfZmFzdF9hc3NpZ24oDQo+ICsJCQkgICBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9DQo+IGlu dGVsX2dldF9jcnRjX2Zvcl9waXBlKHRvX2k5MTUocGxhbmUtPmJhc2UuZGV2KSwNCj4gKw0KPiBw bGFuZS0+cGlwZSk7DQo+ICAJCQkgICBfX2VudHJ5LT5waXBlID0gY3J0Yy0+cGlwZTsNCj4gIAkJ CSAgIF9fZW50cnktPmZyYW1lID0NCj4gaW50ZWxfY3J0Y19nZXRfdmJsYW5rX2NvdW50ZXIoY3J0 Yyk7DQo+ICAJCQkgICBfX2VudHJ5LT5zY2FubGluZSA9IGludGVsX2dldF9jcnRjX3NjYW5saW5l KGNydGMpOw0KPiAtLQ0KPiAyLjMyLjANCg0K